CalDAV服务器究竟如何宣传Tasks支持?

时间:2016-08-03 03:17:17

标签: caldav lightning

连接到CalDAV服务器后,您可以查询它是否支持哪些服务。例如,在Lightning连接到CalDAV服务器之后,如果该服务器通告任务支持,它将只允许您创建Task对象。

不幸的是,一些服务器(例如AppSuite,Yahoo)确实支持任务,但显然没有正确宣传这一事实,因此严格的PIM客户端(例如Lightning)不会与它们通话。

CalDAV应该如何(确切地)这样做?

我已阅读https://wiki.wocommunity.org/display/~probert/CalDAV+and+CardDAV+handshake解释了CalDAV握手和连接,并确定了连接后OPTIONS调用返回的DAV功能列表。我们的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 个答案:

答案 0 :(得分:2)

功能保存在任何给定日历的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>

在supported-calendar-component-set部分中,查找VEVENT(支持日历事件),VTASK(支持任务),VJOURNAL等。因此,在上面的示例中,支持Calendar事件,但不支持Tasks。 / p>