CalDAV — это расширение WebDAV, предоставляющее клиентам стандарт для доступа к календарной информации на удаленном сервере.
Google предоставляет интерфейс CalDAV, который позволяет просматривать и управлять календарями с использованием протокола CalDAV.
API CalDAV имеет те же ограничения по объему трафика, что и 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 Access Control (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будут завершаться с ошибкой, связанной с iOS UserAgent, поскольку устройства iOS не поддерживают делегирование.
- Для повышения производительности синхронизации календаря запросы, содержащие свойства
Хотя наша реализация CalDAV не охватывает все спецификации, она корректно работает для многих клиентов, включая Apple Calendar.
Создайте свой идентификатор клиента.
Для использования API CalDAV вам необходима учетная запись Google .
Прежде чем отправлять запросы к API CalDAV, необходимо зарегистрировать клиент в консоли Google Cloud , создав проект.
Перейдите в консоль Google API . Нажмите «Создать проект» , введите название и нажмите «Создать» .
Далее вам необходимо активировать API CalDAV .
Чтобы включить API для вашего проекта, выполните следующие действия:
- Откройте библиотеку API в консоли Google API. При появлении запроса выберите проект или создайте новый. В библиотеке API отображаются все доступные API, сгруппированные по семействам продуктов и популярности.
- Если нужный вам API отсутствует в списке, воспользуйтесь поиском, чтобы его найти.
- Выберите API, который хотите включить, затем нажмите кнопку «Включить» .
- При появлении запроса включите оплату.
- При появлении запроса примите Условия использования API.
Для выполнения запросов к API CalDAV вам необходимы идентификатор клиента (Client ID ) и секретный ключ клиента (Client Secret) .
Чтобы узнать идентификатор клиента и секретный ключ вашего проекта, выполните следующие действия:
- Выберите существующие учетные данные OAuth 2.0 или откройте страницу «Учетные данные» .
- Если вы еще этого не сделали, создайте учетные данные OAuth 2.0 для своего проекта, нажав «Создать учетные данные» > «Идентификатор клиента OAuth» и указав необходимую информацию для создания учетных данных.
- Найдите идентификатор клиента в разделе «Идентификаторы клиентов OAuth 2.0» . Для получения подробной информации щелкните по идентификатору клиента.
Подключитесь к серверу CalDAV от Google.
Для использования интерфейса CalDAV клиентская программа первоначально подключается к серверу календаря в одной из двух точек. В любом случае соединение должно осуществляться по протоколу HTTPS и использовать схему аутентификации OAuth 2.0 . Сервер CalDAV откажется аутентифицировать запрос, если он не поступает по протоколу HTTPS с аутентификацией OAuth 2.0 через учетную запись Google. Попытка подключения по протоколу 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