iCal复杂的重复活动似乎无法正常运作

时间:2016-03-02 22:31:48

标签: outlook calendar icalendar

我有一个生成ics文件的脚本,有些事件往往有复杂的重复规则(i.e. every Monday between date1 and date2 except on holiday1 or holiday2 but also occurs once on randomDate1)

鉴于我对定义的here规范的理解,将它表示为RRULE,RDATE和EXDATE之间的混合似乎非常简单

正如您在My Complex Event

中所见
  • RRULE定义了通常的预期复发:1月11日至4月15日的每个星期一
  • RDATE定义了一个错误的异常日期4月13日
  • EXDATE将于1月25日删除该事件

但是,一旦我在MS Outlook 2016中打开此文件,我会在RRULE所针对的日期看到该事件,我不会在EXDATE定位的那个上看到它(这没关系)但我没有&#39 ;在RDATE目标日期看到它(不行)

我已经验证了我的here并发现没有错误。所以我想知道: 这是一个Outlook错误吗?我应该为ical属性使用一些订单吗?

我也尝试将其导入Google日历,但我没有看到4月13日星期三定义的事件,而是在4月12日星期二看到了它.RRULE和EXDATE也按预期工作。

有什么想法吗?

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//dkhalife//NONSGML Dany v2.0//FR
METHOD:PUBLISH
X-WR-CALNAME:Dany
CALSCALE:GREGORIAN
BEGIN:VTIMEZONE
TZID:America/Montreal
BEGIN:DAYLIGHT
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
DTSTART:19700308T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
DTSTART:19701101T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CATEGORIES:Cours
SUMMARY:My Complex Event
LOCATION:Location Location Location
DTSTART;TZID=America/Montreal:20160111T124500
DTEND;TZID=America/Montreal:20160111T143500
RRULE:FREQ=WEEKLY;INTERVAL=1;UNTIL=20160415
RDATE;VALUE=DATE:20160413
EXDATE;VALUE=DATE:20160125
UID:xxxx
END:VEVENT
END:VCALENDAR

1 个答案:

答案 0 :(得分:1)

您的活动有时间,但RDATEEXDATE值是全天的,这没有意义(几年前我概述了回应{{3}并且IMO是无效的(即使RFC 5545没有明确说明)。

尝试替换

RDATE;VALUE=DATE:20160413
EXDATE;VALUE=DATE:20160125

通过

RDATE;TZID=America/Montreal:20160413T124500
EXDATE;TZID=America/Montreal:20160125T124500

顺便说一下。如果您的事件锚定在任何时区(这在bug in KOrganizer中明确指定),则必须在UTC时间中指定的UNTIL子句也是如此。

所以你的RRULE应该是这样的:

RRULE:FREQ=WEEKLY;INTERVAL=1;UNTIL=20160415T164500Z