Расширение повторяющихся событий в 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 добиться того, что я объяснил?

 Marten09 июн. 2016 г., 23:16
Вполне возможно, что Radicale не поддерживает расширение экземпляра. Последняя версия, которую я проверял, не была. Вы должны спросить разработчиков об этом.
 hnh09 июн. 2016 г., 16:45
Возможно, опубликуйте захват вашего запроса, если с ним что-то не так.

Ответы на вопрос(1)

Решение Вопроса

сам CalDAV поддерживает расширение повторения:RFC 4791, раздел 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>
 itecMemory10 июн. 2016 г., 20:24
Правда. Проблема заключается в Radicale. Перешел на SabreDAV, теперь работает. Спасибо!

Ваш ответ на вопрос