如果BYMONTHDAY是周末,iCal可以在BYMONTHDAY之后的第一个工作日安排活动吗?

时间:2013-08-07 10:36:07

标签: calendar google-calendar-api icalendar

如果我在一个月的某一天(即第15天)有一个定期活动,那一天是在周六或周日,那么iCal是否可以安排在下一个可用的工作日进行活动?

2 个答案:

答案 0 :(得分:5)

你不能设置异常但你可以使用byday和bymonthday的组合: 类似的东西会在周末或星期六或星期五之后给你一个星期一的星期一。

RRULE:FREQ = MONTHLY; BYDAY = MO; BYMONTHDAY = 16,17

与另一项活动合并: RRULE:FREQ = MONTHLY; BYDAY = MO,星期二,星期三,星期四,星期五; BYMONTHDAY = 15

你会在那里

答案 1 :(得分:2)

使用BYSETPOS=1规则部分,您可以在单个事件中完成此操作:

RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=15,16,17;BYSETPOS=1

这告诉iCal每月重复一次活动;只在周一至周五重播;仅在15日至17日重复;并且仅在与先前规则部分匹配的第一天(每月)重复它。

BYSETPOS只是告诉iCal选择其他规则部分匹配的第N次出现事件。它可以设置为逗号分隔的值列表,范围为1到366或-366到-1。

例如,将上述规则修改为BYMONTHDAY=15,16,17,29,29,30,31BYSETPOS=1,-1会导致事件在第15个月或之后的第一个工作日以及该月的最后一个工作日重复。

来源:RFC 2445