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

我知道有一种方法:取消,但是当我尝试它时,它对日历事件没有任何作用。

这是我的 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
有帮助吗?

解决方案

我忘了补充STATUS:CANCELLED

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

这工作在谷歌日历,但不是在Outlook 2003中的Outlook仍然产生重复的条目。

下面被修改“取消”与“STATUS:取消”的事件。 (英式拼写具有两个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

其他提示

我用这个挣扎了一会儿。

由于一些其他人所说的,你必须包括:

方法:CANCEL

STATUS:取消

的VEVENT的线。该UID必须是一样的原始事件和顺序:号码必须是当前的序列号! (你不需要从最后一个序列号加1为取消该事件不作为更新计数)。

我是有问题的,因为我认为取消算作一个更新,因此被递增我的序列号,但你不就得了!

这个答案是为iCal的URL饲料不用于导入iCal文件!

我看着这个相当长的一段时间,因为给出的答案实际上并没有解决问题的前景,我想我会寄我发现为Outlook,iCal和谷歌日历的工作。

您只须简单地不发送事件,如果事件是彻头彻尾的不只是在饲料中再然后Outlook,谷歌日历,和iCal(从我的测试)都只是删除事件,就好像它从来没有存在过。因此,如果该事件已经被取消只是假装它不曾存在过当本地日历同步,他们将显示,被明确赋予他们的饲料中的事件。

我可能需要设置 X-WR-重校准 标签,根据这个 http://www.oesf.org/forum/index.php?act=Print&client=printer&f=63&t=2650

它指出:“在第一次同步之前,您必须将 X-WR-RELCALID 标记添加到 mycalendar.ics 文件中,否则 iCal 将更改所有条目的 UID 编号,从而导致重复。”

但是我在协议中找不到有关 RELCALID 标记的任何文档 http://tools.ietf.org/html/rfc2446

当我设置 X-WR-RELCALID 时,Outlook 仍会创建重复事件,而不是删除这些事件。

有关于 X-WR-RELCALID 的文档吗?我找不到它。

我不知道这是否会有所帮助,尝试设置顺序:2

有关我它由在ICS中的文件的报头中设置X-WR-RELCALID标签的工作。然后Outlook识别的事件作为相同。

这可能是一件痛苦且不可预测的事情,并且可能取决于 Outlook 版本。我在使用 Outlook 2010 (v14) 时遇到了事件取消的情况。我将日历作为单部分消息发送,输入文本/日历,如中所述 线。正如其他答案中提到的,我在 MIME 类型中有 method=CANCEL ,在 calendar 中也有 method=CANCEL 。

对我来说关键的一步是将 DTSTART 添加到事件中。如果没有此字段,消息不会显示为取消,预览窗格中没有任何内容,并且日历会显示为文件名“不支持的日历消息.ics”的附件。 您可以在字段中输入您喜欢的任何日期!DTEND 并不重要。SEQUENCE 可以相同或更大。DTSTAMP 并不重要,但如果存在,则必须位于随初始邀请一起发送的 DTSTAMP 之后,否则会显示文本“未激活”,而不是“从日历中删除”按钮。

这是最小的工作取消......

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//www.notilus.com//Dimo Gestion Notilus//FR
CALSCALE:GREGORIAN
METHOD:CANCEL
BEGIN:VEVENT
DTSTART:20140625T123000Z
SEQUENCE:1
STATUS:CANCELLED
UID:Kerry
END:VEVENT
END:VCALENDAR

Outlook创建如果更改UID属性重复事件。 你必须创建具有相同的UID另一个事件。

您应该执行以下步骤来删除日历事件

  1. UID必须相同
  2. 添加方法:取消
  3. 添加状态:已取消
  4. SEQUENCE 必须大于创建的事件
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top