mrusme / caldr

A lightweight CLI / TUI calendar that supports CalDAV
https://xn--gckvb8fzb.com
GNU General Public License v3.0
31 stars 1 forks source link

question: radicale compatibility #2

Open c-nv-s opened 1 year ago

c-nv-s commented 1 year ago

has this been tested for compatibility with https://radicale.org/v3.html ?

mrusme commented 1 year ago

Not yet, feel free to do so if you happen to run radicale.

cwarden commented 1 year ago

I'm testing it against against an old version of radicale (0.9) that I use with DAVx⁵. Finding calendars doesn't work nor does fetching events (if I explicitly set a calendar in dav.New).

I'm not very familiar with the caldav protocol, but here's what I'm seeing.

DAVx⁵ requests a list of events:

<?xml version='1.0' encoding='UTF-8' ?>
<CAL:calendar-query xmlns="DAV:" xmlns:CAL="urn:ietf:params:xml:ns:caldav">
  <prop>
    <getetag />
  </prop>
  <CAL:filter>
    <CAL:comp-filter name="VCALENDAR">
      <CAL:comp-filter name="VEVENT">
        <CAL:time-range start="20221027T125139Z" />
      </CAL:comp-filter>
    </CAL:comp-filter>
  </CAL:filter>
</CAL:calendar-query>

then uses the response.href values to fetch batches of them:

<?xml version='1.0' encoding='UTF-8' ?>
<CAL:calendar-multiget xmlns="DAV:" xmlns:CAL="urn:ietf:params:xml:ns:caldav">
  <prop>
    <getcontenttype />
    <getetag />
    <CAL:schedule-tag />
    <CAL:calendar-data />
  </prop>
  <href>/path/to/event/1</href>
  <href>/path/to/event/2</href>
...
</CAL:calendar-multiget>

caldr's REPORT request:

<?xml version="1.0" encoding="UTF-8"?>
<calendar-query xmlns="urn:ietf:params:xml:ns:caldav">
  <prop xmlns="DAV:">
    <calendar-data xmlns="urn:ietf:params:xml:ns:caldav">
      <comp xmlns="urn:ietf:params:xml:ns:caldav" name="">
        <prop xmlns="urn:ietf:params:xml:ns:caldav" name="UID"></prop>
        <allcomp></allcomp>
      </comp>
    </calendar-data>
    <getlastmodified xmlns="DAV:"></getlastmodified>
    <getetag xmlns="DAV:"></getetag>
  </prop>
  <filter xmlns="urn:ietf:params:xml:ns:caldav">
    <comp-filter xmlns="urn:ietf:params:xml:ns:caldav" name=""></comp-filter>
  </filter>
</calendar-query>

radicale returns

<?xml version="1.0"?>
<multistatus xmlns="DAV:" />
c-nv-s commented 1 year ago

can also confirm it is not working :-(