我有一个用 PHP 手动创建的 .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
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 在不破坏 2007、iCal 或 Google 的情况下导入 .ics 文件。
我还将 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
我所做的只是在 outlook 2003 中创建一个手动条目,将其保存为 .ics 并比较缺少的内容/与原始条目的不同之处。
现在一切正常。
更新
一个额外的变化,我删除了 VERSION:2.0
位,这使得所有工作更加可靠。
关于php - Outlook 2003 不导入 .ics 日历,而 Outlook 2007 导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5670515/