Skip to content

Latest commit

ย 

History

41 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

unical

Top language Repository size Commit activity per year License: MIT License Bitcoin BTC

A Cloudflare Worker that combines public ICS calendar URL into one calendar. Calendar services sometimes limit the number of external calendars that an account can import or subscribe to... so this gives those services one subscription URL while the Worker fetches and combines calendars behind it.

For example; your team is split across Madrid and Berlin. You want both public-holiday calendars on the same grid, but the calendar saas only allows one external subscribe URL. The first ICS feed connects. The second is cut off as a paid slot. Point the app at unical instead: one URL, both countries.

Features

  • Combines ICS feeds into one text/calendar response.
  • Fetches source calendars concurrently and caches.
  • Preserves calendar components and uses UIDs to prevent collisions between feeds.
  • Labels events with the merged calendar name and source calendar name.

Quick Start & Information

Cloudflare

Connect the GitHub repository to Cloudflare Workers and use code directory that contains wrangler.toml

Local

cd code
pnpm install
pnpm dev

Run the test and verify the Wrangler bundle without deploying:

pnpm check

Deploy manually with Wrangler:

pnpm run deploy

Available Parameters

Parameter Required Default Description
u Yes Public ICS URL. Repeat it once for each source. Maximum: 4.
name No unical Name of the merged calendar and title prefix.
description No Calendar description (X-WR-CALDESC). Omitted when missing.
show_name No true Prefix event titles with name. true or false.
show_calendar No true Prefix event titles with the source calendar name. true or false.

Example:

curl "https://unical.<subdomain>.workers.dev/merge?u=https://www.officeholidays.com/ics/spain/madrid&u=https://www.officeholidays.com/ics/germany/berlin&name=Holidays"

About

๐Ÿ“… A Worker that merges multiple iCal subscription URLs into a single calendar

Topics

Resources

Code of conduct

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages

Generated from SegoCode/template