谷歌日历api - ICS递归id范围this和future不改变以后的事件



为了测试,我有一个ics文件,每周创建一个循环事件,持续4周。

BEGIN:VCALENDAR
PRODID:-//Cisa//Cisa Planningen//BE
VERSION:2.0
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTART;TZID=Europe/Brussels:20150508T083000
DTEND;TZID=Europe/Brussels:20150508T115000
DTSTAMP:20150518T072640Z
RRULE:FREQ=WEEKLY;COUNT=4;BYDAY=FR
UID:116@cisanet.be
DESCRIPTION:Commercieel Commitment PSV
LOCATION:PSV
STATUS:CONFIRMED
SUMMARY:Rec PSV
END:VEVENT
END:VCALENDAR

之后,我想编辑第三次出现的事件(不一定是第三次,但只是我在示例中使用的事件)。我的第一个示例将给出周五的每周事件,之后我想将日期更改为周三但当我在代码片段中使用递归id与range时:

BEGIN:VCALENDAR
PRODID:-//Cisa//Cisa Planningen//BE
VERSION:2.0
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTART;TZID=Europe/Brussels:20150521T083000
DTEND;TZID=Europe/Brussels:20150521T115000
DTSTAMP:20150518T072640Z
UID:116@cisanet.be
RECURRENCE-ID;RANGE=THISANDFUTURE:TZID=Europe/Brussels:20150522T083000
DESCRIPTION:Commercieel Commitment PSV
LOCATION:PSV
STATUS:CONFIRMED
SUMMARY:Rec PSV
END:VEVENT
END:VCALENDAR

但是,只有在递归id中具有实际时间的单个事件才会更改其日期,而之后的事件则不会更改。

为了测试这些ics文件,到目前为止我使用的是google日历。有什么建议,为什么这不能工作,以及如何使它工作?

虽然它是RFC5545的一部分,但大多数客户端/服务器都很难理解基于RANGE的recurrenence - id,可能Lotus Notes除外。客户端通常会结束旧事件(RRULE中的UNTIL参数),并创建一个新事件(带有新的UID)和一个指向旧事件的RELATED-TO属性。

如果你真的要改变循环模式(从星期五到星期三),那就更正确了。

最新更新