Terms
Behavior
The frontend currently shows a calendar action for individual events in two places:
- The event About page.
- The event card tooltip/menu.
Both actions currently call an empty downloadCalendarEntry function, so selecting them has no effect.
The existing accessible label, “Download the calendar entry for this event”, indicates that these actions are intended to download the individual event rather than create a persistent calendar subscription.
The backend already exposes a public endpoint for exporting one event:
GET /v1/events/event_calendar?event_id=<UUID>
The endpoint returns an iCalendar file and provides a suggested filename through the Content-Disposition response header.
Selecting either action should request this endpoint using the selected event ID and download the returned .ics file. The filename should come from Content-Disposition when available, with a safe .ics fallback otherwise.
Both entry points should use a shared frontend implementation and follow the project’s existing public API proxy, error-handling, accessibility and localization patterns. Any temporary browser resources created for the download should also be cleaned up.
Since this is a static export for one event, “Add to calendar” may be more accurate than “Subscribe to event”. The final wording should be confirmed by the maintainers.
Scope
This issue only covers the two existing calendar actions for individual events.
Organization and group calendar actions should remain unchanged. Their export and subscription behavior was discussed separately in #1448 and PR #1483.
No backend changes are expected.
Acceptance criteria
Related work
Contribution
I would be happy to implement this after confirmation from the maintainers.
Terms
Behavior
The frontend currently shows a calendar action for individual events in two places:
Both actions currently call an empty
downloadCalendarEntryfunction, so selecting them has no effect.The existing accessible label, “Download the calendar entry for this event”, indicates that these actions are intended to download the individual event rather than create a persistent calendar subscription.
The backend already exposes a public endpoint for exporting one event:
The endpoint returns an iCalendar file and provides a suggested filename through the
Content-Dispositionresponse header.Selecting either action should request this endpoint using the selected event ID and download the returned
.icsfile. The filename should come fromContent-Dispositionwhen available, with a safe.icsfallback otherwise.Both entry points should use a shared frontend implementation and follow the project’s existing public API proxy, error-handling, accessibility and localization patterns. Any temporary browser resources created for the download should also be cleaned up.
Since this is a static export for one event, “Add to calendar” may be more accurate than “Subscribe to event”. The final wording should be confirmed by the maintainers.
Scope
This issue only covers the two existing calendar actions for individual events.
Organization and group calendar actions should remain unchanged. Their export and subscription behavior was discussed separately in #1448 and PR #1483.
No backend changes are expected.
Acceptance criteria
.icsfile for the correct event.Content-Dispositionwhen available, with a safe fallback otherwise.Related work
.icsexport workContribution
I would be happy to implement this after confirmation from the maintainers.