问题 使用.ics文件可以删除旧事件吗?


我目前正在从我们的应用程序中进行.ics导出。

我可以以某种方式删除旧事件,所以在我第一次导入Outlook时,我有152个事件,在我第二次导入时,我只有100个事件。然后我想导入自动删除Outlook中的所有52个事件,这可能吗?

我知道我可以取消活动,但这不是我想要的。


4084
2017-10-14 14:26


起源

可能重复: stackoverflow.com/questions/356598/... - Rubens Farias
不,或者至少他看起来很满意只是在他的活动上设置了CANCELED,这不是我想要的。我希望我的活动完全从日历中删除。 - Fredrik


答案:


对我来说,它通过在ics文件的标题中设置X-WR-RELCALID标记来实现。然后Outlook认为该事件是相同的。同时在标题中设置METHOD:CANCEL,在VEVENT中设置STATUS:CANCELED。喜欢这个:

这个ics创建事件:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:http://www.example.com/example/
X-WR-RELCALID:ABC
METHOD:PUBLISH
BEGIN:VEVENT
UID:ThisIsTheUID
SEQUENCE:0
ORGANIZER;CN="Mustermann, Max":MAILTO:max@mustermann.com
SUMMARY:Eine Kurzinfo
DESCRIPTION:Beschreibung des Termines
CLASS:PUBLIC
TRANSP:TRANSPARENT
DTSTART:20110804
DTEND:20110805
DTSTAMP:20110804
END:VEVENT
END:VCALENDAR

这个取消/删除事件的ics:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:http://www.example.com/example/
X-WR-RELCALID:ABC
METHOD:CANCEL
BEGIN:VEVENT
UID:ThisIsTheUID
SEQUENCE:2
ORGANIZER;CN="Mustermann, Max":MAILTO:max@mustermann.com
SUMMARY:Eine Kurzinfo
DESCRIPTION:Beschreibung des Termines
CLASS:PUBLIC
TRANSP:TRANSPARENT
DTSTART:20110804
DTEND:20110805
DTSTAMP:20110804
STATUS:CANCELLED
END:VEVENT
END:VCALENDAR

13
2017-08-04 12:06



我将上述代码用于Google日历。当我收到ICS文件取消时,我会查看我的谷歌日历,之前的活动仍在那里(未删除)。难道我做错了什么。 - Sahil Bhatia
@SahilBhatia我得到了你描述的相同结果。 Google日历和Yahoo日历会导入REQUEST文件并显示该事件。然后他们导入CANCEL文件,但继续显示事件。 - Rob_M