打破重复事件时UNTIL在RRULE中的值

时间:2017-01-10 15:26:15

标签: google-calendar-api icalendar rrule

在Google日历中使用RRULE考虑以下重复事件,如下所述。

BEGIN:VEVENT
DTSTART;TZID=Asia/Calcutta:20170111T020000
DTEND;TZID=Asia/Calcutta:20170111T050000
RRULE:FREQ=DAILY;UNTIL=20170116T203000Z
DTSTAMP:20170110T150957Z
CREATED:20170110T150942Z
DESCRIPTION:
LAST-MODIFIED:20170110T150942Z
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Repeat event test
TRANSP:OPAQUE
END:VEVENT

如果现在通过在1月14日将重复序列分为两部分(编辑此事件和未来事件)来编辑此事件,则此事件的RRULE将更改为以下

RRULE:FREQ=DAILY;UNTIL=20170113T182959Z

为什么UNTIL的值设置为 1秒小于1月14日重复发生的RECURRENCEID / DTSTART值,而不是将其设置为1月13日重复发生的DTSTART值。在这种情况下,是否必须以这种方式设置RRULE中的UNTIL值(即减少1秒)?

1 个答案:

答案 0 :(得分:1)

你不会发现任何提及此的标准。 https://tools.ietf.org/html/rfc5545#section-3.3.10提及

  

如果值         由UNTIL指定与指定的重复同步,         这个DATE或DATE-TIME成为最后一个实例         复发。

但它没有强制要求该值必须与重复同步,也没有提到它应该少于1秒。

我怀疑这对开发者来说只是一个方便,因为截止日期是他正在操作的第14个,而前一个实例需要计算。