说明
RRULE说明
RRULE(Recurrence Rule)字段,表示事件重复规则,遵循iCalendar标准。eg.RRULE:FREQ=DAILY;COUNT=4;INTERVAL=3
规范
- 属性之间使用
;
分隔,结尾不需要;
。 - 属性名和属性值之间使用
=
连接。 FREQ
属性为必填项,且必须出现在第一位(为了向下兼容)。- 其他属性之间没有先后顺序之分。
UNTIL
和COUNT
属性不能同时出现,UNTIL
和COUNT
都不存在时表示永远重复。- 每个属性最多只能出现一次。
属性
- FREQ:指定重复事件的频率,取值范围:"DAILY" / "WEEKLY" / "MONTHLY"。eg.
FREQ=WEEKLY
- UNTIL:指定重复事件的结束日期时间(UTC时间)。eg.
UNTIL=20240331T235959Z
- INTERVAL:指定重复事件的间隔。默认为1。eg.
INTERVAL=3
- BYDAY:指定在一周中的哪几天触发事件。多个值之间使用
,
分隔,取值范围:"SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA"。eg.BYDAY=SU,WE
- BYMONTHDAY:指定在一个月中的哪几天触发事件。多个值之间使用
,
分隔,取值范围:1~31。eg.BYMONTHDAY=6,9,12
- COUNT:指定重复事件的次数。未支持该属性。eg.
COUNT=10
- BYMONTH:指定在哪几个月触发事件。未支持该属性。多个值之间使用
,
分隔,取值范围:1~12。eg.BYMONTH=6,9,12
示例
- 按天重复
# 每天重复
RRULE:FREQ=DAILY;UNTIL=20240323T235959Z
# 每3天重复
RRULE:FREQ=DAILY;INTERVAL=3;UNTIL=20240323T235959Z
- 按周重复
# 每周一重复
RRULE:FREQ=WEEKLY;BYDAY=MO;UNTIL=20240323T235959Z
# 每2周的周二重复
RRULE:FREQ=WEEKLY;BYDAY=TU;UNTIL=20240323T235959Z;INTERVAL=2
- 按月重复
# 每月1号重复
RRULE:FREQ=MONTHLY;BYMONTHDAY=1;UNTIL=20240323T235959Z
# 每6月的15号重复
RRULE:FREQ=MONTHLY;INTERVAL=6;BYMONTHDAY=15;UNTIL=20240323T235959Z