Put your team schedule in Google Calendar
Your league lives in Google Calendar, and you're tired of re-sending the schedule every time a field changes. CalRelay turns the spreadsheet you already keep into a calendar feed. Everyone adds it to Google Calendar once, and after that your edits flow through without you sending anything.
One thing to know up front, because it's true of every calendar feed and not just ours: Google Calendar refetches external feeds on its own schedule, and a change can take up to 24 hours to appear for subscribers. CalRelay says so right on the subscribe page and shows you when Google actually last synced. More on that below.
Free plan, no credit card. No account needed to see your events.
Connect your schedule
Paste a Google Sheet share link, a CSV URL, or the table itself. CalRelay reads your headers, suggests the title, date, time, and location mappings, and previews every event, including any rows it couldn't parse, shown with their raw values.
Publish the feed
You get a hosted subscribe page with a one-click Google Calendar button, plus Apple and Outlook buttons for the rest of the roster. Subscribers never need a CalRelay account. Google Calendar just adds the feed under Other calendars.
Edit the sheet, not the calendar
From now on the spreadsheet is the schedule. Move a game, fix a venue, add a makeup date. CalRelay re-reads the sheet, updates the feed, and Google Calendar picks it up on its next fetch. Nothing to re-send.
The honest part: Google syncs on its own clock
Google Calendar treats subscribed feeds as low priority. It refetches them on its own schedule, sometimes within a few hours and sometimes not for up to 24. No feed provider can force a refresh, so any product claiming instant Google Calendar sync from an external feed is overselling.
CalRelay handles this in the open. The subscribe page tells Google Calendar subscribers about the delay, and your dashboard shows a "Google last synced" timestamp, meaning the last time Google actually fetched your feed. That way you can check whether Thursday's change has landed before game day. For same-day changes, a message to the group chat is still the right move, and the feed makes sure the calendars catch up and stay right.
Why a feed still beats every alternative
The alternatives all have problems that get worse over a season. Emailed .ics files go stale the moment anything changes. A Google Calendar you maintain by hand means entering every game twice, once in the sheet and once in the calendar, and the two drift apart. And telling everyone to check the sheet means most people don't.
With a feed there's one thing to maintain (the spreadsheet) and one link to share (the subscribe page). Edits update existing events in subscribers' calendars rather than duplicating them, and a rained-out game deleted from the sheet disappears from calendars too.
Mixed-household rosters are the norm
Real rosters are never all-Google. The same subscribe page serves Apple Calendar and Outlook buttons alongside the Google one, and those apps typically pick up changes within about 15 minutes of the feed updating. You share one page and every family uses the button that matches their phone.
Questions
How long until subscribers see a change in Google Calendar?
Can I make Google Calendar refresh faster?
Do subscribers need a CalRelay account?
Will editing a game create a duplicate event?
What if someone breaks the spreadsheet mid-season?
Your schedule already exists.
Turn it into a calendar your whole roster can subscribe to. Takes about three minutes.
Create your free feed