CalDAV API-Entwicklerhandbuch

CalDAV ist eine Erweiterung von WebDAV, die Clients einen Standardzugriff auf Kalenderinformationen auf einem Remoteserver bietet.

Google stellt eine CalDAV-Schnittstelle bereit, über die Sie Kalender mithilfe des CalDAV-Protokolls anzeigen und verwalten können.

Technische Daten

Für jede der relevanten Spezifikationen stellt der CalDAV-Support von Google wie folgt vor:

  • 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).
    • Unterstützt keine beliebigen (benutzerdefinierten) WebDAV-Properties.
    • Unterstützt nicht WebDAV Access Control (rfc3744).
  • rfc4791: Kalendererweiterungen für WebDAV (CalDAV)
    • Die HTTP-Methode REPORT wird unterstützt. Alle Berichte außer „Verfügbar/Beschäftigt“-Abfragen sind implementiert.
    • Unterstützt nicht die HTTP-Methode MKCALENDAR.
    • Unterstützt die Aktion AUDIO nicht.
  • rfc5545: iCalendar
    • Daten, die in der CalDAV-Schnittstelle verfügbar gemacht werden, werden gemäß der iCalendar-Spezifikation formatiert.
    • Unterstützt derzeit keine VTODO- oder VJOURNAL-Daten.
    • Die Apple iCal®-Erweiterung zum Zulassen von URL-Eigenschaften, die vom Nutzer festgelegt werden können, wird nicht unterstützt.
  • rfc6578: Sammlungssynchronisierung für WebDAV
    • Clientanwendungen müssen nach der ersten Synchronisierung in diesen Betriebsmodus wechseln.
  • rfc6638: Erweiterungen von CalDAV planen
    • Unterstützt einen einfachen "Posteingang", der immer leer ist.
    • Einladungen, die Sie erhalten, werden automatisch in Ihre Veranstaltungssammlung verschoben und nicht in Ihren Posteingang verschoben.
    • Unterstützt nicht die Suche nach Kostenlos-/Belegt-Status.
  • caldav-ctag-02: Entitäts-Tag der Kalendersammlung in CalDAV
    • Der Kalender ctag ist mit einer Ressource vom Typ etag vergleichbar. Er wird geändert, wenn sich etwas im Kalender geändert hat. So kann die Clientanwendung schnell feststellen, dass geänderte Ereignisse nicht synchronisiert werden müssen.
  • calendar-proxy: Nutzer-Proxy-Funktion von Kalender in CalDAV
    • Um die Leistung der Kalendersynchronisierung von iOS-Geräten zu verbessern, die keine Delegierung unterstützen, schlägt die Verwendung der Attribute calendar-proxy-read-for oder calendar-proxy-write-for mit einem iOS-User-Agent fehl.

Wir haben noch keine vollständige Implementierung aller relevanten Spezifikationen bereitgestellt. Bei vielen Clients, z. B. der Kalender-App von Apple, sollte das CalDAV-Protokoll jedoch ordnungsgemäß zusammenarbeiten.

Hinweis: Aus Gründen der Kontosicherheit und um Missbrauch zu verhindern, setzt Google möglicherweise Cookies in Clientanwendungen, die über CalDAV auf Daten zugreifen.

Client-ID erstellen

Sie benötigen ein Google-Konto, um die CalDAV API verwenden zu können. Wenn Sie bereits ein brauchbares Konto haben, müssen Sie nichts weiter tun.

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

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

Im nächsten Schritt müssen Sie die CalDAV API aktivieren.

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 aufgeführt.
  2. Wenn die gewünschte API nicht in der Liste angezeigt wird, verwenden Sie die Suche, um sie zu finden.
  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.
Zum Ausführen von CalDAV API-Anfragen benötigen Sie die Client-ID und den Clientschlüssel.

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

  1. Wählen Sie vorhandene OAuth 2.0-Anmeldedaten aus oder öffnen Sie die Seite „Anmeldedaten“.
  2. Erstellen Sie die OAuth 2.0-Anmeldedaten für Ihr Projekt, falls Sie dies noch nicht getan haben. Klicken Sie dazu auf Anmeldedaten erstellen > OAuth-Client-ID und geben Sie die erforderlichen Informationen an.
  3. Suchen Sie im Abschnitt OAuth 2.0-Client-IDs nach der Client-ID. Klicken Sie auf die Client-ID, um weitere Informationen zu erhalten.

Verbindung zum CalDAV-Server von Google herstellen

Um die CalDAV-Schnittstelle zu verwenden, 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 Authentifizierungsschema OAuth 2.0 verwenden. Der CalDAV-Server verweigert die Authentifizierung einer Anfrage, es sei denn, er geht über HTTPS mit OAuth 2.0-Authentifizierung eines Google-Kontos ein. Der Versuch, eine Verbindung über HTTP oder mithilfe der Basisauthentifizierung herzustellen, führt zu einem HTTP-Statuscode 401 Unauthorized.

Wenn das Clientprogramm (z. B. die Kalender-App von Apple) eine Hauptsammlung als Ausgangspunkt benötigt, lautet der URI für die Verbindung:

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

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

Wenn ein Clientprogramm (z. B. Mozilla Sunbird) eine Kalendersammlung als Ausgangspunkt benötigt, lautet der URI für die Verbindung:

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 eine Umstellung auf das oben beschriebene neue Endpunktformat.

iCal® ist eine Marke von Apple Inc.