2011-04-14 79 views
3

不導入.ics日曆我有一個文件的.ics我用PHP手動創建類似如下:Outlook 2003中,而outlook 2007不會

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時(以及谷歌工作正常日曆)。在Outlook 2003中,我收到以下錯誤:

「如果您嘗試以iCalendar格式保存重複發行的月​​歷,可能會出現此錯誤。爲避免此錯誤,請將約會選項設置爲陽曆,而不是月曆。

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

(我沒有Outlook 2003中的時刻來測試)

+1

PHP不能生成.ics文件。用PHP編寫的庫可以,也許你可以在你的文章中命名它? – halfdan 2011-04-14 22:39:16

+1

對不起,我沒有使用庫,我手動創建了ics文件。更新的問題... – Jason 2011-04-14 23:57:28

回答

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,做的少了什麼/不同的比較從我原來的。

現在一切正常。

UPDATE 一個額外的變化,我刪除了VERSION:2.0位,這讓所有的工作更可靠。

+0

在2003年嘗試,它不起作用。出現一條消息說某些字段是無效的。儘管在2010年工作。你是否認爲它適用於2010年和2007年? – csharpforevermore 2012-01-19 13:13:41

1

地址:

CALSCALE:GREGORIAN 
METHOD:PUBLISH 

爲我工作。

0

刪除「版本:2.0」是所有花,使第三方的.ics開會罰款,我在Outlook 2003