Skip to main content

Authentication

Calendar feeds are private by default.

Private Token Feeds

A private calendar must define token or token_file.

config.yaml
calendars:
- name: private
token: "changeme"
feed_url: "https://example.com/private.ics"

Private feeds require the token query parameter:

/calendars/private/feed?token=changeme
note

Blank tokens are not allowed for private calendars.

Public Feeds

Set public: true to allow access without a token:

config.yaml
calendars:
- name: public
public: true
feed_url: "https://example.com/public.ics"
warning

Public calendars must not define token or token_file. This is rejected at startup to avoid ambiguous auth behavior.

Secret-Backed Tokens

Use token_file when the token should be read from a mounted file:

config.yaml
calendars:
- name: private
token_file: "/run/secrets/calendar-token"
feed_url: "https://example.com/private.ics"

For file-backed tokens and feed URLs, see Secret Files.