我正在生成ICalendar(.ics)文件。

使用UID和SEQUENCE字段,我可以更新Google日历和Windows日历中的现有事件但不是MS Outlook 2007中的-它只会创建第二个事件

如何使它们在Outlook中工作?

谢谢

汤姆

最佳答案

我继续进行一些测试,现在设法让Outlook根据.cs文件更新和取消事件。

Outlook实际上似乎响应了RFC 2446中定义的规则

总之,您必须指定
METHOD:REQUESTORGANIZER:xxxxxxxx
除了UID:和SEQUENCE:
要取消,您必须指定METHOD:CANCEL
请求/更新示例

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//SYFADIS//PORTAIL FORMATION//FR
METHOD:REQUEST
BEGIN:VEVENT
UID:[email protected]
SEQUENCE:5
DTSTAMP:20081106T154911Z
ORGANIZER:[email protected]
DTSTART:20081113T164907
DTEND:20081115T170000
SUMMARY:TestTraining
STATUS:CONFIRMED
END:VEVENT
END:VCALENDAR

取消范例;
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//SYFADIS//PORTAIL FORMATION//FR
METHOD:CANCEL
BEGIN:VEVENT
UID:[email protected]
SEQUENCE:7
DTSTAMP:20081106T154916Z
ORGANIZER:[email protected]
DTSTART:20081113T164907
SUMMARY:TestTraining
STATUS:CANCELLED
END:VEVENT
END:VCALENDAR

10-07 23:21