CalDAV API-Entwicklerhandbuch

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

Google bietet eine CalDAV-Schnittstelle, mit der Sie Kalender über das CalDAV-Protokoll aufrufen und verwalten können.

Spezifikationen

Die CalDAV-Unterstützung von Google für die einzelnen relevanten Spezifikationen 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 Header If* (außer If-Match).
    • Beliebige (nutzerdefinierte) WebDAV-Attribute werden nicht unterstützt.
    • Unterstützt keine WebDAV-Zugriffskontrolle (RFC3744).
  • rfc4791: Calendaring Extensions to WebDAV (CalDAV)
    • Unterstützt die HTTP-Methode REPORT. Alle Berichte außer „free-busy-query“ sind implementiert.
    • Die HTTP-Methode MKCALENDAR wird nicht unterstützt.
    • Unterstützt die Aktion AUDIO nicht.
  • rfc5545: iCalendar
    • Daten, die über die CalDAV-Schnittstelle bereitgestellt werden, sind gemäß der iCalendar-Spezifikation formatiert.
    • VTODO- oder VJOURNAL-Daten werden derzeit nicht unterstützt.
    • Die Apple iCal®-Erweiterung, mit der Nutzer URL-Properties festlegen können, wird nicht unterstützt.
  • rfc6578: Collection Synchronization for WebDAV
    • Clientanwendungen müssen nach der ersten Synchronisierung zu diesem Betriebsmodus wechseln.
  • rfc6638: Scheduling Extensions to CalDAV
    • Unterstützt einen trivialen „Posteingang“, der immer leer ist.
    • Eingegangene Einladungen werden automatisch in Ihrer Sammlung „Termine“ und nicht in Ihrem Posteingang abgelegt.
    • Unterstützt keine Suche nach Verfügbarkeit.
  • caldav-ctag-02: Calendar Collection Entity Tag (CTag) in CalDAV
    • Der Kalender ctag ist wie eine Ressource etag. Er ändert sich, wenn sich etwas im Kalender ändert. So kann die Clientanwendung schnell feststellen, dass keine geänderten Ereignisse synchronisiert werden müssen.
  • calendar-proxy: Calendar User Proxy Functionality in CalDAV
    • Um die Leistung der Kalendersynchronisierung von iOS-Geräten zu verbessern, die keine Delegierung unterstützen, schlägt die Verwendung der Eigenschaften 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 wie der Kalender-App von Apple sollte das CalDAV-Protokoll jedoch korrekt funktionieren.

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

Client-ID erstellen

Um die CalDAV API verwenden zu können, 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.

Als Nächstes 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. 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 Ihres Projekts, indem Sie auf Anmeldedaten erstellen > OAuth-Client-ID klicken und die erforderlichen Informationen angeben.
  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 ü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, sofern sie nicht über HTTPS mit OAuth 2.0-Authentifizierung eines Google-Kontos erfolgt. Wenn Sie versuchen, eine Verbindung über HTTP herzustellen oder die Basisauthentifizierung verwenden, wird der HTTP-Statuscode 401 Unauthorized zurückgegeben.

Wenn für das Clientprogramm (z. B. die Kalender-App von Apple) eine Prinzipalerfassung als Ausgangspunkt erforderlich ist, 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 sie in der Google Kalender-Weboberfläche: Wählen Sie im Drop-down-Menü neben dem Kalendernamen Kalendereinstellungen aus. Auf der angezeigten Seite wird die Kalender-ID im Abschnitt Kalenderadresse angezeigt. Die Kalender-ID für den primären Kalender eines Nutzers ist dieselbe wie die E-Mail-Adresse dieses Nutzers.

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

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

Der alte Endpunkt https://www.google.com/calendar/dav ist veraltet und wird nicht mehr unterstützt. Die Verwendung erfolgt auf eigenes Risiko. Wir empfehlen Ihnen, auf das oben beschriebene neue Endpunktformat umzustellen.

iCal® ist eine Marke von Apple Inc.