(TOP)RRULE(重复事件)协议详解

RRULE协议:https://tools.ietf.org/html/rfc2445#section-4.3.10

本文研究内容用于TT日程管理,对RRULE有轻微删减,适用于大部分重复事件应用。

  • 以 ; 分割每个键值对
  • 以 = 分割键和值
  • 以 , 分割每个值

通用的键的字符串有

  • FREQ
  • UNTIL
  • COUNT
  • INTERVAL
  • WKST

FREQ(必须)

YEARLY

  1. BYMONTH+BYMONTHDAY
  2. BYMONTH+BYDAY YEARLY对应的BYDAY有正负数,没有数字表示1

eg.BYMONTH = 7,BYMONTHDAY = 12 每年7月12号
eg.BYMONTH = 7,BYDAY = 2SA,3SU 每年7月第二个周六和第三个周日
eg.BYMONTH = 7,BYDAY = -2SA 每年7月倒数第二个周六

MONTHLY

  1. BYMONTHDAY
  2. BYDAY,MONTHLY对应的BYDAY有正负数,没有数字表示1

eg.BYMONTHDAY = 12 每月12号
eg.BYDAY = 2SA,3SU 每月第二个周六和第三个周日
eg.BYDAY = -2SA 每月倒数第二个周六

WEEKLY

BYDAY,WEEKLY对应的BYDAY没有数字

eg.BYDAY = SA,SU 每周周六、周日

DAILY

HOURLY

MINUTELY

不支持SECONDLY

UNTIL(可选)

重复截止时间

eg.UNTIL = enddate(2018021000Z)

COUNT(可选)

重复次数

eg.COUNT = 10

INTERVAL(可选)

重复间隔,以FREQ为单位

eg.INTERVAL=3

WKST(可选)

一周开始时间,本项目默认周一

eg.WKST = MO