No account needed. See your calendar first.

Stop emailing schedule updates.

Paste a spreadsheet link, get a calendar feed. Edit the sheet, everyone’s calendar updates on its own. No more emailing “final_v3” attachments.

Free plan, no credit card. Subscribers never need an account either.

Works withGoogle Sheetsany CSV URLpasted tables

Made for league coordinators, run club captains, and anyone else whose schedule already lives in a spreadsheet.

Three minutes to a live calendar

You don’t connect any accounts. Your subscribers don’t sign up for anything.

1

Paste a link to your schedule

Share your Google Sheet (“anyone with the link can view”) and paste the link. A CSV URL or pasted table works too.

2

Map columns and preview

Pick which columns are the title, date, and location. We suggest a mapping from your headers. Preview every event before you share.

3

Send one link to your roster

Your feed gets a subscribe page with buttons for Apple, Google, and Outlook. One tap, and their calendar stays in sync from then on.

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 and regenerate the feed. Change a row, calendars update.

📲

One-click subscribe page

Big buttons for Apple Calendar, Google Calendar, and Outlook. No one has to copy-paste a feed URL.

🌍

Timezones done right

Feed-level timezone, per-row overrides when you need them, and all-day events that land on the right day in every timezone.

🪪

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.

🛡️

Never serves garbage

If someone renames a column, we freeze the feed at its last good state and email you instead of blanking 200 calendars. The health panel shows which rows parsed and which didn’t, with the raw values so you can see why. Nothing gets silently guessed or silently dropped.

Simple pricing

Free to start. Pay when you need faster syncs or more feeds.

Free

$0
forever
  • 1 feed, up to 50 events
  • Syncs every 60 minutes
  • Hosted subscribe page
  • Feed health panel
Start free

Team

$29/mo
for clubs & organizations
  • Everything in Pro
  • 50 feeds, unlimited events
  • Invoice billing
  • Priority support
  • Onboarding help for your org
Talk to us

Questions

Do my subscribers need a CalRelay account?
No. Subscribers click one button on your subscribe page and never touch CalRelayagain. Their calendar app checks the feed on its own from then on.
How fast do subscribers see my changes?
CalRelay refreshes your feed within minutes of a change. Apple Calendar and Outlook subscribers typically see updates within about 15 minutes.
Google Calendar polls external feeds on its own schedule and can take up to 24 hours to show changes. That’s a Google limitation every feed provider has. We say so on your subscribe page so nobody finds out on game day.
Does my spreadsheet have to be public?
Your sheet needs link-sharing turned on (“anyone with the link can view”) so CalRelay can read it. It’s never listed anywhere, and CalRelay never gets edit access or asks for your Google login. If you ever turn sharing off, we pause the feed at its last good state and email you.
What happens if someone breaks the sheet?
CalRelay keeps serving the last valid calendar and emails you. The feed health panel shows what changed, and fixing the mapping takes one click. Your roster never sees an empty calendar.
What date formats can it read?
Real-world ones: 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.

Turn it into a calendar your whole roster can subscribe to. Takes about three minutes.

Create your free feed