CalDAV API-Entwicklerhandbuch

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

Google stellt eine CalDAV-Schnittstelle zur Verfügung, über die Sie Kalender mithilfe des CalDAV-Protokolls ansehen und verwalten können.

Technische Daten

Der CalDAV-Support von Google für jede der relevanten Spezifikationen ist wie folgt:

  • rfc4918: HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)
    • Die HTTP-Methoden GET, PUT, HEAD, DELETE, POST, OPTIONS, PROPFIND und PROPPATCH werden unterstützt.
    • Die HTTP-Methoden LOCK, UNLOCK, COPY, MOVE oder MKCOL oder der If*-Header (außer If-Match) werden nicht unterstützt.
    • Unterstützt keine beliebigen (benutzerdefinierten) WebDAV-Properties.
    • WebDAV-Zugriffssteuerung (rfc3744) wird nicht unterstützt.
  • rfc4791: Kalendererweiterungen für WebDAV (CalDAV)
    • Unterstützt die HTTP-Methode REPORT. Alle Berichte, außer der Abfrage, ob verfügbar/beschäftigt, sind implementiert.
    • Die HTTP-Methode MKCALENDAR wird nicht unterstützt.
    • Die Aktion AUDIO wird nicht unterstützt.
  • rfc5545: iCalendar
    • Daten, die in der CalDAV-Oberfläche zur Verfügung gestellt 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 eingestellt 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 für CalDAV planen
    • Unterstützt einen einfachen Posteingang, der immer leer ist.
    • Einladungen, die Sie erhalten, werden automatisch in Ihrer Veranstaltungssammlung und nicht im Posteingang abgelegt.
    • Unterstützt die Suche nach Verfügbarkeitsinformationen nicht.
  • caldav-ctag-02: Entitäts-Tag für die Kalendersammlung in CalDAV
    • Der Kalender ctag ist wie eine Ressource etag. Er ändert sich, wenn sich etwas im Kalender geändert hat. Dadurch 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 über iOS-Geräte 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 korrekt funktionieren.

Hinweis: Zur Kontosicherheit und um Missbrauch zu verhindern, setzt Google möglicherweise Cookies in Clientanwendungen, 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 durch Erstellen eines Projekts bei der Google API Console registrieren.

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 aufgeführt.
  2. Wenn die gewünschte API nicht in der Liste angezeigt wird, können Sie sie über die Suche finden.
  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 die Client-ID und den Clientschlüssel.

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 zum Erstellen der Anmeldedaten erforderlichen Informationen an.
  3. Suchen Sie im Abschnitt OAuth 2.0-Client-IDs die Client-ID. Klicken Sie auf die Client-ID, um weitere Informationen zu erhalten.

Verbindung zum CalDAV-Server von Google herstellen

Zur Verwendung der CalDAV-Oberfläche stellt ein Clientprogramm an einem von zwei Startpunkten eine Verbindung zum Kalenderserver her. In beiden Fällen muss die Verbindung über HTTPS hergestellt werden und das Authentifizierungsschema OAuth 2.0 verwenden. Der CalDAV-Server verweigert die Authentifizierung einer Anfrage, es sei denn, er kommt über HTTPS mit OAuth 2.0-Authentifizierung eines Google-Kontos an. Der Versuch, eine Verbindung über HTTP oder die Basisauthentifizierung herzustellen, führt zu einem HTTP-401 Unauthorized-Statuscode.

Wenn das Clientprogramm (z. B. die Kalenderanwendung von Apple) eine Hauptsammlung als Ausgangspunkt erfordert, 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 diese Einstellung über die Weboberfläche von Google Kalender: 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 Hauptkalender eines Nutzers ist mit der E-Mail-Adresse dieses Nutzers identisch.

Wenn ein Clientprogramm (z. B. Mozilla Sunbird) eine Kalendersammlung als Ausgangspunkt benötigt, lautet der URI, zu dem eine Verbindung hergestellt werden soll:

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

Der alte Endpunkt https://www.google.com/calendar/dav wurde eingestellt und wird nicht mehr unterstützt. Sie können ihn auf eigenes Risiko verwenden. Wir empfehlen Ihnen, zum oben beschriebenen neuen Endpunktformat zu wechseln.

iCal® ist eine Marke von Apple Inc.