Skip to content

CalDAV subscription URLs for individual (recurring) events in a calendar #260

@keunes

Description

@keunes

Problem / motivation

We run a community calendar (using Davis) that contains various types of events — monthly community calls, bi-weekly UX meetings, and one-off gatherings. We want to give community members (with different levels of involvement) the ability to subscribe

  • only to the events relevant to them (e.g. just the monthly community call), without being bothered by our other meetings
  • to all our events

Currently this is not possible in a clean way: Davis only exposes full calendar collections via CalDAV. There is no way to share a subscription link scoped to a single event that a recipient's calendar client will treat as a proper, live-syncing calendar — with a name and colour — rather than a one-off static file import.

Proposed solution

We'd love to be able to generate a subscription URL for a single event which behaves like a regular CalDAV calendar from the client's perspective: delivering just that event's data alongside the necessary calendar metadata (name, colour), so that clients recognise it as a syncable calendar and keep it up to date automatically. For example by allowing to pass a parameter in the calendar URL like so: https://calendar.antennapod.org/dav/calendars/team/antennapod?event=0718779a-5b92-48df-87e3-801e02154c06

Alternatives considered

Provide links to the ICS files of individual (recurring) events. These can be polled/subscribed to as well, but miss the PROPFIND data like calendar name & colour.

Another option would be to create a separate one-event calendar per shareable event, but that's annoying to manage as calendar owner and it'd be cumbersome for active community members to add multiple calendars.

Area

CalDAV

Additional context

We're making this request for the AntennaPod calendar. We've relied in the past on our static site generator to create ICS files but managing calendar changes was annoying (we had to commit code to move one occurrence with half an hour). Now we've set up a calendar via Davis, which we can easily manage (see https://antennapod.org/events) - so thanks for your work on this!

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions