2008-12-10 284 views
13

有沒有辦法讓我使用iCalendar導入從日曆中刪除項目?使用iCalendar文件導入(Outlook 2003問題)刪除日曆事件?

我知道有一個METHOD: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:[email protected] 
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:[email protected] 
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 

回答

11

我忘了補充STATUS:CANCELLED

現在,這要根據http://en.wikipedia.org/wiki/ICalendar#Events_.28VEVENT.29

此作品在谷歌日曆,但不是在Outlook 2003中的Outlook仍然產生重複的條目取消的項目。

這裏修改「取消」事件與'狀態:取消'。 (英式拼寫有兩個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:[email protected] 
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:[email protected] 
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 
+1

僅供參考谷歌是區分大小寫的取消;狀態:取消失敗,無提示。 – 2016-06-05 21:39:50

1

我可能需要設置X-WR-RELCALID標籤,根據該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上是否有任何文檔?我找不到它。

1

我不知道這是否會有所幫助,嘗試設置順序:2

0

展望如果你改變了UID屬性創建重複事件。 您必須使用相同的UID創建另一個事件。

1

對我來說,它通過在ics文件的標題中設置X-WR-RELCALID標籤。然後Outlook認識到事件是一樣的。

+0

你隨便選一個嗎? – bvdb 2016-04-19 09:53:15

5

我一直在努力。

由於一些其他人所說的,你必須包括:

方法:取消

狀態:VEVENT的取消

線。 UID必須與原始事件相同,並且SEQUENCE:號碼必須是CURRENT序列號! (您不需要從最後一個序列號中加1,因爲取消該事件不會算作更新)。

我有問題,因爲我認爲取消計爲更新,因此增加了我的序列號,但你不必!

3

此答案適用於不用於導入iCal文件的iCal URL源!

我看了很長一段時間,因爲給出的答案實際上並沒有解決Outlook的問題,我以爲我會發布我發現的Outlook,iCal和Google日曆的工作。

你只是簡單地不發送事件,如果事件完全不在Feed中,那麼Outlook,Google Calendar和iCal(從我的測試)都只是刪除事件,就好像它從不存在一樣。因此,如果事件已被取消,只是假裝它永遠不存在,並且當本地日曆同步時,它們將顯示在Feed中明確給予它們的事件。

+0

我不認爲這會奏效。如果我在第一次同步中有10個事件並且在下一次同步中刪除了其中一個事件(不在ics文件中)。缺少的事件仍然存在於iCal或任何其他日曆(谷歌等),即使新同步沒有該事件,也不會被刪除。 – Kush 2014-12-10 10:04:14

1

這可能是一個痛苦和不可預知的業務,並可能依賴於Outlook版本。我有事件取消與Outlook 2010(v14)一起使用。我將icalendar作爲單部分消息發送,輸入文本/日曆,如this線程中所述。正如其他答案中提到的,我在MIME類型中有method = CANCEL,並且在icalendar中也是這樣。

對我來說,關鍵的一步是將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