Calendar: subscribe to a calendar address, read-only, refreshed by the scheduler #1098

Closed
opened 2026-10-30 21:25:16 +00:00 by tiagoagueda · 0 comments
Owner

Postulo publishes calendar feeds and imports an .ics file once. It cannot follow a calendar that keeps changing: an employment office's appointments, a training provider's sessions, a calendar a career coach shares. This asks for read-only subscriptions.

What exists today

  • applications/ical_import.py imports an .ics file once, with a report, as interviews, appointments and reminders.
  • The reminder and interview feeds are published for other calendars to subscribe to.
  • The scheduler runs periodic work, and outbound requests go through the guarded client, with the private-address rules and limits every fetch obeys.

What would change

  • Calendar → Subscriptions: an address, a name, a colour and a refresh interval. Its events are drawn on the calendar as read-only entries.
  • An entry can be turned into an appointment or an interview by hand, which then belongs to the person.

Decisions

  • Store or show. Recommended: keep the parsed events in a table of their own, replaced on each refresh.
  • Private addresses. Recommended: refused unless POSTULO_CONNECTIONS_ALLOW_PRIVATE allows them, as for every outbound request.
  • Core or plugin. Recommended: core, beside the importer it reuses; sync plugins are for two-way calendars.

Checked against main at daee30b15 (2026-10-30). From the status review and feature suggestions of 2026-10-30.

Postulo publishes calendar feeds and imports an `.ics` file once. It cannot follow a calendar that keeps changing: an employment office's appointments, a training provider's sessions, a calendar a career coach shares. This asks for read-only subscriptions. ## What exists today - `applications/ical_import.py` imports an `.ics` file once, with a report, as interviews, appointments and reminders. - The reminder and interview feeds are published for other calendars to subscribe to. - The scheduler runs periodic work, and outbound requests go through the guarded client, with the private-address rules and limits every fetch obeys. ## What would change - *Calendar → Subscriptions*: an address, a name, a colour and a refresh interval. Its events are drawn on the calendar as read-only entries. - An entry can be turned into an appointment or an interview by hand, which then belongs to the person. ## Decisions - **Store or show.** Recommended: keep the parsed events in a table of their own, replaced on each refresh. - **Private addresses.** Recommended: refused unless `POSTULO_CONNECTIONS_ALLOW_PRIVATE` allows them, as for every outbound request. - **Core or plugin.** Recommended: core, beside the importer it reuses; sync plugins are for two-way calendars. Checked against `main` at `daee30b15` (2026-10-30). From the status review and feature suggestions of 2026-10-30.
tiagoagueda added this to the 0.6.0 milestone 2026-10-30 21:25:16 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Postulo/postulo#1098
No description provided.