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 ansehen und verwalten können.

Für die CalDAV API gelten dieselben Kontingentlimits wie für die Calendar API. Weitere Informationen finden Sie unter Nutzungs limits.

Spezifikationen

Für jede der relevanten Spezifikationen wird die CalDAV-Unterstützung von Google wie folgt beschrieben:

  • 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, MKCOL, oder den If* Header (außer If-Match).
    • Unterstützt keine beliebigen (nutzerdefinierten) WebDAV-Properties.
    • 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.
    • Unterstützt nicht die HTTP-Methode MKCALENDAR.
    • Unterstützt nicht die Aktion AUDIO.
  • rfc5545: iCalendar

    • Die in der CalDAV-Schnittstelle bereitgestellten Daten sind gemäß der iCalendar-Spezifikation formatiert.
    • Unterstützt keine VTODO- oder VJOURNAL-Daten.
    • Unterstützt nicht die Apple iCal-Erweiterung, mit der nutzerdefinierte URL-Properties möglich sind.
  • rfc6578: Collection Synchronization for WebDAV

    • Clientanwendungen müssen nach der ersten Synchronisierung zu diesem Betriebsmodus wechseln.
  • rfc6638: Scheduling Extensions to CalDAV

    • Unterstützt einen einfachen „Posteingang“, der immer leer ist.
    • Einladungen, die Sie erhalten, werden automatisch in Ihrer Sammlung „Ereignisse“ abgelegt, anstatt in Ihrem „Posteingang“.
    • Unterstützt keine Suche nach free-busy.
  • caldav-ctag-02: Calendar Collection Entity Tag (CTag) in CalDAV

    • Das ctag des Kalenders ähnelt einem etag der Ressource. Es ä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

    • Zur Verbesserung der Kalendersynchronisierung schlagen Anfragen, die die Properties calendar-proxy-read-for oder calendar-proxy-write-for enthalten, mit einem iOS-User-Agent fehl, da iOS-Geräte keine Delegierung unterstützen.

Obwohl unsere CalDAV-Implementierung nicht alle Spezifikationen abdeckt, funktioniert sie für viele Clients, einschließlich Apple Kalender, korrekt.

Client-ID erstellen

Wenn Sie die CalDAV API verwenden möchten, benötigen Sie ein Google Konto.

Bevor Sie Anfragen an die CalDAV API senden können, müssen Sie Ihren Client in der Google Cloud 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 bei Aufforderung ein Projekt aus oder erstellen Sie ein neues. 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, suchen Sie danach.
  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 benötigen Sie eine Client-ID und einen 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, falls noch nicht geschehen, die OAuth 2.0 -Anmeldedaten für Ihr Projekt. Klicken Sie dazu auf Anmeldedaten erstellen > OAuth-Client-ID und geben Sie die erforderlichen Informationen ein.
  3. Suchen Sie im Bereich 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

Wenn Sie die CalDAV-Schnittstelle verwenden möchten, stellt ein Clientprogramm zuerst eine Verbindung zum Kalenderserver her. Dabei gibt es zwei Startpunkte. In beiden Fällen muss die Verbindung über HTTPS hergestellt werden und das OAuth 2.0-Authentifizierungsschema verwenden. Der CalDAV-Server authentifiziert eine Anfrage nur, wenn sie über HTTPS mit OAuth 2.0-Authentifizierung eines Google-Kontos eingeht. Wenn Sie versuchen, eine Verbindung über HTTP herzustellen oder die Basisauthentifizierung zu verwenden, wird der HTTP-Statuscode 401 Unauthorized zurückgegeben.

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

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

Ersetzen Sie CALENDAR_ID durch die ID des Kalenders, auf den zugegriffen werden soll.

Wenn Sie die Kalender-ID über die Weboberfläche abrufen möchten, wählen Sie im Drop-down-Menü neben dem Kalendernamen ** Kalendereinstellungen** aus. Die Kalender-ID wird 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 Thunderbird) eine Kalender sammlung als Startpunkt erfordert, verwenden Sie den folgenden URI:

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