【问题标题】:With .ics files can I delete old events?使用 .ics 文件可以删除旧事件吗?
【发布时间】:2010-12-06 16:50:46
【问题描述】:

我目前正在处理从我们的应用程序导出的 .ics。

我能否以某种方式删除旧事件,所以在我第一次导入到 Outlook 中时,我有 152 个事件,而在我第二次导入时,我只有 100 个事件。那么我希望导入自动从 Outlook 中删除所有 52 个事件,这可能吗?

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

【问题讨论】:

  • 不,或者至少他似乎对在他的事件上设置 CANCELED 感到满意,这不是我想要的。我希望我的活动从日历中完全删除。

标签: import calendar vcalendar


【解决方案1】:

对我来说,它通过在 ics 文件的标题中设置 X-WR-RELCALID 标记来工作。然后 Outlook 将事件识别为相同。还要在标题中设置 METHOD:CANCEL,在 VEVENT 中设置 STATUS:CANCELLED。像这样:

这个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

【讨论】:

  • 我将上面的代码用于谷歌日历。当我收到取消的 ICS 文件时,我查看了我的谷歌日历,之前的活动仍然存在(未删除)。我是不是做错了什么。
  • @SahilBhatia 我得到的结果与您描述的相同。 Google Calendar 和 Yahoo Calendar 导入 REQUEST 文件并显示事件。然后他们导入 CANCEL 文件但继续显示事件。
  • 用我的 ics 文件试过了,但没用...cat nfl.ics | gsed "/CLASS:PUBLIC/aSTATUS:CANCELLED" | gsed "s/METHOD:PUBLISH/METHOD:CANCEL/g" > nfl_delete.ics
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多