注意:以下答案演示了如何使用已弃用的RFC!我把它留作参考,以防有人需要。请参阅正确答案以获取更多有用的事实!
您可以通过添加相应的每年重复相邻星期五和相邻星期一规则来做到这一点,这些规则仅显示日期具有相应工作日的年份:
BEGIN:VEVENT
DTSTAMP:20130210T211949Z
UID:20130210-new-years-day-less-1@usa.gov
DTSTART;VALUE=DATE:20121231
DTEND;VALUE=DATE:20121231
SUMMARY:New Year’s Day (moved from a Saturday)
RRULE:FREQ=YEARLY;BYMONTH=12;BYMONTHDAY=31
EXRULE:FREQ=YEARLY;BYMONTH=12;BYMONTHDAY=31;BYDAY=MO,TU,WE,TH,SA,SU
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20130210T211949Z
UID:20130210-new-years-day-plus-1@usa.gov
DTSTART;VALUE=DATE:20130102
DTEND;VALUE=DATE:20130102
SUMMARY:New Year’s Day (moved from a Sunday)
RRULE:FREQ=YEARLY;BYMONTH=1;BYMONTHDAY=2
EXRULE:FREQ=YEARLY;BYMONTH=1;BYMONTHDAY=2;BYDAY=TU,WE,TH,FR,SA,SU
END:VEVENT
连同原始事件(BYDAY=MO,TU,WE,TH,FR
如果您不希望实际假期显示在您的提要中,您可以类似地过滤此事件),您可以覆盖所有年份,而不会在不需要移动时间的年份出现误报到工作日:
BEGIN:VEVENT
DTSTAMP:20130210T211949Z
UID:20130210-new-years-day@usa.gov
DTSTART;VALUE=DATE:20130101
DTEND;VALUE=DATE:20130101
SUMMARY:New Year’s Day
RRULE:FREQ=YEARLY;BYMONTH=1;BYMONTHDAY=1
END:VEVENT
Google 日历愉快地使用并理解我的示例 iCalendar 提要。不幸的是,当前的 iCal(以及从导入此提要的 Google 日历同步的 iOS 设备)有一些错误(归档为 错误 13188350 [链接可能仅适用于记者]),并且无法应用指定的工作日过滤器。
但希望这也能很快得到解决。