Hockey Calendar Merger
Turn every team’s schedule into one Google Calendar — each event with live drive time, a “leave the house” time, and the weather. Set it up once; it keeps itself in sync.
📺 Have a wall TV or Fire TV? Show this schedule on a Kitchen display →
1 · Your info
2 · Team schedule feeds
This is where most people get stuck — so let’s make it easy. Pick your app and follow the steps.
How do I find my calendar link?
TeamSnap (do this on a computer, not the app)
- Log into TeamSnap on the web.
- Click your roster name to enter the team site.
- Open the Schedule tab → Settings → Sync Calendar / Export.
- Copy the calendar link (ends in
.ics). Paste it into a feed row above.
Tip: on multiple TeamSnap teams? There’s a combined link for all of them.
Backup: TeamSnap — Subscribe to a team schedule
GameChanger (do this in the mobile app)
- Open the GameChanger app, tap your team on the Home tab.
- Tap the gear icon (top right) → Schedule Sync → Sync Schedule to Your Calendar.
- Choose “Send Link and Instructions” to email yourself the link.
- Open the email, copy the URL, paste it into a feed row above.
Note: parent/guardian and staff accounts get games AND practices; “fan” accounts only get games.
Backup: GameChanger — Integrating your personal calendar
Spordle (needs Spordle Premium, the diamond badge on your team)
- Open the Spordle app and tap the Teams icon (jersey) at the bottom.
- Open your team’s Schedule.
- Tap the add / calendar icon in the top-right corner.
- Copy the subscription link it gives you and paste it into a feed row above.
This link updates automatically when games change, just like TeamSnap and GameChanger.
Note: to add a Spordle link to Google, use Google Calendar on the web, not the phone app.
No diamond badge? Free Spordle teams don’t offer a live calendar link, so this tool can’t keep that team updated automatically. If the same schedule is also in TeamSnap or GameChanger, use that link instead.
Backup: Spordle — FAQ
3 · Arrival buffers (minutes early)
4 · Options
Preview
🔒 Your saved setup is private to your account and only visible to you.
Your script
📅 Only upcoming events are added to your calendar. Past games and practices won’t appear.
Set it up (about 3 minutes)
- Go to script.google.com and click New project.
- Delete the sample code, then paste the script you copied.
- Click Save (the disk icon).
- In the function dropdown at the top, choose
mergeCalendars, then click Run. Google will ask you to authorize the script — approve it. (This is Google asking permission to use your calendar and maps on your account. Nothing is sent to DrillFlow.) - Once it runs without errors, choose
createSyncTriggerin the dropdown and click Run once. That makes it sync automatically every 3 hours. - Open Google Calendar — your merged events will appear on the calendar you chose, each with drive time, a “leave house” time, and weather.
- To point a wall display (Dakboard etc.) at it, just subscribe that display to the same Google Calendar.
Managing your calendar later
Adding or removing a team
Your setup isn’t saved on DrillFlow (that keeps your private calendar links off our servers). To change teams you have two options:
- Easiest for one change: open your script at script.google.com and find the
CALENDARS_TO_MERGEsection near the top. Edit the line for that team to change the link, or delete the whole line to remove a team. Then save. - Or: come back here, fill out the form again with your full set of teams, and paste the new script over the old one.
When you remove a team, its events clear themselves off your calendar automatically over the next sync or two. You don’t have to delete them by hand.
My calendar stopped updating
Calendar links from TeamSnap and GameChanger can expire, or a team admin can reset them. When that happens the script emails you a heads-up. To fix it, get a fresh link from the app (see “How do I find my calendar link?” above) and update that one line in your script, or regenerate here and repaste.
Start fresh / clean everything out
If things ever look messy, open your script, choose wipeAllSyncedEvents from the function dropdown, and Run it. That removes only the events this tool created. Your own personal calendar events are never touched. Then run mergeCalendars to rebuild. Note: it clears in batches of 50, so a large calendar may need wipeAllSyncedEvents run a couple of times.
Other tweaks
To change how early you arrive, your home address, or which events get weather: regenerate here with new settings and repaste, or edit the CONFIG values at the top of your script. To pause syncing entirely, delete the trigger in your Apps Script (Triggers, the clock icon in the left sidebar).