Escape and fold the iCal export, serve it as text/calendar, add subscription links #20

Open
Paddy wants to merge 1 commits from feature/calendar-ical-escaping-subscriptions into master
pull from: feature/calendar-ical-escaping-subscriptions
Owner
  • iCal export: RFC 5545 text escaping for SUMMARY, DESCRIPTION and LOCATION,
    line folding at 75 octets (UTF-8 aware), CRLF line endings, and
    Content-Type text/calendar instead of the inferred text/html. A line break
    in a description used to end the property early; the new calendar
    frontend has a multi-line description field.
  • formatDate no longer shifts the event's end date in place.
  • GET /calendar/events/subscriptions: the iCal URL of every calendar, with
    its shared password where needed, for the calendar app's "Abonnieren"
    dialog. Editors only (requireAppAccess('calendar')), the shared password
    is not accepted there, never cached; calendars without a configured
    credential are left out.
  • Tests for both; documented in docs/calendar-ical.md.

Backwards compatible with the current Angular calendar app.

Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com

- iCal export: RFC 5545 text escaping for SUMMARY, DESCRIPTION and LOCATION, line folding at 75 octets (UTF-8 aware), CRLF line endings, and Content-Type text/calendar instead of the inferred text/html. A line break in a description used to end the property early; the new calendar frontend has a multi-line description field. - formatDate no longer shifts the event's end date in place. - GET /calendar/events/subscriptions: the iCal URL of every calendar, with its shared password where needed, for the calendar app's "Abonnieren" dialog. Editors only (requireAppAccess('calendar')), the shared password is not accepted there, never cached; calendars without a configured credential are left out. - Tests for both; documented in docs/calendar-ical.md. Backwards compatible with the current Angular calendar app. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Paddy added 1 commit 2026-09-28 20:17:05 +00:00
- iCal export: RFC 5545 text escaping for SUMMARY, DESCRIPTION and LOCATION,
  line folding at 75 octets (UTF-8 aware), CRLF line endings, and
  Content-Type text/calendar instead of the inferred text/html. A line break
  in a description used to end the property early; the new calendar
  frontend has a multi-line description field.
- formatDate no longer shifts the event's end date in place.
- GET /calendar/events/subscriptions: the iCal URL of every calendar, with
  its shared password where needed, for the calendar app's "Abonnieren"
  dialog. Editors only (requireAppAccess('calendar')), the shared password
  is not accepted there, never cached; calendars without a configured
  credential are left out.
- Tests for both; documented in docs/calendar-ical.md.

Backwards compatible with the current Angular calendar app.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
You are not authorized to merge this pull request.
This pull request can be merged automatically.
This branch is out-of-date with the base branch
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feature/calendar-ical-escaping-subscriptions:feature/calendar-ical-escaping-subscriptions
git checkout feature/calendar-ical-escaping-subscriptions
Sign in to join this conversation.