Drei Standards für Kalenderdaten: V-Cal, I-Cal und CAP

Termin- und Aufgabenplanung gehören in größeren Firmen zur täglichen Routine. Kalender-Standards sorgen dafür, dass die Arbeit mit beliebigen Programmen klappt – auch ohne Filofax.

Kalenderdaten bilden den Kern jeder Zeitmanagement-Software (siehe entsprechenden Artikel) und spielen eine zentrale Rolle bei jeder PIM-Software (Personal Information Management). Damit die Terminplanung nicht daran scheitert, dass jedes Programm sein eigenes Format benutzt, haben sich mehrere Standards etabliert. Der erste stammt vom Versit-Konsortium, das 1996 eine Spezifikation für den Austausch von Kalenderdaten veröffentlichte. Noch im gleichen Jahr übertrug das Konsortium – bestehend aus Apple, AT&T, IBM und Siemens – die Rechte an der Spezifikation auf das Internet Mail Consortium [1]. Das Versit-Konsortium existiert nicht mehr; der V-Calendar blieb [2].

Von V-Cal zu I-Cal

Mit zunehmender Bedeutung des Internets wuchs auch die Nachfrage nach Kalender-Lösungen. Microsoft und Lotus veröffentlichten deshalb 1998 gemeinsam eine neue Kalender-Spezifikation unter dem Namen Internet Calendaring and Scheduling Core Object, kurz I-Calendar [3]. Die I-Calendar-Spezifikation baut im Wesentlichen auf den Standards von V-Calendar auf, erweitert um Free/Busy-Optionen.

In Ergänzung zu dem gleichzeitig veröffentlichten I-Calendar Transport-indendent Interoperability Protocol (I-TIP, [4]) beherrscht I-Calendar somit neben grundlegender Terminplanung auch Abfragefunktionen über die Verfügbarkeit von Mitarbeitern und Ressourcen. Die dazu benötigten Informationen veröffentlicht der Client in regelmäßigen Abständen auf einem zentralen Server. Gleichzeitig prüft er die Frei/Besetzt-Informationen anderer Benutzer.

Microsofts Outlook bietet diese Funktionalität in Zusammenarbeit mit einem Exchange-Server bereits seit Jahren. Das Programm benutzt dazu V-Calendar-Dateien mit der Endung ».vfb«. In der Linux-Welt verstehen nur wenige Clients dieses Feature. Mit dem proprietären Plugin von Novell ist aber zum Beispiel Evolution in der Lage, Free/Busy-Informationen mit einem Exchange-Server auszutauschen. In reinen Linux-Umgebungen bieten sich das Gespann Kolab-Kontact oder der Einsatz des OpenExchange-Servers an (Abbildung 1).

Abbildung 1: Eine Besonderheit von I-Calendar-Dateien sind die Free/Busy-Informationen. In Zusammenarbeit mit einem Groupware-Server wertet auch Kontact diese Informationen aus.

Abbildung 1: Eine Besonderheit von I-Calendar-Dateien sind die Free/Busy-Informationen. In Zusammenarbeit mit einem Groupware-Server wertet auch Kontact diese Informationen aus.

Aufbau und Optionen

V-Calendar- und I-Calendar-Dateien sind normale Textdateien. Bei V-Calendar haben sie in der Regel die Dateiendung ».vcs« und sind vom MIME-Typ »text/x-vcalendar«. I-Calendar-Dateien sind vom MIME-Typ »text/calendar« und tragen die Dateiendung ».ics«. Als Konvertierungswerkzeug eignet sich das Skript »ical2vcal« aus dem Paket »kdepim«. Ein Beispiel für eine einfache V-Calendar-Datei zeigt Listing 1.

Listing 1:
V-Calendar

01 BEGIN:VCALENDAR
02 VERSION:1.0
03 BEGIN:VEVENT
04 DTSTART:20050519T162500Z
05 DTEND:20050519T163500Z
06 SUMMARY:Kaffeepause
07 LOCATION;ENCODING=QUOTED-PRINTABLE:B=FCro
08 AALARM:20050519T162100Z
09 CATEGORIES:APPOINTMENT
10 CLASS:PUBLIC
11 END:VEVENT
12 END:VCALENDAR

Die meisten PIM-Programme erlauben das Organisieren von Appointments (Gruppenterminen) und Tasks. Die V-Calendar-Spezifikation sieht dafür die Typen »VEVENT« (Termin) und »VTODO« (Aufgaben) vor. I-Calendar-Dateien kennen zusätzlich den Typ »VJOURNAL« für Tagebucheinträge und »VFREEBUSY« für die Verfügbarkeitsinformationen.

In jeder Zeile stehen ein Schlüsselwort und – durch einen Doppelpunkt getrennt – der zugehörige Wert. Beide Kalenderformate beginnen mit dem Eintrag »BEGIN:VCALENDAR« und der Angabe der Version. In der nächsten Zeile folgt die Information, um welchen Typ von Kalenderfunktion es sich handelt. Dabei ist es auch möglich, in einer Kalenderdatei Aufgaben und Treffen zu mischen, zum Beispiel:

BEGIN:VCALENDAR
VERSION:1.0
BEGIN:VEVENT
[...]
END:VEVENT
BEGIN:VTODO
[...]
END:VTODO
END:VCALENDAR

Bei Treffen muss die Datei jeweils Start- und Endzeitpunkt sowie eine kurze Beschreibung enthalten. Aufgaben umfassen auch Status-Informationen.

