13

这个问题有一个先前的线程,并暗示了一个答案,但我无法让它工作。

我有一个 ICS 文件。它验证. 它看起来像这样:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//WA//FRWEB//EN
BEGIN:VEVENT
UID:FRICAL201
SEQUENCE:0
DTSTAMP:20081108T151809Z
DTSTART:20081109T121200
SUMMARY:11/9/2008 12:12:00 PM TRIP FROM JFK AIRPORT (JFK)
LOCATION:JFK AIRPORT (JFK)
END:VEVENT
END:VCALENDAR

我双击它,它完美地进入 Outlook 2007。然后,我双击另一个如下所示的 ICS 文件:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//WA//FRWEB//EN
BEGIN:VEVENT
METHOD:REQUEST
UID:FRICAL201
SEQUENCE:1
DTSTAMP:20081108T161809Z
DTSTART:20081109T121300
SUMMARY:11/9/2008 12:13:00 PM TRIP FROM JFK AIRPORT (JFK)
LOCATION:JFK AIRPORT (JFK)
END:VEVENT
END:VCALENDAR

正如rfc 中所解释的,UID 是相同的,并且序列号大一,所以我希望 Outlook 更新我以前的事件条目,但它所做的只是插入第二个。

如何制定 ICS 文件以便 Outlook 知道更新事件?我上面引用的线程中的原始海报说他让它用 METHOD 和 ORGANIZER 做出响应,但根据我的经验,METHOD 没有效果,并且 ORGANIZER 会导致 Outlook 想要将事件通过电子邮件发送给某人的不良行为。我只是想让它更新日历。

4

1 回答 1

10

我找到了汤姆·卡特(Tom Carter),他是发起原始线程的人。他有一个工作示例,请求后取消。我错了,我的 METHOD 应该在我的 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

我所做的只是添加请求方法(在正确的位置!)和一个组织者。

于 2008-11-11T05:05:37.670 回答