Skip to main content
iCal Filter Proxy logo

Clean up noisy calendar feeds

Publish filtered iCalendar feeds from upstream calendars using config-driven match and transform rules.

Proxy upstream calendars

Publish stable feed URLs backed by upstream iCalendar sources, with per-calendar auth and output naming.

config.yaml
calendars:
- name: work
publish_name: "Work Calendar"
token: "changeme"
feed_url: "https://example.com/calendar.ics"
user_agent: "ical-filter-proxy"
config.yaml
calendars:
- name: work
public: true
feed_url: "https://example.com/calendar.ics"
filters:
- description: "Remove cancelled events"
remove: true
match:
summary:
prefix: "Canceled: "
- description: "Clean summary text"
transform:
summary:
trim_prefix: "Roster - "
replace_text:
old: "Primary On Call"
new: "On-Call"
all: true

Filter and transform events

Define ordered rules that match event fields, remove unwanted events, and rewrite noisy summaries before publishing the feed.

Deploy and operate

Run with first-class Docker and Helm support, including secret-file config for tokens and upstream URLs, management endpoints, metrics, and structured logs.

values.yaml
metrics:
enabled: true
serviceMonitor:
enabled: true
labels:
release: prometheus
interval: 30s