我想在我的应用程序中创建一个外部用户可以查看的日历。
CalDAV(基本上是 WebDAV+iCalendar)格式似乎得到了相对广泛的支持,尽管某些客户端(例如 Outlook)非常不寻常。不过对我来说完全陌生。
我想在外部发布事件,我不需要用户能够更新它们。
.ics 文件中事件的文本格式看起来比较简单:
BEGIN:VCALENDAR
VERSION:2.0
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTART:20091130T000000Z
DTEND:20091201T000000Z
SUMMARY:Test event for calendar format
LOCATION:Company site
DESCRIPTION:Test event.\nMore text on a new line
END:VEVENT
END:VCALENDAR
但是我真的不想编写自己的 ics 文件生成器。从每一行开始的键名在 ics 文件之间似乎也不是很一致。
那里有.Net实现吗?理想情况下,我不想建立一个完整的 WebDAV 实现——只是检索只读日历的能力。
我主要希望这是一个用户可以从 iPhone、Android 和黑莓手机同步的 URL。我知道他们可以处理来自某些供应商的 CalDAV 服务,但不能处理其他供应商(例如,我的 iPhone 可以从 Google 日历同步,但无法与 FaceBook 的事件同步)——有人知道为什么吗?
我认为事件也可以包含 MIME 附件 - 这是否得到充分支持以值得研究?
更新
对此的进一步研究已经确定了大多数实现中的一些奇怪的不一致。没有一个主要的移动客户端操作系统(iPhone、Blackberry、Android)可以处理 .ics 文件。
但是 iPhone 可以从 URL 打开 .ics(选择订阅日历),这也适用于 FaceBook。但是黑莓和安卓不能。我认为黑莓可以处理完整的 CalDAV 选项(而不仅仅是 .ics 文件),但对它的编程知之甚少。
有没有一致的方法可以做到这一点?