我想在我的应用程序中创建一个外部用户可以查看的日历。
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 和 Blackberry 手机同步的 URL。我知道他们可以处理某些供应商的 CalDAV 服务,但不能处理其他供应商的服务(例如我的 iPhone 可以从 Google 日历同步,但无法处理 Facebook 的活动) - 有人知道为什么吗?
我认为事件还可以包含 MIME 附件 - 这是否得到充分支持,值得研究?
更新
对此的进一步研究发现,大多数实现中存在一些奇怪的不一致之处。主要移动客户端操作系统(iPhone、Blackberry、Android)都无法处理 .ics 文件。
然而,iPhone 可以从 URL 打开 .ics(选择订阅日历),这也适用于 Facebook。但黑莓和安卓则不能。我认为 Blackberry 可以处理完整的 CalDAV 选项(而不仅仅是 .ics 文件),但不太了解它的编程。
有没有一致的方法可以做到这一点?
I want to create a calendar in my application that external users can view.
The CalDAV (basically WebDAV+iCalendar) format seems to be relatively widely supported, although if rather unusually by some clients (Outlook, for instance). Completely new to me though.
I want to externally publish events, I don't need users to be able to update them.
The text format of events in .ics files appears relatively simple:
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
However I don't really want to write my own ics file builder. The key names starting on each line don't seem to be very consistent between ics files too.
Is there a .Net implementation out there? Ideally I don't want to set up a whole WebDAV implementation - just the ability to retrieve a read-only calendar.
I mainly want this to be at a url that users can sync from iPhone, Android and Blackberry phones. I know that they can handle CalDAV services from some suppliers but not others (for instance my iPhone can sync from Google calendar but fails with FaceBook's events) - anyone have any idea why?
I think events can also contain MIME attachments - is this sufficiently supported to be worth looking into too?
Update
Further research on this has identified some weird inconsistencies in most implementations. None of the major mobile client OSs (iPhone, Blackberry, Android) can handle .ics files.
However iPhones can open an .ics from a URL (choose to subscribe to a calendar) and this does work with FaceBook too. Blackberry and Android can't however. I think the Blackberry can handle the full CalDAV option (rather than just the .ics file) but don't know much about programming for it.
Is there a consistent way to do this out there?
发布评论
评论(3)
我使用了 http://sourceforge.net/projects/dday-ical/去年的项目。
完美运作!
I've used http://sourceforge.net/projects/dday-ical/ for a project last year.
Works perfectly!
公司 IT Hit WebDav System 提供
IT Hit WebDAV Server Engine v3 for .Net
(起价 1250 美元))和IT Hit WebDAV Client .Net
(起价 350 美元)。它适用于 iOS 日历、Android CalDAV-Sync、Mac OS X 日历、Mozilla Lightning、eM 客户端、Bynari Outlook 插件、Evolution 等。
The company IT Hit WebDav System offers
IT Hit WebDAV Server Engine v3 for .Net
(starting at $ 1250)) andIT Hit WebDAV Client .Net
(starting at $350).It works with iOS Calendar, Android CalDAV-Sync, Mac OS X Calendar, Mozilla Lightning, eM Client, Bynari Outlook plugin, Evolution and others.
如果您正在寻找的是 CalDAV 客户端,那么我的建议是 DAVDroid,这是我最好的 CalDAV 客户端从来没有尝试过。
它是手机日历帐户的连接器,允许从手机上安装的任何日历应用程序使用来自 CalDAV 服务器的数据。
其他有趣的 CalDAV 客户端有:
Windows:
如果您正在寻找 .NET 的 ICalendar 库,您可以查看我和我的朋友构建的库:
ICalendar
有任何疑问都可以问我们!!!
If what you are looking for is a CalDAV Client then my suggestion is DAVDroid, this is the best CalDAV Client I have never tried.
It's a connector for the calendar account of your phone allowing to consume the data from your CalDAV Server from any Calendar App installed on your phone.
Other interesting CalDAV Clients are:
Windows:
If you are looking for a ICalendar library for .NET you can check the one my friend and I build:
ICalendar
Any doudt you can ask us!!!