iCal calendar push

08 September 2008 in notes
tagged with [calendar] [dopplr] [http] [ical] [upload] [webdav]

There’s a common misconception that iCal uses WebDAV to upload calendars to remove servers. This bites me every so often, as I wrote the Dopplr iCal upload code and people tend to assume that if iCal can upload calendars, so should any other local calendar client that uses WebDAV. And they can’t - things break.

iCal actually does the simplest thing that could possibly work, and I love it for this. You give it a upload url, a username, and a password. The calendar you’re uploading has a name. iCal url-encodes the calendar name, and builds a calendar URL that looks like http://upload_url/calendar_name.ics. Then it does an HTTP PUT (authenticated with the username and password) of the contents of the calendar to that URL. Then it gives the url to the user and tells them that their calendar is here.

(As an aside, this means that you can upload more than one calendar into Dopplr, as long as they all have different names.)

That’s it. Exactly one HTTP call, one verb (Well, ok, there’s another verb. When you unpublish something, iCal sends an HTTP DELETE. But you knew that). It’s a subset of WebDAV, which is why iCal can also publish to WebDAV servers. But I was able to implement 60% of the iCal upload feature in Dopplr during the tea break in the middle of the meeting where someone came up with the idea, because adding support for a single extra verb to a single extra path is easy. Implementing WebDAV? Harder to get right.

disqus comments  

iCal calendar push

SourceForge.net: Remote Calendars

23 November 2007 in links
tagged with [ical] [ics] [outlook] [webdav]

Publish iCal files to a webdav server from Outlook 2003

https://sourceforge.net/projects/remotecalendars/

disqus comments  

SourceForge.net: Remote Calendars

Use lighttpd instead of mogstored

05 June 2006 in links
tagged with [perl] [webdav]

How to use lighttpd as a mogstored instead of perlbal. Cunning

http://lists.danga.com/pipermail/mogilefs/2006-June/00032...

disqus comments  

Use lighttpd instead of mogstored