2

我在 10,11 日创建了一个重复事件,请参见下文,我想删除第 10 个事件,所以我使用了方法:取消,但由于 UID 相同,两条记录都将被删除。如何只删除一条记录,我应该使用 UID 等任何其他值吗?

BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 9.0 MIMEDIR//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH

BEGIN:VEVENT
DTSTART:20150910T100000
DTSTAMP:20150910T115449Z
RRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20150911T110000
UID:78163local
Location: Test
DESCRIPTION:test
LAST-MODIFIED:20150910T115449Z
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:service
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR

取消事件代码:

BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 9.0 MIMEDIR//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:CANCEL
BEGIN:VEVENT
DTSTART:20150910T100000
DTEND:20150911T110000
DTSTAMP:20150910T115714Z

UID:78163local
Location: Test
DESCRIPTION:Test
LAST-MODIFIED:20150910T115714Z
SEQUENCE:1
STATUS:CANCELLED
SUMMARY:service
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
4

2 回答 2

3

如果您只想删除一个实例,则需要指定要删除的实例的 RECURRENCE-ID。

实例的 RECURRENCE-ID 对应于该实例的原始 DTSTART。所以在你的情况下,你的取消应该是这样的:

DTSTART:20150910T100000
RECURRENCE-ID:20150910T100000

另见https://www.rfc-editor.org/rfc/rfc5546#section-4.4.3

于 2015-09-11T09:19:51.430 回答
0

您需要拥有 RECURRENCE-ID 以及我发现的其他可能的方法是删除创建的具有相同 UID 的另一个递归并使用 METHOD 作为 REQUEST 而不是 PUBLISH,它会删除旧的重复事件并使用新的重复事件进行更新,不包括特定的提到的日期。

有关更多信息,请参见下面的链接http://www.techfolks.net/ical-recurring-appointment-with-rrule-exdate-examples/

于 2015-09-22T10:12:00.027 回答