使用RFC 5545重复规则安排每月事件“每N个工作日”

我正在尝试使用RFC5545重复规则在C#中复制Google日历中的某些计划function。

每月使用Google日历安排两个选项,每个第N个月,即:每个月的每个第10天,无论工作日如何,这都会明显发生。

我的重复规则是: FREQ=MONTHLY;BYMONTHDAY=10

另一种选择是在每个工作日的第N个星期重复这一事件,即:“ 每隔一个星期日每隔一个月 ,这就是我在编写规则时遇到的问题。

我的规则应该适用于第二条规则? 我已经尝试过FREQ=MONTHLY;BYDAY=SU ,但我不确定如何/用于指定的参数只能在每个月的第2个星期日执行此操作。

我正在使用DDay iCal C#库来生成我的重复规则,但我很高兴能够显示规则字符串应该是什么样子来实现所需的行为。

我正在使用RFC 5545重复规则 。

你快到了。 你需要的是设置当天的索引,RFC5545说:

每个BYDAY值也可以以正(+ n)或负(-n)整数开头。 如果存在,则表示在每月或每年“RRULE”中第n次出现特定日期。

RFC5545后来给出了一个例子

每月第一个星期五发生10次:

  DTSTART;TZID=America/New_York:19970905T090000 RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR 

所以对你来说规则必须是:

RRULE:FREQ=MONTHLY;BYDAY=2SU