iCal 复杂的重复事件似乎无法正常工作
iCal complex recurring event doesn't seem to be working properly
我有一个生成 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 指定的日期看到它(没关系),但我没有在 RDATE 指定的日期看到它(不行)
我已经验证了我的 ical 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
您的活动有时间,但 RDATE
和 EXDATE
值是全天的,这没有意义(几年前我在回应 bug in KOrganizer) 并且在 IMO 中是无效的(即使 RFC 5545 没有明确说明)。
尝试替换
RDATE;VALUE=DATE:20160413
EXDATE;VALUE=DATE:20160125
来自
RDATE;TZID=America/Montreal:20160413T124500
EXDATE;TZID=America/Montreal:20160125T124500
顺便说一句。如果您的事件锚定在任何时区(这在 RFC 5545 中明确指定),则必须在 UTC 时间指定的 UNTIL
子句也是如此。
所以你的 RRULE
应该是这样的:
RRULE:FREQ=WEEKLY;INTERVAL=1;UNTIL=20160415T164500Z
我有一个生成 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 指定的日期看到它(没关系),但我没有在 RDATE 指定的日期看到它(不行)
我已经验证了我的 ical 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
您的活动有时间,但 RDATE
和 EXDATE
值是全天的,这没有意义(几年前我在回应 bug in KOrganizer) 并且在 IMO 中是无效的(即使 RFC 5545 没有明确说明)。
尝试替换
RDATE;VALUE=DATE:20160413
EXDATE;VALUE=DATE:20160125
来自
RDATE;TZID=America/Montreal:20160413T124500
EXDATE;TZID=America/Montreal:20160125T124500
顺便说一句。如果您的事件锚定在任何时区(这在 RFC 5545 中明确指定),则必须在 UTC 时间指定的 UNTIL
子句也是如此。
所以你的 RRULE
应该是这样的:
RRULE:FREQ=WEEKLY;INTERVAL=1;UNTIL=20160415T164500Z