我正在生成ICalendar(.ics)文件.
使用UID和SEQUENCE字段,我可以更新Google日历和Windows日历中的现有事件,但不能更新 MS Outlook 2007中的现有事件- 它只会创建第二个事件
如何让他们为Outlook工作?
谢谢
汤姆
我继续做一些测试,现在设法让Outlook根据.cs文件更新和取消事件.
事实上,Outlook似乎对RFC 2446中定义的规则做出了回应
总之,你必须指定
METHOD:REQUEST
和 ORGANIZER:xxxxxxxx
除了UID
:和SEQUENCE:
要取消,您必须指定 METHOD:CANCEL
请求/更新示例
BEGIN:VCALENDAR VERSION:2.0 PRODID:-//SYFADIS//PORTAIL FORMATION//FR METHOD:REQUEST BEGIN:VEVENT UID:TS_229377_MS_262145@syfadis.com SEQUENCE:5 DTSTAMP:20081106T154911Z ORGANIZER:catalog@syfadis.com 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:TS_229377_MS_262145@syfadis.com SEQUENCE:7 DTSTAMP:20081106T154916Z ORGANIZER:catalog@syfadis.com DTSTART:20081113T164907 SUMMARY:TestTraining STATUS:CANCELLED END:VEVENT END:VCALENDAR
我找到了提问者汤姆卡特.他有一个工作示例,其中包含请求,然后取消.我错的是我的方法在我的VEVENT里面本来应该在外面.所以这是一个工作更新!
原版的:
BEGIN:VCALENDAR VERSION:2.0 PRODID:-//WA//FRWEB//EN METHOD:REQUEST BEGIN:VEVENT UID:FRICAL201 SEQUENCE:0 DTSTAMP:20081108T151809Z ORGANIZER:donotreply@test.com DTSTART:20081109T121200 SUMMARY:11/9/2008 12:12:00 PM TRIP FROM JFK AIRPORT (JFK) LOCATION:JFK AIRPORT (JFK) END:VEVENT END:VCALENDAR
更新:
BEGIN:VCALENDAR VERSION:2.0 PRODID:-//WA//FRWEB//EN METHOD:REQUEST BEGIN:VEVENT UID:FRICAL201 SEQUENCE:1 DTSTAMP:20081108T161809Z ORGANIZER:donotreply@test.com DTSTART:20081109T121300 SUMMARY:11/9/2008 12:13:00 PM TRIP FROM JFK AIRPORT (JFK) LOCATION:JFK AIRPORT (JFK) END:VEVENT END:VCALENDAR
我所做的就是添加请求方法(在正确的位置!)和组织者.