iCalendar:有多个日期的事件?

iCalendar: Event with multiple dates?

我认为我有一个几乎最小的日历,其中包含 2 个测试事件:

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 个事件具有相同的摘要和描述。那是因为我希望它是一个为期 2 天的活动。

iCalendar 格式真的有正确的多日期事件吗?多日期是指:

我看到 iCalendar 有非常聪明的重复模式 (http://www.kanzaki.com/docs/ical/rrule.html),但我找不到的一件事是任意日期的规则。

为此,您可以有一个 DTSTART/DTEND 对应于第一个实例的 VEVENT,以及一个具有多个值的 RDATE 属性 对应于每个实例的 DTSTART。参见 https://www.rfc-editor.org/rfc/rfc5545#section-3.8.5.2

另一种方法是像您所做的那样保留两个事件,但是通过 RELATED-TO 属性 来 link 它们:https://www.rfc-editor.org/rfc/rfc5545#section-3.8.4.5

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