是否有一种“简单”的方法可以为“感恩节周末”创建年度活动,即从 11 月的第 4 个星期四开始的活动(以星期日为第一个工作日),并在下一个星期日结束?
据我所知,诸如 RRULE 和 RECUR 之类的东西可以让您创建持续时间为零的重复事件(即时间点),但不能创建持续一段时间的重复事件。
我错过了什么?
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY:4TH;WKST=SU
您绝对不限于 0 持续时间事件。您可以简单地指定 DTSTART 和 DTEND(或 DURATION)来获得完整的周末。
要详细说明 Evert 的答案,要指定一个为期 4 天的事件,您只需指定 DTSTART 和 DTEND,如下所示:
DTSTART;VALUE=DATE:20151126 DTEND;VALUE=DATE:20151130 RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=4TH;WKST=SU
理由来自 RFC5545 的以下部分:
RFC5545 3.6.1 “VEVENT”的“DTSTART”属性指定事件的包含开始。对于重复事件,它还指定重复集中的第一个实例。“VEVENT”日历组件的“DTEND”属性指定事件的非包含结束。