CalDAV – это расширение WebDAV, предоставляющее стандарт для доступа клиентов к информации в календарях на удаленном сервере.
Google предоставляет интерфейс CalDAV, который можно использовать для просмотра календарей и управления ими с помощью протокола CalDAV.
Для CalDAV API действуют те же лимиты на квоты, что и для Calendar API. Подробнее об ограничениях на использование…
Характеристики
Поддержка спецификаций CalDAV в Google реализована следующим образом:
rfc4918: расширения HTTP для распределенной разработки и управления версиями в интернете (WebDAV)
- Поддерживает методы HTTP
GET,PUT,HEAD,DELETE,POST,OPTIONS,PROPFINDиPROPPATCH. - Не поддерживает HTTP-методы
LOCK,UNLOCK,COPY,MOVE,MKCOLи заголовокIf*(кромеIf-Match). - Не поддерживает произвольные (заданные пользователем) свойства WebDAV.
- Не поддерживает управление доступом WebDAV (rfc3744).
- Поддерживает методы HTTP
rfc4791: расширения календаря для WebDAV (CalDAV)
- Поддерживает метод HTTP
REPORT. Все отчеты, кромеfree-busy-query, реализованы. - Не поддерживает метод HTTP
MKCALENDAR. - Не поддерживает действие
AUDIO.
- Поддерживает метод HTTP
-
- Данные, доступные через интерфейс CalDAV, отформатированы в соответствии со спецификацией iCalendar.
- Не поддерживает данные
VTODOиVJOURNAL. - Не поддерживает расширение Apple iCal, позволяющее пользователям задавать свойства URL.
rfc6578: синхронизация коллекций для WebDAV
- Клиентские приложения должны перейти в этот режим работы после первоначальной синхронизации.
rfc6638: расширения для планирования в CalDAV
- Поддерживает тривиальный "входящий ящик", который всегда пуст.
- Приглашения, которые вы получаете, автоматически попадают в коллекцию "Мероприятия", а не в папку "Входящие".
- Не поддерживает поиск
free-busy.
caldav-ctag-02: тег объекта коллекции календаря (CTag) в CalDAV
- Календарь
ctagпохож на ресурсetag. Он меняется, когда в нем что-то меняется. Это позволяет клиентскому приложению быстро определить, что синхронизировать измененные события не нужно.
- Календарь
calendar-proxy: функция прокси-сервера пользователя Календаря в CalDAV
- Чтобы повысить эффективность синхронизации календаря, запросы, включающие свойства
calendar-proxy-read-forилиcalendar-proxy-write-for, будут завершаться с ошибкой UserAgent iOS, поскольку iOS-устройства не поддерживают делегирование.
- Чтобы повысить эффективность синхронизации календаря, запросы, включающие свойства
Хотя наша реализация CalDAV не охватывает все спецификации, она корректно работает со многими клиентами, включая Календарь Apple.
Как создать идентификатор клиента
Чтобы использовать CalDAV API, вам понадобится аккаунт Google.
Прежде чем отправлять запросы к CalDAV API, зарегистрируйте клиент в консоли Google Cloud, создав проект.
Войдите в Google API Console. Нажмите Создать проект, укажите название и нажмите Создать.
Затем вам нужно активировать CalDAV API.
Чтобы включить API для своего проекта, выполните следующие действия:
- Откройте библиотеку API в Google API Console. Если появится запрос, выберите проект или создайте новый. В библиотеке API перечислены все доступные API, сгруппированные по семействам продуктов и популярности.
- Если нужного API нет в списке, найдите его с помощью поиска.
- Выберите API, который хотите включить, и нажмите кнопку Включить.
- Если появится запрос, включите оплату.
- Если появятся условия использования API, примите их.
Чтобы выполнять запросы к CalDAV API, вам понадобятся идентификатор клиента и секретный код клиента.
Чтобы найти идентификатор клиента и секретный код клиента для своего проекта, выполните следующие действия:
- Выберите существующие учетные данные OAuth 2.0 или откройте страницу учетных данных.
- Если вы ещё не создали учетные данные OAuth 2.0 для своего проекта, нажмите Создать учетные данные > Идентификатор клиента OAuth и укажите необходимую информацию.
- Найдите идентификатор клиента в разделе Идентификаторы клиентов OAuth 2.0. Чтобы узнать больше, нажмите на идентификатор клиента.
Как подключиться к серверу CalDAV от Google
Чтобы использовать интерфейс CalDAV, клиентская программа сначала подключается к серверу календаря в одной из двух начальных точек. В любом случае подключение должно быть установлено по протоколу HTTPS и использовать схему аутентификации OAuth 2.0. Сервер CalDAV отказывается выполнять аутентификацию запроса, если он не был отправлен по протоколу HTTPS с аутентификацией аккаунта Google по протоколу OAuth 2.0. При попытке подключения по протоколу HTTP или с использованием базовой аутентификации возвращается код статуса HTTP 401 Unauthorized.
Если клиентская программа (например, приложение "Календарь" от Apple) требует в качестве отправной точки коллекцию субъектов, то URI для подключения будет следующим:
https://apidata.googleusercontent.com/caldav/v2/CALENDAR_ID/user
Замените CALENDAR_ID идентификатором календаря, к которому нужно получить доступ.
Чтобы найти идентификатор календаря через веб-интерфейс, выберите **Настройки календаря** в раскрывающемся меню рядом с названием календаря. Идентификатор календаря указан в разделе Адрес календаря. Идентификатор основного календаря пользователя совпадает с его адресом электронной почты.
Если клиентской программе (например, Mozilla Thunderbird) требуется коллекция календарей в качестве отправной точки, используйте следующий URI:
https://apidata.googleusercontent.com/caldav/v2/CALENDAR_ID/events