Web Based Calendar Sharing
New: the iCalendar standard apparently works with Outlook too. So, with this we would have a standards-based shareable calendar solution.
For the User
Using calendar sharing is easy. Use Mozilla Sunbird. Make sure to update or get a more recent versions, while I have been using Mozilla Sunbird for over a year successfully, the newer releases are nicer than those from several months ago. Other calendar programs might work too, as long as they use the iCalendar standard and can access web calendars.
To sign up to a new calendar (e.g. to gschadow's calendar) do the following:
- File->Subscribe to remote calendar...
- Select "on the network"
- Select iCalendar (ICS) and for location enter: http://aurora.regenstrief.org/cal/gschadow/general.ical
- Name enter whatever you like to call this calendar, e.g. "Gunther's general calendar"
- Finish
Now in the "Calendars" tab on the left you should see "Gunther's general calendar" and a check box in front. You can use these check-boxes to display only the appointments of the selected calendars.
This works very nicely for scheduling people as you can overlay the calendars of those people for whom you want to find a common available time.
Vision
Using this method, we can do very flexible and convenient calendar sharing.
I am thinking of it this way. Let's say we put all calendars into http://aurora.regenstrief.org/cal/ and then create a directory per user:
/cal/gschadow/ /cal/bmamlin/ /cal/jtfinnel/
etc. Then in these directories I can make
/cal/gschadow/regenstrief.ical /cal/gschadow/informatics.ical /cal/gschadow/private.ical
I can give Sandy write access to my regenstrief.ical calendar, and can give Mary O'Neal from Informatics access to my informatics.ical calendar. I can even hide all entries in the private.ical calendar from anyone if I want to.
In addition, we can have public shared calendars for projects. This is really nice for administrative assistants. For instance, we have an ahrq-eprescribing.ical, a regenstrief-investigators.ical, and an ipchp.ical. Now Theda can put something on the ahrq-eprescribing.ical calendar and Paul D., Burke, Suren, everyone on that project can see it. Sandy can put something on the investigators calendar and every investigator can see it.
In the same way we can do room scheduling.
Everyone can subscribe to multiple calendars, and can map those in and out of their personal view.
For the Techie
We are using only standard open source components.
- Apache httpd web server (e.g. version 2.2)
- Subversion
- Hosted through Apache Dav svn
- Using digest authentication from the Trac system
- With authz
- setting SVNAutoversioning on
- currently hosted outside of the main svn tree, because not sure how SVNAutoversioning might harm us
- e.g. Mozilla Sunbird as the Calendar frontend, works quite nicely in recent versions.
The advantage of this system is that it is entirely standards based and very powerful.
All calendar access privileges can be controlled very detailed in the /usr/calroot/conf/authz file. This is very simple. One can define groups and give read and write privileges separately. For instance, I'll give Sandy write access to my calendar.
All changes are tracked! That means we can look for any new items that were put on the calendar since a certain date, using the standard subversion tools (and possibly Trac browser.) If we don't like something on our calendar, we can remove it by reverting to an earlier version. It helps that this iCalendar standard is pretty much human readable.
I am building an XMLReader for the iCalendar standard and have in the past synchronized XML-based calendars with my Motorola cellphone (see the xcalendar project in sourcehub).
