Calendar Interoperability with Kolab

Disclaimer:  This was written many years ago and some of these ideas may have been implemented:

Centered around the Kolab server, we want it to work with the following clients:
- Kronolith (www.horde.org) (marry horde with kolab to web enable kolab!)
- Mozilla
- Evolution
- Apple's® iCal

Methods:
- native IMAP/iCal (is this the iCAP standard?)
- CGI Import/Export (Kolab proxy)

Native IMAP (Kolab client?)
All the client calendar programs could use a data source such as:
- imap://server.domain/user/folder
Since each event is in a separate e-mail message, the client will read all the messages in the folder, put all those events in the calendar, and do whatever it needs to have a locally running copy of it.
OFFLINE?  Generally, a locally stored file is stored to cache the calendar in these client programs.  While offline, the events that are generated or deleted (for that matter) are going to have to be stored in some way so they can all be done at once when you go back online.  Some sort of queue that we are dealing with.  This queue should probably be used whether you are online or offline, so there will be no more than one entry in the queue while online.

All calendar clients should have an autopublish feature, wherein the calendar is immediately updated from the server before the client writes a new entry.  NOTE:  Kroupware currently does not seem to have this; Mozilla does.

CGI Import (Kolab proxy)
The point of the Kolab proxy is to allow clients which support the http and ical protocols but not the IMAP protocols that Kolab uses.  For example, Apple's® iCal has little chance of working with Kolab at this time.  To facilitate this the web server will talk http to the client and transform the ics file from/into imap email messages.
How
kolab->write trans log of ical events (deletes only) for synchro of import methods
export->read imap folders to create ics file
import
 1) split ics into events, compare header subjects with ics data
 2) synchronize events based on what happens
   a)  transaction not in delete list (trans log) and not in the incoming ics data
     i) need to delete from imap data store
   b)  trans not in imap but IS in ics data
     i) add to imap data
   c)  same UID in both imap and ics, but has different sequence/time
     ii)  update imap store appropriately.   Note:  client could have older calendar which we will not update imap with older events.

Also can be used to show a web view of the calendar!

Kolab Server
To have maximum interoperability, we would like to make an export for .ics data in a similar manner to the .vfb (Free/Busy) feature.  There may need to be an autopublish feature on the server for these two features.
Back | Return to .org