扩展 CalDAV 中的重复事件
Expanding recurring events in CalDAV
假设一个 CalDAV 客户端真的很笨(深度嵌入)并且无法自行计算重复发生的事件。但是,它能够发出 CalDAV 请求。假设 CalDAV 日历存储了生日。其中一个生日是 2000 年 12 月 31 日。现在客户想要接收 2005-05-05 和 2008-05-05 之间的所有生日。
我能让 Radicale 响应此类请求的唯一方法是给出一个条目作为答案,DTSTART = 2000-12-31 和 RRULE 属性 集。
但是,我希望收到三个日期分别为 2005-12-31、2006-12-31 和 2007-12-31 的实例。我尝试使用 "limit-recurrence-set" 和 "expand",但都没有按照我描述的进行操作。 CalDAV 中有没有办法实现我解释的内容?
这可能是 Radicale 的限制,CalDAV 本身确实支持循环扩展:RFC 4791 Section 7.8.3。 RFC 中显示的示例:
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:calendar-query xmlns:D="DAV:"
xmlns:C="urn:ietf:params:xml:ns:caldav">
<D:prop>
<C:calendar-data>
<C:expand start="20060103T000000Z"
end="20060105T000000Z"/>
</C:calendar-data>
</D:prop>
<C:filter>
<C:comp-filter name="VCALENDAR">
<C:comp-filter name="VEVENT">
<C:time-range start="20060103T000000Z"
end="20060105T000000Z"/>
</C:comp-filter>
</C:comp-filter>
</C:filter>
</C:calendar-query>
假设一个 CalDAV 客户端真的很笨(深度嵌入)并且无法自行计算重复发生的事件。但是,它能够发出 CalDAV 请求。假设 CalDAV 日历存储了生日。其中一个生日是 2000 年 12 月 31 日。现在客户想要接收 2005-05-05 和 2008-05-05 之间的所有生日。
我能让 Radicale 响应此类请求的唯一方法是给出一个条目作为答案,DTSTART = 2000-12-31 和 RRULE 属性 集。
但是,我希望收到三个日期分别为 2005-12-31、2006-12-31 和 2007-12-31 的实例。我尝试使用 "limit-recurrence-set" 和 "expand",但都没有按照我描述的进行操作。 CalDAV 中有没有办法实现我解释的内容?
这可能是 Radicale 的限制,CalDAV 本身确实支持循环扩展:RFC 4791 Section 7.8.3。 RFC 中显示的示例:
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:calendar-query xmlns:D="DAV:"
xmlns:C="urn:ietf:params:xml:ns:caldav">
<D:prop>
<C:calendar-data>
<C:expand start="20060103T000000Z"
end="20060105T000000Z"/>
</C:calendar-data>
</D:prop>
<C:filter>
<C:comp-filter name="VCALENDAR">
<C:comp-filter name="VEVENT">
<C:time-range start="20060103T000000Z"
end="20060105T000000Z"/>
</C:comp-filter>
</C:comp-filter>
</C:filter>
</C:calendar-query>