2017-10-17 103 views
0

我有一個具有自己的日曆系統的web應用程序。我想在用戶添加/更新/刪除日曆事件時向用戶發送電子郵件通知。使用iCal更新和刪除日曆項目

我通過nuget包Ical.Net使用iCal來創建事件附件。這在添加新日曆活動時效果很好。我能夠獲得帶有iCal附件的電子郵件並接受它,並將其添加到我的Google日曆中。

我有這樣的問題:有沒有一種方法使用iCal發送更新或刪除類型的對象,將影響以前添加的日曆事件?

我試過在第二個iCal對象中使用相同的Uid,但沒有奏效。

更新:這是會議創建流:

BEGIN:VCALENDAR 
PRODID:-//github.com/rianjs/ical.net//NONSGML ical.net 2.2//EN 
VERSION:2.0 
BEGIN:VEVENT 
DESCRIPTION:hi 
DTEND:20171019T200000 
DTSTAMP:20171018T022927Z 
DTSTART:20171019T193000 
SEQUENCE:0 
STATUS:Confirmed 
SUMMARY:test 
UID:2291d1c2-3b6d-404a-82ac-16807ecfd580 
END:VEVENT 
END:VCALENDAR 

更新流與不同的只是開始和結束時間相同。

更新2:

我看了很多帖子和RFC 2446的嘗試得到這個權利,我仍然有麻煩。這裏是我原來的3個例子,更新日期,然後取消。我只在原來的時間才結束一個單一的事件。它不會更改更新的時間,也不會取消該事件。

我也試過把METHOD:行放在VEVENT裏面,因爲我認爲讀取RFC 2446時會工作。當我這樣做時,我最終得到了3個事件。原來的和2在新的日期。

初始事件

BEGIN:VCALENDAR 
PRODID:-//RealtimeMD//Medical Portal//EN 
VERSION:2.0 
METHOD:REQUEST 
BEGIN:VEVENT 
DTSTART:20171020T023000Z 
DTEND:20171020T030000Z 
DTSTAMP:20171020T015303Z 
ORGANIZER;CN=Bob Docter:mailto:[email protected] 
UID:24258c34-2888-43ec-ac3d-180ee2603294 
CREATED:20171020T015303Z 
X-ALT-DESC;FMTTYPE=text/html: 
LAST-MODIFIED:20171020T015304Z 
LOCATION:RealtimeMD Zoom 
SEQUENCE:0 
STATUS:CONFIRMED 
SUMMARY:t 
TRANSP:OPAQUE 
END:VEVENT 
END:VCALENDAR 

更新事件

BEGIN:VCALENDAR 
PRODID:-//RealtimeMD//Medical Portal//EN 
VERSION:2.0 
METHOD:REQUEST 
BEGIN:VEVENT 
DTSTART:20171021T023000Z 
DTEND:20171021T030000Z 
DTSTAMP:20171020T015303Z 
ORGANIZER;CN=Bob Docter:mailto:[email protected] 
UID:24258c34-2888-43ec-ac3d-180ee2603294 
CREATED:20171020T015303Z 
X-ALT-DESC;FMTTYPE=text/html: 
LAST-MODIFIED:20171020T015340Z 
LOCATION:RealtimeMD Zoom 
SEQUENCE:1 
STATUS:CONFIRMED 
SUMMARY:t 
TRANSP:OPAQUE 
END:VEVENT 
END:VCALENDAR 

取消事件

BEGIN:VCALENDAR 
PRODID:-//RealtimeMD//Medical Portal//EN 
VERSION:2.0 
METHOD:CANCEL 
BEGIN:VEVENT 
DTSTART:20171021T023000Z 
DTEND:20171021T030000Z 
DTSTAMP:20171020T015303Z 
ORGANIZER;CN=Bob Docter:mailto:[email protected] 
UID:24258c34-2888-43ec-ac3d-180ee2603294 
CREATED:20171020T015303Z 
X-ALT-DESC;FMTTYPE=text/html: 
LAST-MODIFIED:20171020T015433Z 
LOCATION:RealtimeMD Zoom 
SEQUENCE:2 
STATUS:CANCELLED 
SUMMARY:t 
TRANSP:OPAQUE 
END:VEVENT 
END:VCALENDAR 
+0

請提供與您的描述中的添加和更新對應的icalendar流 – arnaudq

+0

我正在查看正在使用的庫來創建iCal項目,並看到我可以更改狀態。在我更新的示例中,您會注意到我將狀態設置爲「已確認」。我嘗試將其更改爲已取消,但不會像我期望的那樣刪除該項目。 – user856232

回答