扩展 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>