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.
L'API CalDAV est soumise aux mêmes limites de quota que l'API Calendar. Pour en savoir plus, consultez Limites d'utilisation.
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,PROPFINDetPROPPATCH. - Ne prend pas en charge les méthodes HTTP
LOCK,UNLOCK,COPY,MOVE,MKCOLni l'en-têteIf*(sauf pourIf-Match). - Ne prend pas en charge les propriétés WebDAV arbitraires (définies par l'utilisateur).
- Il n'est pas compatible avec le contrôle des accès WebDAV (rfc3744).
- Compatible avec les méthodes HTTP
rfc4791 : extensions d'agenda à WebDAV (CalDAV)
- Compatible avec la méthode HTTP
REPORT. Tous les rapports, à l'exception defree-busy-query, sont implémentés. - La méthode HTTP
MKCALENDARn'est pas compatible. - L'action
AUDIOn'est pas acceptée.
- Compatible avec la méthode HTTP
-
- Les données exposées dans l'interface CalDAV sont mises en forme conformément à la spécification iCalendar.
- Les données
VTODOouVJOURNALne sont pas acceptées. - Ne prend pas en charge l'extension Apple iCal pour autoriser les propriétés d'URL définissables par l'utilisateur.
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
free-busyn'est pas prise en charge.
caldav-ctag-02 : balise d'entité de collection d'agenda (CTag) dans CalDAV
- L'agenda
ctagest 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 : fonctionnalité de proxy utilisateur Agenda dans CalDAV
- Pour améliorer les performances de la synchronisation de l'agenda, les requêtes qui incluent les propriétés
calendar-proxy-read-foroucalendar-proxy-write-foréchoueront avec un UserAgent iOS, car les appareils iOS ne sont pas compatibles avec la délégation.
- Pour améliorer les performances de la synchronisation de l'agenda, les requêtes qui incluent les propriétés
Bien que notre implémentation CalDAV ne couvre pas toutes les spécifications, elle fonctionne correctement pour de nombreux clients, y compris le calendrier Apple.
Créer votre ID client
Pour utiliser l'API CalDAV, vous devez disposer d'un compte Google.
Avant de pouvoir envoyer des requêtes à l'API CalDAV, vous devez enregistrer votre client auprès de la console Google Cloud 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.
Vous devez ensuite 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 d'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 effectuer des requêtes CalDAV API, vous avez besoin d'un ID client et d'un code secret client.
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.
Se connecter 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 refuse 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 d'utilisation de l'authentification de base génère un code d'état HTTP 401 Unauthorized.
Si le programme client (comme 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/CALENDAR_ID/user
Remplacez CALENDAR_ID par l'ID du calendrier auquel accéder.
Pour trouver l'ID de l'agenda dans l'interface Web, sélectionnez **Paramètres de l'agenda** dans le menu déroulant à côté du nom de l'agenda. L'ID de l'agenda est indiqué 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 Thunderbird) nécessite une collection d'agendas comme point de départ, utilisez l'URI suivant :
https://apidata.googleusercontent.com/caldav/v2/CALENDAR_ID/events