CalDAV () — сетевой протокол прикладного уровня, расширяющий возможности WebDAV и предназначенный для доступа, синхронизации и управления календарными данными. Он основан на формате iCalendar и позволяет клиентским приложениям взаимодействовать с календарными серверами по HTTP, поддерживая совместную работу, планирование встреч () и синхронизацию между устройствами. Протокол разработан как открытый стандарт и опубликован в 2007 году в виде RFC 4791 под эгидой IETF. Для расширения функций планирования используется RFC 6638, а управление доступом реализовано на основе RFC 3744.

История В 2003 году Лиза Дюссо инициировала разработку спецификации CalDAV, представив её на рассмотрение Инженерному совету Интернета.

Спецификация вызвала интерес среди разработчиков календарного программного обеспечения. В январе 2005 года были успешно протестированы два сервера и три клиента, корректно взаимодействующие между собой.

В марте 2007 года CalDAV был официально опубликован IETF в качестве стандарта под номером RFC 4791 («Calendaring Extensions to WebDAV (CalDAV)»). Авторами спецификации стали Сайрус Дабу (Apple), Бернар Дезруиссо (Oracle) и Лиза Дюссо (CommerceNet).

CalDAV был впоследствии внедрён в ряд программных продуктов, ориентированных на управление календарями и событиями.

Описание CalDAV представляет собой открытый стандарт, расширяющий протокол WebDAV и использующий формат iCalendar для обмена календарными данными между клиентскими приложениями и серверами.

Протокол предназначен для управления календарными событиями, включая встречи, расписания и другие записи, синхронизируемые между сервером и клиентом. Кроме того, CalDAV поддерживает создание так называемых «неличных» календарей, например, для помещений или групп пользователей. Для поддержки функций планирования встреч () используется расширение CalDAV, стандартизированное в RFC 6638.

Пользователь может синхронизировать свой календарь с сервером CalDAV и использовать его на нескольких устройствах. Протокол также поддерживает создание неличных календарей, таких как календари для комнат или организаций.

Данные CalDAV организуются в виде коллекций (каталогов), содержащих ресурсы: события, задачи, напоминания и свободное/занятое время. Для управления доступом используются ACL на основе WebDAV Access Control Protocol (RFC 3744), позволяющие задавать права (чтение, редактирование, удаление) для отдельных пользователей.

Сервер CalDAV должен уметь разбирать записи в формате iCalendar, поскольку это необходимо для выполнения специфических календарных операций — например, расширения повторяющихся событий или составления отчётов о занятости ().

В то же время CalDAV подвергался критике за относительную сложность реализации, что может вызывать затруднения при интеграции с некоторыми программными продуктами.

Критика

Несмотря на широкое распространение и поддержку в различных программных решениях, спецификации CalDAV и iCalendar подвергаются критике за устаревание и ограниченную применимость в корпоративной среде. В частности, исследователи из Университета Цинхуа отмечают, что текущие версии этих протоколов не учитывают ряд современных требованийMa E., Liu N., Zhang Y., Peng Y. The Design and Architecture of CalDAV-based Enterprise Calendar Service. Proceedings of the International Conference on Intelligent Control and Computer Application (ICCA 2016), Atlantis Press.:

отсутствие встроенной поддержки механизмов безопасности и аутентификации; отсутствие интерфейсов для выполнения массовых операций с событиями; недостаточная проработка сценариев, связанных с масштабированием, делегированием и ролевым управлением доступом, характерных для корпоративных информационных систем.

В связи с этим, применение CalDAV в крупных организациях требует дополнительной реализации служебной логики на уровне серверной инфраструктуры или сторонней интеграции с корпоративными системами управления доступом и данными.

Будущее

В качестве потенциальной замены формата iCalendar рассматривается jCal — структурированное представление календарных данных в формате JSON, стандартизированное в RFC 7265. jCal отличается лучшей читаемостью и удобством обработки, что делает его перспективным кандидатом для будущего развития календарных протоколов.

Пример Пример основан на RFC 4791:

Запрос:REPORT /bernard/work/ HTTP/1.1 Host: cal.example.com Depth: 1 Content-Type: application/xml; charset="utf-8" Content-Length: xxxx

<?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>

Ответ:HTTP/1.1 200 OK Date: Sat, 11 Nov 2006 09:32:12 GMT Content-Type: text/calendar Content-Length: xxxx

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

Программное обеспечение

Клиент Список CalDAV-клиентов включает:: DAVx⁵ (Android 4.4+) CalDAV-Sync for Android AgenDAV (CalDAV WebClient с открытым кодом, поддержкой различных языков, и AJAX интерфейсом) iPhone Atmail (начиная с версии 6.0) CalDavZAP (Web-based HTML5 / JavaScript приложение, открытый код) EVO Collaborator for Outlook добавить caldav совместимость синхронизации с Outlook Evolution (Linux, Unix, Windows) Horde Groupware Korganizer (приложение календаря от KDE) Sunbird или Thunderbird с Lightning плагином (Linux, Windows, Unix, Mac OS X) eM Client (Windows) iCal4OL (больше не доступен для новых пользователей) iCal (начиная с версии Mac OS X Leopard !V 10.5) iCal Import/Export CalDAV for AndroidiCal Import/Export CalDAV One Calendar (Android, Windows, другими вариантами не пользовался)

Сервер Список CalDAV-серверов включает:: Apples Darwin Calendar Server — Сервер календарей Baikal Легкий CalDAV+CardDAV сервер на PHP Bedework (ehemals UWCalendar)Bedework Bynari Collaboration Suite DPCalendar DavMaild Daylite CalDAV ServerDaylite CalDAV Server Dingo Calendar Server EGroupware — начиная с версии 1.6 EVO Mail Server Fabasoft Folio Cloud Google Calendar Horde Groupware Icewarp-E-Mail-Server — начиная с версии 8.х Kerio Connect Nextcloud SOGo SabreDAV Scalix Sun Java Calendar Server Synovel CollabSuite Yahoo Calendar Zarafa — начиная с версии 6.30.0 Zimbra — начиная с версии 4.5 mod_caldav ownCloud CommuniGate Pro

Сервис-провайдеры Yandex Mail.ru Google Yahoo!

Примечания

Ссылки WebDAV-Information Proposed calendar enhancement for WebDAv (CalDAV) Scheduling Association CalDAV-Roadmap MozillaWiki Scalable OpenGroupware.org Francis Lachapelle, Ludovic Marcotte

Связанные RFC: RFC 2518 — WebDAV RFC 2616 — HTTP RFC 3744 — WebDAV Access Control Protocol RFC 4791 — Calendaring Extensions to WebDAV (CalDAV) RFC 5545 — iCalendar RFC 6638 — Scheduling Extensions to CalDAV

Категория:Интернет-протоколы Категория:Стандарты W3C