使用iCal更新和删除日历项目
我有一个具有自己的日历系统的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
如果要发送寿通过电子邮件发送,您希望按照https://tools.ietf.org/html/rfc5546#section-3.2.1发送带有PUBLISH方法的iTIP消息。这也意味着你如何构建你的电子邮件。请参阅https://tools.ietf.org/html/rfc6047
你介意进入更多细节吗?我看到的主要事情是组织者必须在场才能取消或更新活动。这是我唯一想念的还是其他的东西? – user856232
请提供与您的描述中的添加和更新对应的icalendar流 – arnaudq
我正在查看正在使用的库来创建iCal项目,并看到我可以更改状态。在我更新的示例中,您会注意到我将状态设置为“已确认”。我尝试将其更改为已取消,但不会像我期望的那样删除该项目。 – user856232