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