CalDAV API-Entwicklerleitfaden

CalDAV ist eine Erweiterung von WebDAV, die Clients einen Standard für den Zugriff auf Kalenderinformationen auf einem Remote-Server bietet.

Google bietet eine CalDAV-Schnittstelle, mit der Sie Kalender mithilfe des CalDAV-Protokolls aufrufen und verwalten können.

Spezifikationen

Die CalDAV-Unterstützung von Google ist wie folgt:

  • rfc4918: HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)
    • Unterstützt die HTTP-Methoden GET, PUT, HEAD, DELETE, POST, OPTIONS, PROPFIND und PROPPATCH.
    • Unterstützt nicht die HTTP-Methoden LOCK, UNLOCK, COPY, MOVE oder MKCOL oder den If*-Header (außer If-Match).
    • Beliebige (benutzerdefinierte) WebDAV-Eigenschaften werden nicht unterstützt.
    • WebDAV-Zugriffssteuerung (rfc3744) wird nicht unterstützt.
  • rfc4791: Kalendering-Erweiterungen für WebDAV (CalDAV)
    • Unterstützt die HTTP-Methode REPORT. Alle Berichte mit Ausnahme von Verfügbarkeitsabfragen werden implementiert.
    • Unterstützt die HTTP-Methode MKCALENDAR nicht.
    • Die Aktion AUDIO wird nicht unterstützt.
  • rfc5545: iCalendar
    • Daten, die auf der CalDAV-Benutzeroberfläche angezeigt werden, sind gemäß der iCalendar-Spezifikation formatiert.
    • Unterstützt derzeit keine Daten vom Typ VTODO oder VJOURNAL.
    • Die Apple iCal®-Erweiterung für vom Nutzer festgelegte URL-Eigenschaften wird nicht unterstützt.
  • rfc6578: Sammlungssynchronisierung für WebDAV
    • Client-Anwendungen müssen nach der ersten Synchronisierung in diesen Betriebsmodus wechseln.
  • rfc6638: Erweiterungen für CalDAV planen
    • Unterstützt einen einfachen „Posteingang“, der immer leer ist.
    • Einladungen, die Sie erhalten, werden automatisch an Ihre Sammlung "Events" gesendet und nicht in Ihren Posteingang.
    • Verfügbar-Belegt-Suche wird nicht unterstützt.
  • caldav-ctag-02: Kalendersammlung – Entitäts-Tag (CTag) in CalDAV
    • Der Kalender ctag ist wie eine Ressource etag. Er ändert sich, wenn sich etwas im Kalender geändert hat. So kann die Clientanwendung schnell feststellen, dass keine geänderten Ereignisse synchronisiert werden müssen.
  • calendar-proxy: Kalender-Proxy-Funktion von Kalender in CalDAV
    • Wenn Sie die Leistung der Kalendersynchronisierung von iOS-Geräten verbessern möchten, auf denen keine Delegierung unterstützt wird, schlägt die Verwendung der Attribute calendar-proxy-read-for oder calendar-proxy-write-for mit einem iOS User-Agent fehl.

Wir haben noch nicht alle relevanten Spezifikationen vollständig implementiert. Bei vielen Clients wie Apple iCal sollte das CalDAV-Protokoll jedoch korrekt funktionieren.

Hinweis: Zur Kontosicherheit und zum Schutz vor Missbrauch setzt Google unter Umständen Cookies in Clientanwendungen, die über CalDAV auf Daten zugreifen.

Client-ID erstellen

Für die Verwendung der CalDAV API benötigen Sie ein Google-Konto. Wenn Sie bereits ein Konto haben, das Sie verwenden können, sind Sie startklar.

Bevor Sie Anfragen an die CalDAV API senden können, müssen Sie Ihren Client in der Google API Console registrieren. Erstellen Sie dazu ein Projekt.

