5

如果我在一个月的某一天(即 15 日)有一个重复性事件,而那一天是星期六或星期日,iCal 是否可以将事件安排在下一个可用的工作日发生?

4

2 回答 2

5

you cannot set exception but you can use a combination of byday and bymonthday: something like will give you the monday after a week-end which had either on saturday or sunday a 15th.

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

By combining with another event: RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=15

you'll be there

于 2013-08-16T08:54:02.607 回答
4

使用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,31并将BYSETPOS=1,-1导致事件在 15 日或之后的第一个工作日以及该月的最后一个工作日重复。

来源:RFC 2445

于 2014-12-11T23:21:42.660 回答