Guide du développeur de l'API CalDAV

CalDAV est une extension de WebDAV qui fournit une norme permettant aux clients d'accéder aux informations d'agenda sur un serveur distant.

Google fournit une interface CalDAV qui vous permet d'afficher et de gérer des agendas à l'aide du protocole CalDAV.

Caractéristiques

Pour chacune des spécifications pertinentes, Google est compatible avec CalDAV comme suit:

  • rfc4918: Extensions HTTP pour la création distribuée sur le Web et la gestion des versions (WebDAV)
    • Compatible avec les méthodes HTTP GET, PUT, HEAD, DELETE, POST, OPTIONS, PROPFIND et PROPPATCH.
    • Non compatible avec les méthodes HTTP LOCK, UNLOCK, COPY, MOVE ou MKCOL, ni avec l'en-tête If* (sauf If-Match).
    • Incompatible avec les propriétés WebDAV arbitraires (définies par l'utilisateur).
    • Non compatible avec le contrôle des accès WebDAV (rfc3744).
  • rfc4791: Extensions d'agenda vers WebDAV (CalDAV)
    • Accepte la méthode HTTP REPORT. Tous les rapports, à l'exception des requêtes de disponibilité, sont implémentés.
    • La méthode HTTP MKCALENDAR n'est pas compatible.
    • L'action AUDIO n'est pas compatible.
  • rfc5545: iCalendar
    • Les données exposées dans l'interface CalDAV sont formatées conformément à la spécification iCalendar.
    • Incompatible avec les données VTODO ou VJOURNAL pour le moment.
    • Non compatible avec l'extension Apple iCal® permettant d'utiliser des propriétés d'URL définies par l'utilisateur.
  • rfc6578: synchronisation des collections pour WebDAV
    • Les applications clientes doivent passer à ce mode de fonctionnement après la synchronisation initiale.
  • rfc6638: Planification d'extensions pour CalDAV
    • Accepte une boîte de réception simple, toujours vide.
    • Les invitations que vous recevez sont automatiquement distribuées dans votre collection "événements" au lieu d'être placées dans votre "boîte de réception".
    • Impossible de consulter les informations de disponibilité.
  • caldav-ctag-02: balise d'entité de collection d'agenda (CTag) dans CalDAV
    • L'agenda ctag est semblable à une ressource etag : il change lorsqu'un élément de l'agenda change. Cela permet à l'application cliente de déterminer rapidement qu'elle n'a pas besoin de synchroniser les événements modifiés.
  • calendar-proxy: fonctionnalité de proxy pour les utilisateurs d'agendas dans CalDAV
    • Pour améliorer les performances de synchronisation des agendas à partir d'appareils iOS, qui ne sont pas compatibles avec la délégation, l'utilisation des propriétés calendar-proxy-read-for ou calendar-proxy-write-for avec un user-agent iOS échouera.

Nous n'avons pas encore fourni une implémentation complète de toutes les spécifications pertinentes. Toutefois, pour de nombreux clients tels que l'application Calendrier d'Apple, le protocole CalDAV devrait fonctionner correctement.

Remarque: Pour des raisons de sécurité et pour éviter toute utilisation abusive, Google peut définir des cookies sur les applications clientes qui accèdent aux données via CalDAV.

Créer votre ID client

Pour utiliser l'API CalDAV, vous devez disposer d'un compte Google. Si vous possédez déjà un compte que vous pouvez utiliser, vous n'avez rien d'autre à faire.

Pour pouvoir envoyer des requêtes à l'API CalDAV, vous devez enregistrer votre client dans la console Google APIs en créant un projet.

Accédez à la console Google APIs. Cliquez sur Créer un projet, saisissez un nom, puis cliquez sur Créer.

L'étape suivante consiste à activer l'API CalDAV.

Pour activer une API pour votre projet, procédez comme suit :

  1. Dans la console Google APIs, ouvrez la bibliothèque des API. Si vous y êtes invité, sélectionnez un projet ou créez-en un. La bibliothèque des API répertorie toutes les API disponibles, regroupées par famille de produits et par popularité.
  2. Si l'API que vous souhaitez activer n'apparaît pas dans la liste, utilisez la fonctionnalité de recherche pour la trouver.
  3. Sélectionnez l'API que vous souhaitez activer, puis cliquez sur le bouton Activer.
  4. Si vous y êtes invité, activez la facturation.
  5. Si vous y êtes invité, acceptez les conditions d'utilisation de l'API.
Pour effectuer des requêtes de l'API CalDAV, vous avez besoin de l'ID client et du code secret du client.

Pour trouver l'ID client et le code secret du client pour votre projet, procédez comme suit:

  1. Sélectionnez des identifiants OAuth 2.0 existants ou ouvrez la page Identifiants.
  2. Si vous ne l'avez pas déjà fait, créez les identifiants OAuth 2.0 de votre projet en cliquant sur Créer des identifiants > ID client OAuth et en fournissant les informations nécessaires à la création des identifiants.
  3. Recherchez l'ID client dans la section ID client OAuth 2.0. Pour en savoir plus, cliquez sur l'ID client.

Se connecter au serveur CalDAV de Google

Pour utiliser l'interface CalDAV, un programme client se connecte initialement au serveur d'agendas à l'un des deux points de départ suivants. Dans les deux cas, la connexion doit être établie via HTTPS et doit utiliser le schéma d'authentification OAuth 2.0. Le serveur CalDAV refuse d'authentifier une requête, sauf s'il arrive via HTTPS avec l'authentification OAuth 2.0 d'un compte Google. Toute tentative de connexion via HTTP ou à l'aide de l'authentification de base génère un code d'état HTTP 401 Unauthorized.

Si le programme client (tel que l'application Calendrier d'Apple) nécessite une collection principale comme point de départ, l'URI à laquelle se connecter est le suivant:

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

Remplacez calid par l'ID de l'agenda concerné. Vous le trouverez dans l'interface Web de Google Agenda comme suit: dans le menu déroulant situé à côté du nom de l'agenda, sélectionnez Paramètres de l'agenda. Sur la page qui s'affiche, l'ID de l'agenda apparaît dans une section intitulée Adresse de l'agenda. L'ID de l'agenda principal d'un utilisateur est identique à son adresse e-mail.

Si un programme client (tel que Mozilla Sunbird) nécessite une collection d'agendas comme point de départ, l'URI auquel se connecter est le suivant:

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

L'ancien point de terminaison https://www.google.com/calendar/dav est obsolète et n'est plus compatible. Vous pouvez l'utiliser à vos propres risques. Nous vous recommandons de passer au nouveau format de point de terminaison décrit ci-dessus.

iCal® est une marque d'Apple Inc.