У меня проблема, когда я пытаюсь использовать свойство RRULE - PullRequest
1 голос
/ 15 июня 2011

Следующий код прекрасно работает для встречи, которая не повторяется. Работает нормально, я имею в виду, когда я отправляю электронное письмо с использованием этого кода, оно отображается в календаре Outlook просто отлично, в нужный интервал времени, в правильную дату. Сервер находится в центральном часовом поясе, а конечные пользователи - в разных часовых поясах.

        Const VCAL_FILE =
            "BEGIN:VCALENDAR" & vbCrLf &
            "METHOD:PUBLISH" & vbCrLf &
            "PRODID:Microsoft CDO for Microsoft Exchange" & vbCrLf &
            "VERSION:2.0" & vbCrLf &
            "BEGIN:VTIMEZONE" & vbCrLf &
            "TZID:(GMT-06.00) Central Time (US & Canada)" & vbCrLf &
            "X-MICROSOFT-CDO-TZID:11" & vbCrLf &
            "BEGIN:STANDARD" & vbCrLf &
            "DTSTART:16010101T020000" & vbCrLf &
            "TZOFFSETFROM:-0500" & vbCrLf &
            "TZOFFSETTO:-0600" & vbCrLf &
            "RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=11;BYDAY=1SU" & vbCrLf &
            "END:STANDARD" & vbCrLf &
            "BEGIN:DAYLIGHT" & vbCrLf &
            "DTSTART:16010101T020000" & vbCrLf &
            "TZOFFSETFROM:-0600" & vbCrLf &
            "TZOFFSETTO:-0500" & vbCrLf &
            "RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=2SU" & vbCrLf &
            "END:DAYLIGHT" & vbCrLf &
            "END:VTIMEZONE" & vbCrLf &
            "BEGIN:VEVENT" & vbCrLf &
            "DTSTAMP:{8}" & vbCrLf &
            "DTSTART:{0}" & vbCrLf &
            "DTEND:{1}" & vbCrLf &
            "DESCRIPTION:{6}\N" & vbCrLf &
            "SUMMARY:{7}" & vbCrLf &
            "UID:{5}" & vbCrLf &
            "ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=FALSE;CN=""{9}"":MAILTO:{9}" & vbCrLf &
            "ACTION;RSVP=FALSE;CN=""{4}"":MAILTO:{4}" & vbCrLf &
            "LOCATION:{2}" & vbCrLf &
            "SEQUENCE:1" & vbCrLf &
            "PRIORITY:5" & vbCrLf &
            "CLASS:" & vbCrLf &
            "CREATED:{8}" & vbCrLf &
            "LAST-MODIFIED:{8}" & vbCrLf &
            "STATUS:CONFIRMED" & vbCrLf &
            "TRANSP:OPAQUE" & vbCrLf &
            "X-MICROSOFT-CDO-BUSYSTATUS:FREE" & vbCrLf &
            "X-MICROSOFT-CDO-INSTTYPE:0" & vbCrLf &
            "X-MICROSOFT-CDO-INTENDEDSTATUS:FREE" & vbCrLf &
            "X-MICROSOFT-CDO-ALLDAYEVENT:FALSE" & vbCrLf &
            "X-MICROSOFT-CDO-IMPORTANCE:1" & vbCrLf &
            "X-MICROSOFT-CDO-OWNERAPPTID:-1" & vbCrLf &
            "X-MICROSOFT-CDO-ATTENDEE-CRITICAL-CHANGE:{8}" & vbCrLf &
            "X-MICROSOFT-CDO-OWNER-CRITICAL-CHANGE:{8}" & vbCrLf &
            "BEGIN:VALARM" & vbCrLf &
            "ACTION:DISPLAY" & vbCrLf &
            "DESCRIPTION:REMINDER" & vbCrLf &
            "TRIGGER;RELATED=START:-PT00H15M00S" & vbCrLf &
            "END:VALARM" & vbCrLf &
            "END:VEVENT" & vbCrLf &
            "END:VCALENDAR" & vbCrLf

Однако, когда я добавляю следующую строку

            "RRULE:{10}" & vbCrLf &

в разделе VEVENT TZOFFSETFROM и TZOFFSETTO, похоже, игнорируются. Другими словами, когда событие добавляется в мой календарь Outlook, время выключено.

Итак, мой вопрос: когда используется свойство RRULE, почему события календаря не отображаются в нужном временном интервале при импорте в Outlook, но когда свойство RRULE не используется, время идеально подходит?

Любые мысли или идеи очень ценятся.

Забыл упомянуть, что "RRULE: {10}" на самом деле будет что-то вроде "RRULE: FREQ = YEARLY".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...