Outlook 2003不会导入.ics日历,而Outlook 2007会导入.ics日历

时间:2011-04-14 22:35:33

标签: php outlook-2003 icalendar

我有一个.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格式保存定期月球日历,则会出现此错误。要避免此错误,请将约会选项设置为Gregorian而不是Lunar。”

我是否需要在.ics文件中更改以使其与Outlook 2003一起使用?

(我目前没有Outlook 2003进行测试)

3 个答案:

答案 0 :(得分:3)

因此,在经过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位,这使得所有工作更加可靠。

答案 1 :(得分:1)

添加:

CALSCALE:GREGORIAN
METHOD:PUBLISH 

这对我有用。

答案 2 :(得分:0)

删除“VERSION:2.0”只需要在Outlook 2003中为我开一个第三方.ics会议。