Why is it that the tech world has never really grasped the concept of communal calendaring? Whenever you ask someone about shared calendars, they immediately mention the only one that seems to be in use, that being Microsoft Exchange. The evils of this system are well known, and need not be ranted about here. Beside the fact that the environment I’d like to deploy in is primarily NOT Microsoft.
I’ll be posting more about this as I move through it, but here’s my initial foray.
The standard for calendar formats has boiled down to RFC2445 the IETF standards document for iCalendar format files. It’s a simple fileformat that everyone can read.
The trick is that most packages can easily generate calendars from their internal format, but I have yet to find a service that allows multiple people to edit the same calendar.
The solutions seems to be a ‘post and publish’ methodology, where iCal files are published into a common repository, and then a browser or client package downloads the calendar files and reviews them. This somewhat goes against the mindset of “shared database information” where one change is reflected everywhere, but after working with it for a bit, it works quite well.
What we’ve done here is set up a common drop directory on our fileserver to which client applications can ‘push’ their calendar files. These files (simply ‘foo.ics’) get dropped into the common directory, and then we use PHP iCalendar to browse them. the PHP app simply reviews all the calendars in that directory and presents a combined view. You can select which calendars to review and filter on.
If someone needs to change their calendar, they simply change it in their client and re-publish the calendar.
So far this is okay. We’re exploring other options to see what works and what doesn’t. Here’s a quick summary of what we’ve found:
iCal enabled clients
- Evolution – I’m using this as my desktop groupware client. The internal calendar app is quite good, and uses iCal (calendar.ics) files as the default format. THere is no inherent ‘sync’ command to publish the files to the server, so I simply scp them:
scp ~/evolution/local/Calendar/calendar.ics serverhost:/usr/local/apache/htdocs/calendar/calendars/dbs.ics
I’ll probably make a quicky cron job that’ll do this automatically every couple hours.
- eventSherpa – I absolutely love the name of this client. It’s a windows application that we’re toying around with, but it appears the only way it can publish calendar files is via their own eventSherpa server. We’re still exploring this one.
iCal server applications
- phpiCalendar – A set of PHP scripts that presents a combined view of multiple iCal calendars. This is a very slick application, and while it does not allow actual editing, it’s a worthy web-based viewer.
I’m open to suggestions on other clients or tools. I’ll post a more exhaustive summary once I’ve had some time to explore this more.