Gehen Sie zur Google API Console. Klicken Sie auf Projekt erstellen, geben Sie einen Namen ein und klicken Sie auf Erstellen.

Als Nächstes aktivieren Sie die CalDAV API.

So aktivieren Sie eine API für Ihr Projekt:

  1. Öffnen Sie die API-Bibliothek in der Google API Console. Wenn Sie dazu aufgefordert werden, wählen Sie ein Projekt aus oder erstellen Sie ein neues. In der API-Bibliothek sind alle verfügbaren APIs nach Produktfamilie und Beliebtheit gruppiert.
  2. Wenn die API, die Sie aktivieren möchten, nicht in der Liste angezeigt wird, suchen Sie sie mit der Suche.
  3. Wählen Sie die API aus, die Sie aktivieren möchten, und klicken Sie dann auf die Schaltfläche Aktivieren.
  4. Aktivieren Sie die Abrechnung, wenn Sie dazu aufgefordert werden.
  5. Akzeptieren Sie die Nutzungsbedingungen der API, wenn Sie dazu aufgefordert werden.
Für CalDAV API-Anfragen sind Client-ID und Clientschlüssel erforderlich.

So finden Sie die Client-ID und den Clientschlüssel Ihres Projekts:

  1. Wähle vorhandene OAuth 2.0-Anmeldedaten aus oder öffne die Seite „Anmeldedaten“.
  2. Falls noch nicht geschehen, erstellen Sie die OAuth 2.0-Anmeldedaten Ihres Projekts. Klicken Sie dazu auf Anmeldedaten erstellen > OAuth-Client-ID und geben Sie die erforderlichen Informationen an, um die Anmeldedaten zu erstellen.
  3. Die Client-ID wird im Abschnitt OAuth 2.0-Client-IDs angezeigt. Klicken Sie auf die Client-ID, um Details aufzurufen.

Verbindung zum CalDAV-Server von Google herstellen

Zur Verwendung der CalDAV-Schnittstelle stellt ein Clientprogramm zuerst an einem von zwei Startpunkten eine Verbindung zum Kalenderserver her. In beiden Fällen muss die Verbindung über HTTPS erfolgen und das OAuth 2.0-Authentifizierungsschema verwenden. Der CalDAV-Server lehnt die Authentifizierung einer Anfrage nur ab, wenn er über HTTPS mit der OAuth 2.0-Authentifizierung eines Google-Kontos eingeht. Der Versuch, eine Verbindung über HTTP herzustellen oder die Basisauthentifizierung zu verwenden, führt zu einem HTTP-401 Unauthorized-Statuscode.

Wenn für das Clientprogramm (z. B. Apple iCal) eine Hauptsammlung als Ausgangspunkt erforderlich ist, gilt für den URI die Verbindung:

https://apidata.googleusercontent.com/caldav/v2/calid/user

Dabei muss calid durch die „Kalender-ID“ des Kalenders ersetzt werden, auf den zugegriffen werden soll. Diese finden Sie in der Google Kalender-Weboberfläche: Wählen Sie im Drop-down-Menü neben dem Kalendernamen die Option Kalendereinstellungen aus. Auf der daraufhin angezeigten Seite wird die Kalender-ID im Abschnitt Kalenderadresse angezeigt. Die Kalender-ID für den primären Kalender eines Nutzers ist mit der E-Mail-Adresse dieses Nutzers identisch.

Wenn für ein Clientprogramm (z. B. Mozilla Sunbird) eine Kalendersammlung als Ausgangspunkt erforderlich ist, muss als URI eine Verbindung hergestellt werden:

https://apidata.googleusercontent.com/caldav/v2/calid/events

Der alte Endpunkt https://www.google.com/calendar/dav wurde verworfen und wird nicht mehr unterstützt. Sie können ihn auf eigenes Risiko verwenden. Wir empfehlen die Umstellung auf das oben beschriebene neue Endpunktformat.

iCal ist eine Marke von Apple Inc.