CalDAV API-Entwicklerhandbuch

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

Google stellt eine CalDAV-Oberfläche bereit, mit der Sie Kalender über das CalDAV-Protokoll aufrufen und verwalten können.

Spezifikationen

Für jede der relevanten Spezifikationen gilt die folgende CalDAV-Unterstützung von Google:

  • rfc4918: HTTP-Erweiterungen für 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 und den If*-Header (außer If-Match).
    • Benutzerdefinierte WebDAV-Properties werden nicht unterstützt.
    • Unterstützt keine WebDAV-Zugriffssteuerung (rfc3744).
  • rfc4791: Kalendererweiterungen für WebDAV (CalDAV)
    • Unterstützt die HTTP-Methode REPORT. Alle Berichte mit Ausnahme der Abfrage für Verfügbarkeiten sind implementiert.
    • Die HTTP-Methode MKCALENDAR wird nicht unterstützt.
    • Die Aktion AUDIO wird nicht unterstützt.
  • rfc5545: iCalendar
    • Daten, die über die CalDAV-Oberfläche freigegeben werden, werden gemäß der iCalendar-Spezifikation formatiert.
    • VTODO- oder VJOURNAL-Daten werden derzeit nicht unterstützt.
    • Die Apple iCal®-Erweiterung wird nicht unterstützt, um von Nutzern einstellbare URL-Properties zuzulassen.
  • rfc6578: Sammlungssynchronisierung für WebDAV
    • Clientanwendungen müssen nach der Erstsynchronisierung in diesen Betriebsmodus wechseln.
  • rfc6638: Scheduling Extensions to CalDAV
    • Unterstützt einen trivialen „Posteingang“, der immer leer ist.
    • Einladungen, die Sie erhalten, werden automatisch in der Sammlung „Ereignisse“ abgelegt und nicht in Ihrem Posteingang.
    • Die Suche nach Verfügbarkeit wird nicht unterstützt.
  • caldav-ctag-02: Kalender-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-Nutzer-Proxy-Funktion in CalDAV
    • Um die Leistung der Kalendersynchronisierung von iOS-Geräten zu verbessern, die die Delegierung nicht unterstützen, funktioniert die Verwendung der Properties calendar-proxy-read-for oder calendar-proxy-write-for mit einem iOS-User-Agent nicht.

Wir haben noch nicht alle relevanten Spezifikationen vollständig implementiert. Bei vielen Clients wie der Kalender-App von Apple sollte das CalDAV-Protokoll jedoch ordnungsgemäß funktionieren.

Hinweis: Aus Gründen der Kontosicherheit und zum Schutz vor Missbrauch kann Google Cookies in Clientanwendungen setzen, die über CalDAV auf Daten zugreifen.

Client-ID erstellen

Zur 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, 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.

Aktivieren Sie als Nächstes die CalDAV API.

So aktivieren Sie eine API für Ihr Projekt:

  1. Öffnen Sie die API-Bibliothek in der Google API Console. Wählen Sie ein Projekt aus oder erstellen Sie ein neues, wenn Sie dazu aufgefordert werden. In der API-Bibliothek finden Sie alle verfügbaren APIs nach Produktfamilie und Beliebtheit gruppiert.
  2. Wenn die API, die Sie aktivieren möchten, nicht in der Liste angezeigt wird, können Sie die Suchfunktion verwenden.
  3. Wählen Sie die gewünschte API aus 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 benötigen Sie eine Client-ID und einen Clientschlüssel.

So findest du die Client-ID und den Clientschlüssel deines Projekts:

  1. Wählen Sie vorhandene OAuth 2.0-Anmeldedaten aus oder öffnen Sie die Seite „Anmeldedaten“.
  2. Falls noch nicht geschehen, erstellen Sie die OAuth 2.0-Anmeldedaten für Ihr Projekt. Klicken Sie dazu auf Anmeldedaten erstellen > OAuth-Client-ID und geben Sie die erforderlichen Informationen zum Erstellen der Anmeldedaten ein.
  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-Oberfläche zu verwenden, stellt ein Clientprogramm zuerst über einen von zwei Startpunkten eine Verbindung zum Kalenderserver her. In beiden Fällen muss die Verbindung über HTTPS hergestellt werden und das OAuth 2.0-Authentifizierungsschema verwenden. Der CalDAV-Server lehnt die Authentifizierung einer Anfrage ab, es sei denn, sie wird über HTTPS mit OAuth 2.0-Authentifizierung eines Google-Kontos gesendet. Der Versuch, eine Verbindung über HTTP oder mithilfe der Basisauthentifizierung herzustellen, führt zu einem HTTP-401 Unauthorized-Statuscode.

Wenn das Clientprogramm (z. B. die Kalender-App von Apple) eine Hauptsammlung als Ausgangspunkt benötigt, lautet der URI, zu dem eine Verbindung hergestellt werden soll:

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

Dabei muss calid durch die „Kalender-ID“ des Kalenders ersetzt werden, auf den zugegriffen werden soll. Sie finden sie in der Weboberfläche von Google Kalender. Wählen Sie dazu im Drop-down-Menü neben dem Namen des Kalenders Kalendereinstellungen aus. Auf der Seite, die daraufhin angezeigt wird, sehen Sie die Kalender-ID im Abschnitt Kalenderadresse. Die Kalender-ID für den primären Kalender eines Nutzers entspricht seiner E-Mail-Adresse.

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 wird eingestellt und nicht mehr unterstützt. Die Nutzung erfolgt auf eigene Gefahr. Wir empfehlen Ihnen, auf das oben beschriebene neue Endpunktformat umzustellen.

iCal® ist eine Marke von Apple Inc.