使用iCalendar文件导入删除日历事件(Outlook 2003问题)?

dev*_*per 18 icalendar outlook

有没有办法让我使用iCalendar导入从日历中删除项目?

我知道有一个方法:CANCEL,但是当我尝试它时,它对日历事件没有任何作用.

这是我的iCalendar文件中的内容.当我尝试将其导入Outlook时,它只是添加这些事件.

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//DDay.iCal//NONSGML ddaysoftware.com//EN
METHOD:CANCEL
BEGIN:VEVENT
CREATED:20081210T155315Z
DESCRIPTION:
DTEND:20081213T093000
DTSTAMP:20081210T155315Z
DTSTART:20081213T093000
LOCATION:
ORGANIZER:MAILTO:user@domain.com
SEQUENCE:1
SUMMARY:From FCS 13th
UID:20367b86-2123-4930-87ef-5c2a6626bd9f
BEGIN:VALARM
ACTION:DISPLAY
SUMMARY: Event 13th
TRIGGER:-PT30M
END:VALARM
END:VEVENT
BEGIN:VEVENT
CREATED:20081210T155315Z
DESCRIPTION:
DTEND:20081211T093000
DTSTAMP:20081210T155315Z
DTSTART:20081211T093000
LOCATION:7 West
ORGANIZER:MAILTO:user@domain.com
SEQUENCE:1
SUMMARY:Event 11th
UID:f212ab15-86c3-46c8-8592-af0716a40ea2
BEGIN:VALARM
ACTION:DISPLAY
SUMMARY:Event on 11th
TRIGGER:-PT30M
END:VALARM
END:VEVENT    
END:VCALENDAR
Run Code Online (Sandbox Code Playgroud)

dev*_*per 13

我忘了添加 STATUS:CANCELLED

现在这应该根据http://en.wikipedia.org/wiki/ICalendar#Events_.28VEVENT.29取消项目

这适用于Google日历,但不适用于Outlook 2003.Outlook仍会创建重复的条目.

以下是"STATUS:CANCELED"修改的"取消"事件.(英文拼写有两张L's)

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//DDay.iCal//NONSGML ddaysoftware.com//EN
X-WR-RELCALID:928C8448-048A-4aa2-BE27-A920773AF3DC
METHOD:CANCEL
BEGIN:VEVENT
CREATED:20081210T210344Z
DESCRIPTION:
DTEND:20081213T093000
DTSTAMP:20081210T210344Z
DTSTART:20081213T093000
LOCATION:
ORGANIZER:MAILTO:user@domain.com
SEQUENCE:1
STATUS:CANCELLED
SUMMARY:Event to export 1
UID:20367b86-2123-4930-87ef-5c2a6626bd9f
BEGIN:VALARM
ACTION:DISPLAY
SUMMARY:Event to export 1
TRIGGER:-PT30M
END:VALARM
END:VEVENT
BEGIN:VEVENT
CREATED:20081210T210344Z
DESCRIPTION:
DTEND:20081211T093000
DTSTAMP:20081210T210344Z
DTSTART:20081211T093000
LOCATION:7 West
ORGANIZER:MAILTO:user@domain.com
SEQUENCE:1
STATUS:CANCELLED
SUMMARY:Event to export 2
UID:f212ab15-86c3-46c8-8592-af0716a40ea2
BEGIN:VALARM
ACTION:DISPLAY
SUMMARY:Event to export 2
TRIGGER:-PT30M
END:VALARM
END:VEVENT
END:VCALENDAR
Run Code Online (Sandbox Code Playgroud)

  • 仅供参考,Google 对 CANCELLED 区分大小写;STATUS:Cancelled 以静默方式失败。 (2认同)

Joe*_*vey 7

我有一段时间在努力奋斗.

正如其他一些人所说,你必须包括:

方法:取消

状态:已取消

VEVENT的行.UID必须与原始事件相同且SEQUENCE:number必须是CURRENT序列号!(您不需要从最后一个序列号添加1,因为取消事件不算作更新).

我有问题,因为我认为取消计为更新,因此增加了我的序列号,但你不必!


key*_*eom 6

此答案适用于 iCal URL 供稿,而不适用于导入 iCal 文件!

我研究了很长一段时间,因为给出的答案实际上并没有解决 Outlook 的问题,所以我想我会发布我发现的适用于 Outlook、iCal 和 Google 日历的内容。

您只是不发送该事件,如果该事件完全不在提要中,那么 Outlook、Google 日历和 iCal(来自我的测试)都会删除该事件,就好像它从未存在过一样。因此,如果事件已被取消,请假装它从未存在过,当本地日历同步时,它们将显示在提要中明确提供给他们的事件。

  • @Kush 你是对的。我犯了一个错误并在这里发布了我的答案,但我的答案不适用于文件导入。它用于从 URL 导入日历。例如在 Google 日历中通过 URL 添加日历,而不是从文件导入。这是我的一个错误,希望我的回答没有浪费您太多时间。 (4认同)