开发者

Is iCalendar (.ics) the only way to push calendar data?

If you were building an application that tracked event data, how would you push that event data out so it could be on people's personal calendars and smartphones?

My thought was to create an .ics file and subscribe to it via Google Calendar, Outlook, Exchange, etc. But they appear to subscribe to a "snapshot" of the file, and don't consistently check the file for updates. If I want the updates to happen in near real-time, is there a better way to push out that calendar data than the .ics iCalendar format?

We use Exchange here at my company, and so when I create an event on any of my calendars (via Outlook, Entourage, or my iPhone, all connected to my Exchange user account), the event appears on all 3 开发者_开发知识库applications in under 1 minute.

Is there a way to push event data to the Exchange server from my database in a similar way?


Since you are using Exchange already, perhaps you could whip up an Exchange Activesync appointment request; it is essentially XML over HTTPS. This limits you to clients that speak EAS but I'm not sure that is outside the requirements - most every 'smartphone' OS seems to support EAS now.

If I were developing this, I would be concerned that anything less than EAS would be too reliant on the end-user's configuration; non-push protocols aren't designed to be real-time. Personal calendars are an issue with using EAS (not sure whether iCal etc. can support it) but depending on the application I'm not sure how many people are using only PC-locked calendars anymore, anyway.

http://msdn.microsoft.com/en-us/library/dd299440%28EXCHG.80%29.aspx


Using an iCalendar feed you can actually continue to push updates from that end-point. The caveat is that you need to make sure that users subscribe to the feed, and not just download it and import it.

Turning your http:// into webcal:// might be enough to do the trick, but not every client supports it. However, every client you mention does do subscriptions. Some however take some some time to update. Google Calendar for instance only does it once every 24 hours.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