是否可以在 iCalendar RFC5545 重复规则中使用 OR 表达式?

Is it possible to have an OR expression in a iCalendar RFC5545 recurrence rule?

我目前正在使用 iCalendar 规范 (RFC 5545) 来处理重复发生的事件。

直到昨天,他们的重复规则满足了我的所有需求,但现在我很难实施以下规则:

Every month on the first Monday OR Wednesday of the month.

例如:

有没有办法定义这种“条件”规则?

如果我对要求的理解正确的话,它并不是完全有条件的。只有第一个星期一和第一个星期三的第一个是必需的。 BYSETPOS就是针对这个的。

在这个例子中,它被用来计算最后一个工作日https://icalevents.com/2555-paydays-last-working-days-and-why-bysetpos-is-useful/

以你为例

RRULE:FREQ=MONTHLY;BYDAY=1MO,1WE;BYSETPOS=1

应该可以解决问题,

基本上 RRULE 将展开所有第一个星期一和星期三,然后 'contract' 即取每一对的第一个日期。

规范的第 43 页 https://www.ietf.org/rfc/rfc5545.txt 显示了 'expansions' 和 'contractions' 的优先级。