У меня есть файл .ics, который я вручную создаю с помощью PHP следующим образом:
BEGIN:VCALENDAR PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN VERSION:2.0 METHOD:PUBLISH X-MS-OLK-FORCEINSPECTOROPEN:TRUE BEGIN:VEVENT CLASS:PUBLIC DESCRIPTION:Some description here LOCATION:Scheduled PTO DTEND;VALUE=DATE:20101104 DTSTART;VALUE=DATE:20101103 PRIORITY:5 SEQUENCE:0 SUMMARY;LANGUAGE=en-us:PTO - 8.00 hour(s) X-MICROSOFT-CDO-ALLDAYEVENT:TRUE X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE END:VEVENT END:VCALENDAR
Это отлично работает при импорте в Outlook 2007 (а также в календарь Google). В Outlook 2003 я получаю следующую ошибку:
«Эта ошибка может появиться, если вы попытались сохранить повторяющийся Лунный календарь в формате iCalendar. Чтобы избежать этой ошибки, установите для параметра назначения значение« Григорианский »вместо« Лунный »».
Есть ли что-то, что мне нужно изменить в файле .ics, чтобы заставить это работать с Outlook 2003?
(У меня нет Outlook 2003 для тестирования на данный момент)
Таким образом, после некоторых проб и ошибок с тестовой системой 2003 года я обнаружил, что добавление следующего:
DTSTAMP:20101103T120000Z
разрешил Outlook 2003 импортировать файл .ics без взлома 2007, iCal или Google.
Я также, для хорошей меры, добавил строку UID в мой последний файл .ics.
Итак, мой последний файл .ics выглядит так:
BEGIN:VCALENDAR PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN VERSION:2.0 METHOD:PUBLISH X-MS-OLK-FORCEINSPECTOROPEN:TRUE BEGIN:VEVENT CLASS:PUBLIC DESCRIPTION:Some description here LOCATION:Scheduled PTO DTEND;VALUE=DATE:20101104 DTSTART;VALUE=DATE:20101103 DTSTAMP:20101103120000Z UID: VACATIOND41D8CD98F00B204E9800998ECF8427E PRIORITY:5 SEQUENCE:0 SUMMARY;LANGUAGE=en-us:PTO - 8.00 hour(s) X-MICROSOFT-CDO-ALLDAYEVENT:TRUE X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE END:VEVENT END:VCALENDAR
,BEGIN:VCALENDAR PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN VERSION:2.0 METHOD:PUBLISH X-MS-OLK-FORCEINSPECTOROPEN:TRUE BEGIN:VEVENT CLASS:PUBLIC DESCRIPTION:Some description here LOCATION:Scheduled PTO DTEND;VALUE=DATE:20101104 DTSTART;VALUE=DATE:20101103 DTSTAMP:20101103120000Z UID: VACATIOND41D8CD98F00B204E9800998ECF8427E PRIORITY:5 SEQUENCE:0 SUMMARY;LANGUAGE=en-us:PTO - 8.00 hour(s) X-MICROSOFT-CDO-ALLDAYEVENT:TRUE X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE END:VEVENT END:VCALENDAR
Все, что я сделал, это создать ручную запись в Outlook 2003, сохранить ее как .ics и сравнить с отсутствием / отличным от моего оригинала.
Все хорошо работает сейчас.
ОБНОВЛЕНИЕ Еще одно изменение, я удалил VERSION:2.0
бит, и это сделало все работу еще более надежно.
Добавить:
CALSCALE:GREGORIAN METHOD:PUBLISH
Это сработало для меня.
Удаление «VERSION: 2.0» – это все, что потребовалось, чтобы сделать третью вечеринку .ics, открытую для меня в Outlook 2003.