2017-10-17 119 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

回答