1
0
Fork 0
mirror of https://github.com/nbtca/calendar.git synced 2026-09-19 22:55:51 +08:00
Source data, generators, and Cloudflare Worker for NBTCA calendar feeds. https://ical.nbtca.space
  • JavaScript 100%
Find a file
2026-09-05 16:11:04 +08:00
.github/workflows Add generated school calendar feed 2026-09-05 15:47:15 +08:00
assets Generate calendar assets during builds 2026-09-05 15:54:11 +08:00
data/school Generate calendar assets during builds 2026-09-05 15:54:11 +08:00
scripts Update school calendar name 2026-09-05 16:01:09 +08:00
src Preserve school feed conditional responses 2026-09-05 15:49:57 +08:00
test Generate calendar assets during builds 2026-09-05 15:54:11 +08:00
.gitignore Add generated school calendar feed 2026-09-05 15:47:15 +08:00
LICENSE Initial commit 2025-04-12 15:37:29 +08:00
package.json Build generated assets from Wrangler 2026-09-05 15:54:48 +08:00
pnpm-lock.yaml Add generated school calendar feed 2026-09-05 15:47:15 +08:00
README.md Build generated assets from Wrangler 2026-09-05 15:54:48 +08:00
wrangler.jsonc Build generated assets from Wrangler 2026-09-05 15:54:48 +08:00

NBTCA Calendar

Calendar feeds for NBTCA, served from one Cloudflare Worker at ical.nbtca.space.

Routes

  • / preserves the existing combined Google Calendar feed during migration.
  • /events.ics proxies the configured Google Calendar. Until the source calendar is separated, this contains the same combined data as /.
  • /school.ics is generated from the reviewed files in data/school/.

Birthday publication and access control are intentionally out of scope until a privacy policy is agreed.

Development

pnpm install
pnpm import:school
pnpm build
pnpm check
pnpm dev

The DTEND value in generated ICS is exclusive. Source data therefore uses the explicit field name endDateExclusive to avoid accidental off-by-one errors. The generated dist/school.ics is ignored by Git and is rebuilt from YAML for every check and every direct Wrangler operation through its configured build hook.

Deployment

The project manages the existing Cloudflare Worker named ical. Always deploy a preview and verify all routes before replacing the production deployment.

The production rollback baseline recorded before this migration is Worker version 1487e0c0-a969-454f-8bcb-55f7f01876fb.