Das Standard-Encoding von Kalenderdateien ist nach wie vor 7-Bit-US-Ascii. Andere Kodierungen müssen explizit mit »ENCODING=Kodierung« angegeben sein. Mit der Option »CHARSET=« lässt sich zusätzlich das Buchstabenset festlegen. Aktuelle Programme kommen auch mit Unicode-Dateien zurecht. Sie speichern Kalender in UTF-8, ohne von »ENCODING« oder »CHARSET« Gebrauch zu machen.

Alarm, Alarm!

Benachrichtigungen realisieren beide Formate über Alarme. V-Calendar benutzt dazu die Einträge »AALARM« (Acoustic Alarm) und »DALARM« (Display Alarm). Die I-Calendar-Spezifikation sieht für Notifikationen einen eigenen Typ »VALARM« vor. Bei ihm bestimmt der Eintrag »ACTION=«, welche Aktion der Client auszuführen hat. Hier stehen neben »AUDIO« und »DISPLAY« zusätzlich die Funktionen »EMAIL« und »PROCEDURE« bereit. Ein Beispiel für einen Notifikationseintrag aus einem I-Calendar zeigt Listing 2.

Listing 2: Notifikation in
I-Calendar

01 BEGIN:VALARM
02 DESCRIPTION:Alarm, Alarm!
03 ACTION:DISPLAY
04 TRIGGER;VALUE=DURATION:-P1D
05 END:VALARM

Um Termine zu ordnen, unterscheiden die zwei Spezifikationen die Klassen öffentlich (»PUBLIC«), privat (»PRIVATE«) und vertraulich (»CONFIDENTIAL«). Eine weitere Einteilung ist über Kategorien wie »MEETING«, »BUSINESS« und »HOLIDAY« möglich. Da die Spezifikationen keine konkreten Kategorie-Einträge festlegen, ist der Spielraum groß.

Konkurrenz

Obwohl V-Calendar und I-Calendar de facto die alleinigen Standards sind, bleiben auch neue Entwicklungen nicht aus. Einen interessanten Ansatz bietet zum Beispiel das Calendar Access Protocol (CAP, [5]). Es sieht unter anderem eine Rechtevergabe in den Kalenderdateien selbst vor. Daneben löst es ein weiteres großes Problem der bestehenden Standards: die Zeitverschiebung.

Beim Kopieren eines Kalenders von einem Mobiltelefon auf den lokalen Rechnern zum Beispiel, trägt die Anwendung je nach lokaler Uhr Termine zeitverschoben ein. Um dieses Problem zu umgehen, sieht das CAP einen Eintrag »VTIMEZONE« vor.

Einen weiteren Ansatz verfolgt das Web Distributed Authoring and Versioning Protocol (WebDAV). Obwohl es sich hierbei nicht explizit um ein Kalender-Protokoll handelt, erfreut es sich seit Mac OS X vor allem im Kreis von I-Cal-Benutzern großer Beliebtheit. Auch Kolab benutzt dieses Protokoll zum Austausch von Kalenderdaten über den zentralen Server. Als Dateiformat kommt jeweils I-Calendar zum Einsatz.

Nicht standardisiert ist das Speicherformat von Kalenderdaten. Dateien im Textformat dienen in erster Linie als Austauschobjekte. Intern legen viele Programme ihre Daten in einem Verzeichnisdienst oder einer Datenbank ab.

Welches Format?

Als Weiterentwicklung von V-Calendar bietet I-Calendar mehr Möglichkeiten. Trotzdem setzen zahlreiche Applikationen noch heute auf das V-Calendar-Format. Auch mobile Geräte wie Handys und PDAs benutzen oft den älteren Standard. Das hängt einerseits damit zusammen, dass V-Calendar-Dateien in der Regel weniger Informationen enthalten und somit kleiner sind. Auch die Kompatibilität ist bei diesem Format am ehesten garantiert. Sogar Microsofts eigenes mobiles Betriebssystem exportiert Kalenderdaten nicht im I-Cal‑, sondern im V-Cal-Format, damit auch andere mobile Geräten sie verstehen. Die I-Calendar-Spezifikation wiederum lässt bei vielen Einträgen Spielraum für herstellerspezifische Modifikationen.

Für Programme, die mit den bestehenden Client-Anwendungen optimal zusammenarbeiten sollen, ist somit V-Calendar eine gute Wahl. Besteht hingegen Bedarf an einer kundenspezifischen, möglichst Feature-reichen Lösung, eignet sich I-Calendar besser. Für Neuentwicklungen lohnt auch ein Blick auf CAP.

Infos

[1] Internet Mail Consortium: [http://www.imc.org]

[2] V-Cal-Spezifikationen: [http://www-eleves.int-evry.fr/~deckmyn/vcal-10.pdf]

[3] RFC 2445, I-Calendar: [http://asg.web.cmu.edu/rfc/rfc2445.html]

[4] RFC 2446, I-TIP: [http://asg.web.cmu.edu/rfc/rfc2446.html]

[5] CAP-Entwurf: [http://inet-consulting.com/draft-royer-calsch-cap-00.pdf]

[6] RFC 2291, WebDAV: [http://www.ietf.org/rfc/rfc2291.txt]

E-Mail Benachrichtigung
Benachrichtige mich zu:
1 Kommentar
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Holger
4 Jahre her

Der Link unter Infos [2] ist tot

Nach oben