iCalendar:有多个日期的事件?

问题描述:

我有什么,我认为是一个几乎最小的日历2测试赛:iCalendar:有多个日期的事件?

BEGIN:VCALENDAR 
VERSION:2.0 
BEGIN:VEVENT 
UID:Q1 
DTSTAMP:20170504 
SUMMARY:Testing Description 1 
DTSTART:20170510 
DTEND:20170510 
DESCRIPTION:Testing Stuff 1 
END:VEVENT 
BEGIN:VEVENT 
UID:Q2 
DTSTAMP:20170504 
SUMMARY:Testing Summary 1 
DTSTART:20170512 
DTEND:20170512 
DESCRIPTION:Testing Description 1 
END:VEVENT 
END:VCALENDAR 

正如你看到的,该计划是在2个事件具有相同的内容&描述。那是因为我希望这是一个为期两天的活动。

iCalendar格式是否确实有适当的多日期事件?通过多日我的意思是:

  • 不一定是连续的日期
  • 多个日期没有一个特定的模式(实际上没有复发)

我看到的iCalendar具有相当聪明复发模式(http://www.kanzaki.com/docs/ical/rrule.html),但我无法找到的一件事是任意日期的规则。

要做到这一点,您可以拥有一个与第一个实例相对应的DTSTART/DTEND的VEVENT,以及一个具有与每个实例的DTSTART相对应的多个值的RDATE属性。见https://tools.ietf.org/html/rfc5545#section-3.8.5.2

另一种方法是保持两个事件,你所做的一切,但他们通过上相关属性链接:现在https://tools.ietf.org/html/rfc5545#section-3.8.4.5

,在这两种情况下(尤其是上相关),通用客户端可能并不总是理解或利用这些属性。

+0

为了澄清,我可以添加'RDATE; VALUE = PERIOD:20170517T090000/20170517T170000, 20170518T090000/20170518T170000'。如果是这样的话,我认为Apple Calendar不支持它(请参阅https://apple.stackexchange.com/questions/68535/does-os-x-calendar-n%c3%a9e-ical-support-rdate? RQ = 1)。感谢你的回答。 – Manngo

+0

最好显示整个结果事件,但如果您有DTSTART:20170510 DTEND:20170511(DTEND不包括在内),您希望对RDATE使用相同的值类型,例如RDATE; VALUE = DATE:20170510,20170512 – arnaudq