Removing a black hole from the open source universe
I just found some blogging by Lisa Dusseault on CalDAV and discovered that CalDAV is now a 'Proposed Standard'. That may not mean much, but remember that IETF eventually ends up calling these things "Request For Comments". Lisa and others have spent considerable time and effort developing their specification to this point and congratulations are definitely in order.
So: what's interesting about CalDAV?
People have been asking me why calendaring, and in particular CalDAV, is such a hot button for me recently. The answer has evolved over time, and really comes in several parts...
Firstly, my desire for this is not recent
Shared calendaring has been a "black hole" in the Open Source universe for way too long. Several employers ago (in the early '90s) when I worked for ${LARGE_GOVT_DEPT} I used to schedule meetings using ${GROUP_CALENDAR} and it was damned useful. Later I moved on to work for a much smaller organisation, but ${GROUP_CALENDAR} there was still extremely useful - just in a very different profile of use.
When we got together and started Catalyst IT in 1997 I started turning my back on the 'Windows' world, looking at Linux as something that was interesting and Open Source as a movement I wanted to be involved in.
In 1998 I switched full-time to using Linux on my laptop, but in doing so I denied large chunks of application space which simply wasn't available. Heck, my desperate search for a decent open source word processor caused me to be cited in a 'why the concept of XML documents should not be patentable' recently since I really used some early versions of AbiWord to write letters to clients, and I still had them on my hard disk!
Since then I have seen the application space on Linux slowly populate with great programs that do large chunks of what I want to be able to do with my computer. I've contributed to that too, in programming small applications, filing bugs, promotionally and in other small ways.
So Why CalDAV?
After a while people started to talk about DAV, and perhaps this would be a way of providing a group calendar application. Unfortunately the way it ended up being used by most of the applications that did support it was to use it as a place to dump a person's entire calendar as a single file, or maybe just their free/busy time.
That ends up being flawed in a whole bunch of ways: how do you delegate responsibilities among people, for example?
Although DAV evolved over time to answer some of those questions, the applications that were paying lip-service to DAV failed to evolve in step.
A Star is Born
In the calendaring firmament, at least! Lisa Dusseault started to produce specifications for calendaring extensions to DAV and then she got a job with OSAF specifically to do that. That standards development process has taken three years, but we're finally near the end of it. Here's the description of CalDAV from their website:
"CalDAV models calendar events as HTTP resources in iCalendar format, and models calendars containing events as WebDAV collections. This allows users to publish and subscribe to calendars, share them collaboratively, synchronize between multiple users and synchronize between multiple devices.
Which is an excellent conceptualisation of what is (was) needed.
Meanwhile I was still looking around for a solution to the group calendaring problem, and not just for myself: Clients were also regularly asking what could be used to provide them with a shared calendar solution, and if they were asking me that then they were looking for an open source answer.
Now we have a standard, where are the implementations?
At this point it kind of becomes "chicken and egg". There are no servers, so people can't easily test the clients they are developing, and there are no clients, so people can't easily test their servers. Well a few people are working on these things, of course. On the client side, Mozilla is adding CalDAV support and CalDAV support snuck into Evolution in late 2005. Cyrus Daboo (one of the other authors of CalDAV) implemented it in his 'Mulberry' free-but-not-yet-open-source application, and there are a bunch more which are associated with client-side projects as well.
Looking around though, it seems that there are no simple servers. Some of the servers that are being written seem likely to fall into the trap of working best with their own client application, or they are simply proprietary solutions. Or they have requirements that are (to me) not particularly desirable, such as being written in Java.
I don't have a problem with Java, per se, but when you might want to run 20 applications on one server it always seems to want to get bloated and to eat administrator time...
Hence the Really Simple CalDAV Store
Eventually I got fed up with looking around the open source landscape every few months, searching for group calendar servers and finding the continuing promise of jam tomorrow, but no jam today.
Around May this year I decided to build my own, and around 4th of September I finally had enough answers to start work on it.
Yesterday I made a significant milestone release, with support now for multiple languages in the administrative interface, delegated permissions are working in a basic manner and the CalDAV operations used in Mozilla Calendar and Evolution are fully supported. Most of the CalDAV operations in Mulberry are supported too, although some of the more arcane ones will be my work for the coming month.
Thanks!
Thanks to Cristina, Lorena and Guillaume for their help in translating the administrative interface. I hope to thank a few more people for more translations soon also!
And also, thanks to Lisa, Cyrus and Bernard and everyone else who was involved in making the CalDAV idea a reality. Great work.
Thanks!
Thanks for RSCDS! I noticed RSCDS, and our office may look to use it in the next few months.
Currently we share iCalendar over WebDAV with Konqueror, Apple iCal (the application), and phpicalendar. One problem is multiple writers per calendar: apparently, they can clobber each other. Another problem is Evolution doesn't have good support for WebDAV while Konqueror doesn't support CalDAV.
You Rock!
Dude,
You have just single-handedly plugged one of the most glaring gaps in FLOSS.
Someone actually gets it! and is doing something about it without launching an
over-ambitious project to rewrite the entire universe. No, just the tiny missing piece.
Doesn't come with a massive application server,virtual machine or a new religion.
Just a simple implementation of the server side of an open standard,
for the low price of a 300kb download.
I have been so frustrated over this gap that I have been starting to research what it would
take to code something up, despite not having the qualifications ( I'm not even a programmer).
I can't wait to give this a spin this weekend. I suppose I should probably temper my enthusiasm
until I actually get it working, but looking at the web site gives me the impression that
it is already functional.
So here goes, and
Thanks
You Rock!
I do hope it works for you
It is nice to see that the "keeping it simple" part of my motivation is understood :-)
I do hope it works for you, and please help by filing bugs, or writing up your experiences. Sometimes it can be hard to get feedback on stuff that gets put out for anyone to use. I sometimes think people feel so grateful that they don't want to complain for fear of upsetting the person who did all this for free.
Well, that isn't the case. I'd much rather have the problems right out in the open. Tell me about 'em and I can fix them: I might never know about them otherwise because my experience is necessarily limited to a small range of environments.
Regards
Andrew McMillan.
Thanks
Hello,
Thanks for RSCDS, i searched a long time for this implementation ! i set it up on a redhat enterprise linux and it seems to work fine, except with lightning where the "reload remote calendar" does not work, i have to go to my inbox and go back to the calendar to see my collegue's changes.
postgresql-8.1.5.tar.gz
httpd-2.0.59.tar.gz
php-4.4.4.tar.gz
Regards.
Exciting
Thanks for writing this. I look forward to trying Chandler against RSCDS.
The bug you mention with DAV:displayname not being picked up should be fixed in recent builds of Chandler (it was https://bugzilla.osafoundation.org/show_bug.cgi?id=4981). We'd be delighted to get bug reports from you if you come across other interop issues between Chandler and your server!
Sincerely,
Jeffrey Harris
Open Source Applications Foundation