Stop emailing schedule updates.
CalRelay turns any spreadsheet into a live, subscribable calendar feed. Edit your sheet — everyone’s calendar stays in sync. No exports, no re-sends, no “final_v3” attachments.
No account needed — see your calendar first. Free plan, no credit card. Subscribers never need an account.
Built for league coordinators, team managers, ops leads, run club captains, and school volunteers — anyone whose schedule already lives in a spreadsheet.
Share link to live calendar in three minutes
No OAuth dance, no add-ons to install, nothing for your subscribers to sign up for.
Paste a link to your schedule
A Google Sheet share link (“anyone with the link can view”) is the usual path — but any public CSV URL or a pasted table works just as well.
Map columns and preview
Tell CalRelay which columns are the title, date, and location — we suggest a mapping from your headers. Preview every parsed event before anyone subscribes.
Send one link to your roster
Every feed gets a clean subscribe page with one-click buttons for Apple, Google, and Outlook. They tap once and stay in sync forever.
A live feed, not another stale file
One-shot CSV converters give you a snapshot that’s wrong by next week.CalRelay keeps polling your sheet, so calendars follow the schedule — not the other way around.
Always in sync
We poll your sheet automatically and regenerate the feed. Change a row, and subscribers’ calendars update — no re-export, no re-send.
One-click subscribe page
Big, obvious buttons for Apple Calendar, Google Calendar, and Outlook. Nobody copies and pastes a feed URL, ever.
Timezones done right
Explicit feed timezone, optional per-row overrides, and all-day events that land on the right day in every zone. The #1 source of calendar bugs, handled.
Feed health panel
See exactly which rows parsed, which didn’t, and why — with the raw cell values. Nothing is ever silently guessed or silently dropped.
Never serves garbage
Someone renamed a column? We freeze the feed at its last good state, flag it, and email you a one-click fix — instead of blanking 200 calendars.
Edits update, never duplicate
Every row gets a stable event ID, so changing a time updates the existing event in subscribers’ calendars rather than creating a copy.
Simple pricing
Free to start. Upgrade when your season depends on it.
Free
- 1 feed, up to 100 events
- Syncs every 60 minutes
- Hosted subscribe page
- Feed health panel
Pro
- 10 feeds, unlimited events
- Syncs every 15 minutes
- “Refresh now” button
- No CalRelay branding
- Email alerts when a feed needs attention
Team
- 50 feeds, unlimited events
- Priority sync
- Shared workspace
- Everything in Pro
Questions, answered honestly
Do my subscribers need a CalRelay account?
How fast do subscribers see my changes?
Does my spreadsheet have to be public?
What happens if someone breaks the sheet?
What date formats can it read?
3/4/26, Mar 4, 2026-03-04 7pm, March 4th @ 7. You pick your locale (month-first vs day-first) at setup, and anything ambiguous is shown to you with the raw value instead of being guessed.Your schedule already exists.
Make it a calendar your whole roster subscribes to — in about three minutes.
Create your feed — free