Summersault
Home About Us Services Portfolio Community Support
Database Driven Websites
community home
local community
partner community
online community
blog


Archives: Categories: Authors:

 

Summersault Blog

Multi-Platform Calendar Sharing through WebDAV

Posted by Chris Hardie on March 21st, 2005

Even in a small office with only 6 people, there are still lots of opportunities for schedule conflicts and confusion. Even when it was just Mark and I, we often longed for the ability to share our personal and work calendars in a way that would make scheduling meetings more efficient. For a long time, it seemed that the options available to us involved either spending thousands of dollars on enterprise-level commercial software, or sacrificing ease-of-use by jumping through a mile of hoops for the most basic features.

With the emergence of some open industry standards for the storing and publishing of calendar information, however, we’ve come a long way toward making multi-platform calendar sharing a reality. This entry describes our setup in the hopes that someone else might find it useful.

We started by recognizing the need to have a central server where everyone’s calendar data would be stored. This is a pretty hard requirement to get around, and so if you don’t already have an Intranet server, one can be set up at little or no cost using old hardware and freely available open source operating systems. But that might be an area where you’d need a little help if you aren’t technically inclined.

The free and open source “WebDAV” standard is ideal for letting applications like calendar programs post their data on a remote webserver without having to use FTP or other proprietary methods. We easily created our own WebDAV server using the WebDAV module for our Apache server, which we already used to power our corporate intranet site. (For you Unix geeks, it was basically a “configure / make / make install” with a few tweaks to the httpd.conf file. See the mod_dav instructions for details.)

Our office desktop environment is comprised of a mix of Windows, Mac OS X, and Linux machines. Since the majority of us currently use Mac OS X, it seemed logical to start there for at least sharing calendars on one platform.

Apple’s use of the iCalendar standard in iCal, their built-in calendaring software makes this really easy. On my setup, for example, I have a Personal Calendar and Work Calendar that I can publish to a central server with different levels of detail and options (e.g. whether or not to include my personal notes, or even the title of the event). So all I had to do was fill in a few fields telling iCal where to publish my calendars and how often, and then they were instantly available on our Intranet for others to view. Other iCal users in the office could just select the “subscribe” feature in iCal, enter the URL of my published calendars, and then boom - all of my published appointments are available on their calendar view.

Let’s take Linux next. We got most all of the way there by just using the program KOrganizer (the calendar and scheduling program for the KDE desktop environment), which has good support for multiple calendars and sharing. KOrganizer has standard “Publish” and “Upload Free/Busy” options, which you can use to configure how you want your data sent to the server. Due to some specific characteristics of our setup, we ended up writing a small cron job that copies the actual .ics file to our server instead, but this shouldn’t be necessary for most users.

The last desktop operating system hold-out is Windows and the Outlook software. While there are lots of tools and advice out there for sharing your Outlook information, the closest we can get to automating this is…doing it manually (by exporting the data in the native formats and then converting it through home-grown software). This isn’t ideal, and since our Windows user is in the minority, we haven’t gone to the trouble to get it all the way working yet. Perhaps someone reading this knows of a solution we haven’t encountered yet?

One nice piece of software we encountered in dealing with all this was PHP iCalendar, which can take an .ics file (or a bunch of them concatenated together, as we do it) and create a dynamic web-based view of your events. This can be useful if you have all your calendar data in one place, but need to access it “from the road” when you might not be able to get your desktop calendar software to sync the way you want. (We also use it as something of a hackish way for our Windows user to browse everyone else’s events when she needs to.)

That’s our setup for now. It’s by no means elegant or clean, but it seems to be the best we can find given our requirements. If anyone has other tools or configurations they’d like to share, please do.


Did you find this entry interesting or useful? Please tell us about it!

3 Responses to “Multi-Platform Calendar Sharing through WebDAV”

  1. Rich Moore Says:

    I was interested in the cron job that you wrote to publish the .ics file. I am using an ical hosting service and want to publish via webdav to this service.

    Any information would be appreciated.

    Rich

  2. Brent Says:

    For Windows, Linux, Mac, Solaris, etc., the Mozilla project’s calendar software has robust support for WebDav.

    http://www.mozilla.org/projects/calendar/sunbird.html

  3. Groupcal Developer Says:

    If you are using Exchange. Groupcal allows you sync iCal with Exchange and back. The up coming version (3.35 or later) also allows you to handle invites directly from iCal and Groupcal. The Mac users no longer need to even look at Outlook and Exchange. Everything can be done from the Mac.

Leave a Reply

The opinions expressed by individuals posting in the Summersault Blog are not necessarily those of Summersault, LLC. While we try to insure the quality and accuracy of the information presented here, we make no guarantees about its suitability for any particular purpose.