Как именно сервер CalDAV рекламирует поддержку задач?

После подключения к серверу CalDAV вы можете запросить, какие сервисы он поддерживает. Например, после того как Lightning подключится к серверу CalDAV, он позволит вам создавать объекты Task только в том случае, если этот сервер объявляет о поддержке Task.

К сожалению, некоторые серверы (например, AppSuite, Yahoo) поддерживают Задачи, но, по-видимому, неправильно сообщают об этом факте, и поэтому строгие клиенты PIM (например, Lightning) не будут обсуждать Задачи с ними.

Как (точно) CalDAV должен это сделать?

Я прочитал https://wiki.wocommunity.org/display/~probert/CalDAV+and+CardDAV+handshake котором объясняется рукопожатие и подключение CalDAV, а также указывается список функций DAV, возвращаемый вызовом OPTIONS после подключения. Наш сервер CalDAV возвращает следующий список: 1, 2, 3, access-control, calendar-access, addressbook, extended-mkcol, calendar-auto-schedule, calendar-schedule, calendarserver-sharing, calendarserver-principal-search, calendarserver-principal-property-search, calendarserver-private-comments, extended-mkcol, calendar-managed-attachments

Однако я нигде не могу найти исчерпывающий список стандартных имен функций, а также не могу определить, какое имя ожидается для поддержки Задач.

Может кто-нибудь пролить некоторый свет на это?

1 ответ

Возможности проводятся в supported-calendar-component-set атрибут любого данного календаря. Если этот атрибут не установлен, то предполагается, что он поддерживает все.

Чтобы получить набор компонентов, используйте это (с правильным URL календаря и аутентификацией):

PROPFIND https://myserver/caldav/url/12345 <?xml version="1.0" encoding="UTF-8"?> <A:propfind xmlns:A="DAV:"> <A:prop> <C:supported-calendar-component-set xmlns:C="urn:ietf:params:xml:ns:caldav"/> </A:prop> </A:propfind>

это возвращается

<D:multistatus> <D:response> <D:href>/caldav/3382/</D:href> <D:propstat> <D:prop> <supported-calendar-component-set> <CAL:comp name="VEVENT"/> </supported-calendar-component-set> </D:prop> <D:status>HTTP/1.1 200 OK</D:status> </D:propstat> </D:response> </D:multistatus>

В разделе поддерживаемого набора компонентов календаря найдите VEVENT (поддерживает события календаря), VTASK (поддерживает задачи), VJOURNAL и т. Д. И т. Д. Таким образом, в приведенном выше примере события календаря поддерживаются, но не задачи.

Другие вопросы по тегам