CalDAV

CalDAV (Calendaring Extensions to WebDAV) est une extension à WebDAV définie par l'Internet Engineering Task Force.

Histoire 
Décrit dans la , CalDAV définit un protocole d'édition de calendrier en ligne. Son concurrent, le protocole Web Calendar Access Protocol, définit le partage de fichiers au format iCalendar utilisant WebDAV. CalDAV contrairement à ce dernier, n'est pas un partage de fichiers calendriers, mais d'évènements. Un calendrier est, dans CalDAV, un dossier contenant des évènements, des tâches... Chaque évènement est transmis sous la forme d'un fichier VEVENT, VTASK.

Il est donc possible, contrairement à Web Calendar Access Protocol de manipuler un seul élément sans avoir à échanger l'ensemble du calendrier.

CalDAV regroupe au sein d'un même usage plusieurs extensions à WebDAV : WebDAV ACL pour les droits d'accès. On peut noter que l'élément atomique étant l'évènement, on peut définir des droits différents pour chaque évènement ;  le protocole internet Delta-v définissant un protocole de gestion de version sur WebDAV.

Un calendrier étant un dossier (une collection au sens WebDAV) ne contenant que des éléments de calendrier, CalDAV définit un verbe supplémentaire pour la création d'un calendrier : MKCALENDAR.

Exemple 

Demande HTTP:
 REPORT /bernard/work/ HTTP/1.1
 Host: cal.example.com
 Depth: 1
 Content-Type: application/xml; charset="utf-8"
 Content-Length: ....
 
 <?xml version="1.0" encoding="utf-8" ?>
 <C:free-busy-query xmlns:C="urn:ietf:params:xml:ns:caldav">
 <C:time-range start="20060104T140000Z" end="20060105T220000Z"/>
 </C:free-busy-query>

Réponse HTTP:
 HTTP/1.1 200 OK
 Date: Sat, 11 Nov 2006 09:32:12 GMT
 Content-Type: text/calendar
 Content-Length: ....
 
 BEGIN:VCALENDAR
 VERSION:2.0
 PRODID:-//Example Corp.//CalDAV Server//EN
 BEGIN:VFREEBUSY
 DTSTAMP:20050125T090000Z
 DTSTART:20060104T140000Z
 DTEND:20060105T220000Z
 FREEBUSY;FBTYPE=BUSY-TENTATIVE:20060104T150000Z/PT1H
 FREEBUSY:20060104T190000Z/PT1H
 END:VFREEBUSY
 END:VCALENDAR

Logiciel

Client 

La liste de clients CalDAV comprend :
 DAVx⁵ pour Android, permet de synchroniser les agendas entre les serveurs et les clients (Logiciel Open Source)
 Simple-Calendar pour Android, calendrier (Logiciel Open Source)
 OpenTasks pour Android, gestionnaire de tâches (Logiciel Open Source)
 CalDAV Tasksync for Android
 CalDAV-Sync for Android
 CalendarSync for Android
 AgenDAV (Client web CalDAV open source et multilangage avec une interface AJAX)
 iPhone (version 3.0 ou version 2.1 avec calendrier a distance)
 Atmail (Depuis la version 6.0) 
 CalDavZAP (Base sur HTML5 / Application JavaScript, Open source)
 EVO Collaborator for Outlook Ajouter la possibilite de synchroniser via CalDAV a Outlook 
 Evolution (Linux, Unix, Windows)
 Horde Groupware
 Korganizer (Application calendrier de KDE)
Mailfence
 Thunderbird avec le module Lightning, calendrier et gestionnaire de tâches (Licence libre, compatible GNU/Linux, Microsoft Windows, Unix, MacOS)
 eM Client (Windows)
 iCal4OL (Plus disponible pour les nouveaux clients)
 iCal (Depuis Mac OS X Leopard !V 10.5)
 iCal Import/Export CalDAV por Android
Windows 10

Serveur 
La liste de serveurs CalDAV comprend :
 Apple Darwin Calendar Server 
 Atmail (Depuis la version 6.0) 
 Bedework (ehemals UWCalendar)
 Bynari Collaboration Suite
 Chandler (PIM)|Chandler Server (Cosmo)
 CommuniGate Pro Depuis la version 5.2
 DAViCal
 DPCalendar
 DavMail
 Daylite CalDAV Server
 Dingo Calendar Server
 EGroupware Depuis la version 1.6
 EVO Mail Server
 Fabasoft Folio Cloud
 Google Calendar
Horde Groupware
 Icewarp-E-Mail-Server Depuis la version 8.x
 Kerio Connect
Mailfence
 Nextcloud (via Calendar)
 Open-Xchange
 Oracle Beehive
 Oracle Communications Calendar Server
 Radicale (CalDAV)
 SOGo
 SabreDAV
 Scalix
 Sun Java Calendar Server
 Synovel CollabSuite
 Yahoo Calender 
 Zarafa Depuis la version 6.30.0
 Zimbra Depuis la version 4.5
 mod_caldav
 ownCloud (via SabreDAV)
 sync!Egw

Notes et références

Annexes

Voir aussi 
 iCalendar
 Web Calendar Access Protocol

Lien externe 
  CalConnect.org

Protocole réseau sur la couche application
XML