Whether it's a TeamSnap team, a GameChanger schedule, or the school district's feed: subscribed calendars in Google and Apple Calendar refresh on a silent 12-to-24-hour cycle you can't speed up. That single fact explains most "my calendar is broken" moments. Here's how the cycle really works, the 30-second test for slow-versus-broken, and the fixes for each.
Understand the refresh cycle: hours, not minutes — and totally silent
When you subscribe to a calendar by URL, your calendar app doesn't watch it live. It re-downloads the feed on its own schedule: Google Calendar roughly every 12–24 hours, iPhone/Apple Calendar on a similar unpredictable cycle (a Mac lets you choose the refresh interval; iOS doesn't). Between refreshes, whatever changed upstream simply isn't on your phone yet — and when the refresh does land, nothing notifies you. The event just moves. This is the designed behavior of every subscribed calendar, on every platform.
How to tell slow from broken in 30 seconds
Open the feed URL directly in a browser (if it starts with webcal://, swap that prefix for https:// first). If a file downloads or calendar text appears, the feed is alive — your app is just between refreshes; give it a day. If you get a 404 or an error page, the feed itself is gone — usually a season rollover on the team-app side — and no amount of waiting helps: you need a fresh link from the source app.
The one blunt fix that actually forces a refresh
Remove the subscription and re-add the same link — every platform does a fresh pull the moment a calendar is added. On iPhone: Settings → Apps → Calendar → Calendar Accounts → delete the subscribed calendar, then re-add it. In Google Calendar (web): remove it from the left sidebar, then + next to "Other calendars" → From URL. You lose nothing — a subscription is a read-only view.
It's been days and the calendar is still empty
Three possibilities, in order: the season hasn't been published yet (jump your calendar forward a month or two and look); you're subscribed to last season's feed (compare your subscribed URL against a freshly-copied one from the team app); or the feed URL changed when the club regenerated its season. All three end the same way: copy the current link from the source app and re-subscribe.
On the phone, no — neither exposes a per-calendar refresh control or interval setting. On a Mac, Calendar → double-click the subscription → set Auto-refresh (down to every 5 minutes). The remove-and-re-add trick is the only universal force-refresh.
Because a subscription is a bulk re-download, not a change feed — the app replaces its copy wholesale and has no concept of "this practice moved." That gap is exactly what Schedule Caddie was built for: it diffs every refresh against the last one and emails you precisely what changed — new time, old time, which team.
Yes — anything you added "by URL" or via a webcal link behaves identically, whether it came from TeamSnap, GameChanger, Sprocket, a league site, or a school district. Same refresh cycle, same silence, same fixes.
Sometimes — the cycles aren't fixed, and a freshly-added calendar pulls immediately. But you can't rely on it, and for time-sensitive things (game moved to 5pm today) you should assume your phone's copy is stale.
Put the same links into Schedule Caddie (free): it re-checks every feed on a fixed daily schedule, merges all your kids' teams and the school calendar into one view, and emails you when anything actually changes — so the calendar on your phone becomes the backup, not the only line of defense.
Every kid, every schedule, every app — merged, color-coded, and watched for changes.
Get Started FreeWant to see it first? Explore a real family's calendar — no account needed.
Prefer an interactive walkthrough? Try the guided wizard