Skip to content

Collection type VSUBSCRIBED (Webcal)

Peter Bieringer edited this page Jun 10, 2024 · 3 revisions

VSUBSCRIBED (Webcal)

Collection type "VSUBSCRIBED" also known as "Webcal" is a special collection which has no content but only a reference to an external calendar URL.

Can be created using the built-in WebUI using type "Webcal"

Storage layout

(Example)

[d] /var
└─[d] /lib
  └─[d] /radicale
    └─[d] /collections
      └─[d] /collection-root
        └─[d] USER1
          └─[d] feiertagebayern (Collection)
            └─[f] .Radicale.props (set: VSUBSCRIBED)

Content of .Radicale.props (example)

cat ./feiertagebayern/.Radicale.props | jq
{
  "C:calendar-description": "Feiertage Bayern",
  "CS:source": "http://i.cal.to/ical/65/bayern/feiertage/499a5ad5.07785850-d8e6092a.ics",
  "D:displayname": "Feiertage Bayern",
  "ICAL:calendar-color": "#c84b7bff",
  "tag": "VSUBSCRIBED"
}

Request/Response example:

curl -s --request PROPFIND -u USER1:USERPASS1 http://localhost:5232/USER1/feiertagebayern | xmllint --format -
<?xml version="1.0" encoding="utf-8"?>
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:CS="http://calendarserver.org/ns/" xmlns:ICAL="http://apple.com/ns/ical/">
  <response>
    <href>/USER1/feiertagebayern/</href>
    <propstat>
      <prop>
        <principal-collection-set>
          <href>/radicale/</href>
        </principal-collection-set>
        <current-user-principal>
          <href>/radicale/test/</href>
        </current-user-principal>
        <current-user-privilege-set>
          <privilege>
            <read/>
          </privilege>
          <privilege>
            <all/>
          </privilege>
          <privilege>
            <write/>
          </privilege>
          <privilege>
            <write-properties/>
          </privilege>
          <privilege>
            <write-content/>
          </privilege>
        </current-user-privilege-set>
        <supported-report-set>
          <supported-report>
            <report>
              <expand-property/>
            </report>
          </supported-report>
          <supported-report>
            <report>
              <principal-search-property-set/>
            </report>
          </supported-report>
          <supported-report>
            <report>
              <principal-property-search/>
            </report>
          </supported-report>
          <supported-report>
            <report>
              <sync-collection/>
            </report>
          </supported-report>
        </supported-report-set>
        <resourcetype>
          <CS:subscribed/>
          <collection/>
        </resourcetype>
        <owner>
          <href>/USER1/</href>
        </owner>
        <getetag>"c70cfb673cd7591e247429974110d6b990d662745b49092721cddc1e1dfe7a3a"</getetag>
        <getlastmodified>Mon, 10 Jun 2024 05:06:34 GMT</getlastmodified>
        <getcontenttype>text/calendar</getcontenttype>
        <getcontentlength>0</getcontentlength>
        <displayname>Feiertage Bayern</displayname>
        <sync-token>http://radicale.org/ns/sync/e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855</sync-token>
        <C:calendar-description>Feiertage Bayern</C:calendar-description>
        <CS:source>
          <href>http://i.cal.to/ical/65/bayern/feiertage/499a5ad5.07785850-d8e6092a.ics</href>
        </CS:source>
        <ICAL:calendar-color>#c84b7bff</ICAL:calendar-color>
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
  </response>
</multistatus>

Clients supporting "Webcal"

Note: there are no local items stored, client has to honor the URL given in <CS:source><href>...</href></CS:source> and pull from there.

(at least known)

Name support since
DAVx5 ?