.NET中的双向可更新iCal文件

Dav*_*und 9 .net icalendar

我一直在尝试在.NET中创建一个可以与其他设备同步的iCal日历.我一直在使用DDay.iCal从我的数据对象生成iCal事件,到目前为止一切正常.从Outlook,我通过指向生成ics文件的URL 订阅了日历(添加日历 » 来自Internet):

Response.Clear();
Response.ContentType = "text/calendar";
Response.AddHeader("Content-Disposition", "inline; filename=\"Calendar.ics\"");
Response.Write( GenerateCalendar() );
Response.End();
Run Code Online (Sandbox Code Playgroud)

事件被正确导入日历; 但是,在我尝试过的任何日历软件中,我都无法更新或删除事件.这并不是说收到删除通知时出错; 只是所有客户都将日历识别为只读.

我的想法是,通过提供URL,我可以让Outlook或Google日历联系我的服务器以删除事件.我是否认为这应该是错误的,或者我错过了适当的属性?(或者,根据上面的代码,我是错误地导入日历,还是错误地分发日历?)

GenerateCalendar上面生成的日历可能如下所示:

BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
PRODID:-//My Company//My App//EN
URL:http://localhost/test/
X-WR-CALNAME:Test
BEGIN:VEVENT
DTEND:20110831T100100
DTSTAMP:20111028T091109
DTSTART:20110831T090100
SEQUENCE:0
SUMMARY:Test
UID:1
URL:http://localhost/test/?id=1
END:VEVENT
END:VCALENDAR
Run Code Online (Sandbox Code Playgroud)

com*_*ech 0

我认为您应该能够通过将方法从发布更改为请求并将组织者条目添加到 VEVENT 块来使其工作,即使它是一个虚拟电子邮件地址。

有关更多详细信息,请参阅RFC 2446