tchapi / tchapi/davis

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

Open
#260 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature request
Dominant language
PHP
Stars
751
Forks
44
Avg merge
15h 14m
Merged PRs (30d)
8

Description

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!

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are identified in the issue. Start by locating the CalDAV calendar URL handling and the code that provides calendar metadata, then determine how a single recurring event can be exposed as a live subscription. Done means the scoped URL syncs only that event while supplying the calendar name and colour.

Written by the indexing model from the issue text.

Assessment

Tech stack
php, symfony
Domain
api, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.