CalDAV est une extension de WebDAV qui permet aux clients d'accéder aux informations d'agenda sur un serveur distant.
Google fournit une interface CalDAV que vous pouvez utiliser pour afficher et gérer des agendas à l'aide du protocole CalDAV.
Spécifications
Pour chacune des spécifications concernées, la compatibilité de Google avec CalDAV est la suivante :
- rfc4918 : extensions HTTP pour la création et la gestion de versions distribuées sur le Web (WebDAV)
- Compatible avec les méthodes HTTP
GET
,PUT
,HEAD
,DELETE
,POST
,OPTIONS
,PROPFIND
etPROPPATCH
. - Ne prend pas en charge les méthodes HTTP
LOCK
,UNLOCK
,COPY
,MOVE
ouMKCOL
, ni l'en-têteIf*
(saufIf-Match
). - Ne prend pas en charge les propriétés WebDAV arbitraires (définies par l'utilisateur).
- Le contrôle des accès WebDAV (rfc3744) n'est pas pris en charge.
- Compatible avec les méthodes HTTP
- rfc4791 : extensions d'agenda à WebDAV (CalDAV)
- Compatible avec la méthode HTTP
REPORT
. Tous les rapports, à l'exception de free-busy-query, sont implémentés. - La méthode HTTP
MKCALENDAR
n'est pas acceptée. - L'action
AUDIO
n'est pas acceptée.
- Compatible avec la méthode HTTP
- rfc5545 : iCalendar
- Les données exposées dans l'interface CalDAV sont mises en forme conformément à la spécification iCalendar.
- Il n'est actuellement pas compatible avec les données
VTODO
niVJOURNAL
. - Elle n'est pas compatible avec l'extension Apple iCal® qui permet aux utilisateurs de définir des propriétés d'URL.
- rfc6578 : synchronisation des collections pour WebDAV
- Les applications clientes doivent passer à ce mode de fonctionnement après la synchronisation initiale.
- rfc6638 : extensions de planification pour CalDAV
- Accepte une "boîte de réception" triviale, qui est toujours vide.
- Les invitations que vous recevez sont automatiquement placées dans votre collection "Événements" plutôt que dans votre boîte de réception.
- La recherche des disponibilités n'est pas prise en charge.
- caldav-ctag-02 : balise d'entité de collection d'agenda (CTag) dans CalDAV
- L'agenda
ctag
est semblable à une ressourceetag
. Il change lorsque quelque chose dans l'agenda a changé. Cela permet à l'application cliente de déterminer rapidement qu'elle n'a pas besoin de synchroniser les événements modifiés.
- L'agenda
- calendar-proxy: Calendar User Proxy Functionality in CalDAV
- Pour améliorer les performances de la synchronisation de l'agenda à partir d'appareils iOS, qui ne sont pas compatibles avec la délégation, l'utilisation des propriétés
calendar-proxy-read-for
oucalendar-proxy-write-for
avec un UserAgent iOS échouera.
- Pour améliorer les performances de la synchronisation de l'agenda à partir d'appareils iOS, qui ne sont pas compatibles avec la délégation, l'utilisation des propriétés
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 Agenda d'Apple, le protocole CalDAV devrait fonctionner correctement.
Remarque : Pour la sécurité des comptes et pour éviter les utilisations abusives, Google peut définir des cookies dans 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 avez déjà un compte que vous pouvez utiliser, vous n'avez rien à faire.
Avant de pouvoir envoyer des requêtes à l'API CalDAV, vous devez enregistrer votre client auprès de 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 :
- Dans la console Google APIs, ouvrez la bibliothèque d'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 classées en fonction de leur popularité.
- Si l'API que vous souhaitez activer n'apparaît pas dans la liste, utilisez la fonctionnalité de recherche pour la trouver.
- Sélectionnez l'API que vous souhaitez activer, puis cliquez sur le bouton Activer.
- Si vous y êtes invité, activez la facturation.
- Si vous y êtes invité, acceptez les conditions d'utilisation de l'API.
Pour trouver l'ID client et le code secret du client de votre projet, procédez comme suit :
- Sélectionnez un identifiant OAuth 2.0 existant ou ouvrez la page Identifiants.
- 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, puis en fournissant les informations nécessaires à la création des identifiants.
- Recherchez l'ID client dans la section ID clients OAuth 2.0. Pour en savoir plus, cliquez sur l'ID client.
Connexion au serveur CalDAV de Google
Pour utiliser l'interface CalDAV, un programme client se connecte initialement au serveur d'agenda à l'un des deux points de départ. Dans les deux cas, la connexion doit être établie via HTTPS et utiliser le schéma d'authentification OAuth 2.0. Le serveur CalDAV refusera d'authentifier une requête, sauf si elle 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 de principaux comme point de départ, l'URI auquel se connecter est le suivant :
https://apidata.googleusercontent.com/caldav/v2/calid/user
Où calid
doit être remplacé par l'ID de l'agenda auquel accéder. Pour le trouver dans l'interface Web de Google Agenda, procédez comme suit : dans le menu déroulant à 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 est indiqué dans la section 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 pris en charge. Utilisez-le à 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.