How auto-syncing school calendars actually work

The mechanics, the verification workflow, what we deliberately leave out, and how mid-year changes go from district announcement to your phone in seconds.

Three steps, on autopilot

Subscribe in one tap

Click your district's calendar link. Your phone's calendar app handles the connection — no app to install, no account to create.

Updates push within seconds

When we publish a change, Google's sync pushes it to every device on your account in seconds — not the next time some app decides to poll.

Stays current all year

Snow days, hurricane closures, schedule shifts — when the district updates, the change reaches your phone without you doing anything.

Why manually copying calendars is broken

About three years ago, the principal at our kids' school in Northern California sent the regular Friday-evening newsletter through ProCare with a casual heads-up: enjoy the fall break next week. Two kids in different grades, both of us working full-time, and we had a single weekend to figure out childcare for five school days — because we hadn't realized fall break was even on the calendar.

The break had been there from the start of the school year. The district had added it that year, the calendar PDF on the district website showed it, the board had approved it. We'd just been operating from the version of “the school year” we'd internalized from prior years, and nothing in our system pinged us when the calendar changed year-over-year. The principal's heads-up was the first signal that broke through, and it broke through too late to plan around.

That weekend was the tipping point. The PDF wasn't enough. Every U.S. school district publishes one, and almost no parent regularly checks it. The calendar that mattered lived on the district website. The calendar most parents trusted was the one in their head from last year. The two drift apart silently, and most families only find out when something hits — a fall break that's new this year, a snow day that's been moved, a hurricane closure announced on Wednesday for Thursday.

That's when we realized this isn't a Northern California problem. Every district in the U.S. publishes their calendar as a static document parents have to remember to check, and almost every parent ends up holding a mental model that's a year stale. The fix had to surface the changes — including year-over-year ones — without anyone having to remember to look.

How the sync works

School calendar sync flowSOURCEDistrict calendarMAINTAINEDShared Google CalendarSUBSCRIBERYour deviceswe extract & verifyGoogle sync pushes in seconds
The district publishes their calendar; we extract every dated event and maintain it as a shared Google Calendar; Google’s sync pushes any changes we make to every device on your account — without you reimporting.

When you buy a district calendar, we send a Google Calendar share invite to the email address from your order. One click in Gmail and the district's calendar appears in your Google account from then on. From there it shows up wherever you actually use a calendar — the native iOS Calendar app with your Google account added, Outlook desktop, Fantastical, anything that reads Google calendars.

The reason this matters is propagation speed. When the district publishes a corrected calendar — a hurricane closure rescheduling next week's classes, a snow day announced Wednesday for Thursday — we update the source calendar and the change reaches your phone within seconds. We're not waiting for your calendar app to poll a feed every few hours. Google's sync infrastructure pushes the change to every device signed into your account; the corrected version is just there the next time you open your calendar.

We keep your share connected for the whole school year. When the district revises the calendar mid-year you don't reimport — there's nothing to reimport, because there's no copy on your device that can drift out of date. The shared calendar is the source of truth, we maintain it, and your devices reflect whatever the latest version is.

Today we only support Google accounts because Google Calendar is what most parents already use and the share mechanism gives us the cleanest live update path. Apple iCloud Calendar and Outlook native support (without routing through a Google account) is on the roadmap; we'll widen the door once we can do it without compromising the live-update guarantee.

How we verify the data

Every district calendar we publish comes directly from the district's own website — never from third-party aggregators, and never until the board has officially approved it. From there we pull the source document and parse it into a structured format our system can serve.

The data feeds two surfaces. The first is the public pages on this site — short vanity subdomains like nyc.calendars.school for the New York City DOE or miami.calendars.school for Miami-Dade — so anyone can check a date in five seconds without opening their calendar app. The second is a shared Google Calendar that paid subscribers add to their Google account; from there it shows up in whatever they already use — the native iOS Calendar, Outlook, Fantastical, anything that pulls Google calendars. Because it's a live shared calendar rather than a one-time export, the changes we publish propagate to subscribers within seconds rather than waiting for a client to poll a feed.

Verification is the work that takes the most actual time. We don't pull a calendar once a year and walk away. Our monitoring runs against three sources continuously: the district website (where the official PDF lives), the district's social media accounts (where corrections and weather-related closures usually go first), and the district's other public broadcast channels — board announcements and calendar-revision pages. When something changes anywhere, we update the source data and the change flows through to subscribers' calendars on the next sync. We also email subscribers when their district publishes a change, so they can act on it the same day instead of finding out the morning of.

In practice this means subscribers regularly hear about changes before their district's parent app even pings them. Districts typically post to social first, send the parent-app message second, and update the official PDF last — often days later. We've also seen districts where caching means some parents are looking at the new PDF and other parents are still getting the old one depending on which CDN edge their browser hit. Pulling from multiple signals means a single stale source can't put a subscriber on the wrong calendar.

When a district adds something new for the upcoming school year — a new holiday they're now observing, a new parent-teacher conference day, an extra teacher work day — we flag it as a change-from-prior-year on that district's page, so parents preparing for the new year can spot the differences before the year starts instead of in the principal's first Friday newsletter.

What we don't track (and why)

We deliberately leave a few categories of dates off our calendars even when they appear on the district's website. Religious and cultural observances are only included when they affect the school day — closures and early dismissals are on the calendar; observances where the district stays open are not. We also leave standardized testing windows off; they vary by school and grade (sometimes by classroom) and live in school-specific newsletters rather than the district master calendar. Putting them on a calendar that says “this is your district's schedule” would imply a level of accuracy we can't honestly deliver.

The largest deliberate omission is athletics and extracurricular schedules. Sports, clubs, and band practice change weekly, are owned by the athletic departments rather than the district, and have specialized apps already covering them well. We could include them — districts often publish them — but it would crowd out the schedule changes you actually need to see.

We'd rather ship a calendar with fewer events than one where the schedule deviations get lost in the noise.

What if my district changes the calendar mid-year?

Mid-year changes are handled automatically because there's nothing on your device for a change to break. When a district publishes a corrected calendar — say, a hurricane closure rescheduling next week's classes — we update the shared Google Calendar and the change appears in your phone within seconds. Google's sync pushes it to every device on your account; nothing for you to refresh, nothing for an app to poll.

For changes that could actually upend a family's week — multi-day closures, end-of-year date moves, a strike resolution that compresses the calendar — we email subscribers with the affected dates highlighted. The goal is for you to learn about the change the same day the district announces it, not the morning your kid shows up to a closed school.

If a change breaks plans you can't recover, the 30-day refund window covers the purchase regardless of why. A calendar that no longer matches reality isn't worth keeping you stuck with.

Pricing and refund policy

We charge one price per academic year, per district. That covers the full year of updates and notifications until the district publishes its next year's calendar. There's no monthly subscription, no per-event charge, and nothing renews automatically.

We back every purchase with a 30-day money-back guarantee. If the calendar doesn't work for you, contact us through the listing and we'll refund the purchase, no questions asked.

Year rollover happens around July 1st. When your district publishes the new academic year's calendar, that year becomes available as a separate purchase; your previous-year subscription stays connected to the previous year's events for archival reference.

If your district isn't on the list above, it's in the pipeline. Placing an order on the Custom School Calendar 2026-27 listing on Etsy — with your district name in the order notes — moves it to the top of the queue. Our target is to deliver custom builds within 8 hours of purchase. That's been our pace so far. A paid order is a stronger signal than a contact form, so it's the fastest way to get your district added.

Published · Last updated

By Juan V. — software engineer at Brudon Labs. Building Calendars.school in spare time after my two full-time jobs (software engineering and being a dad).

Find your district

The mechanics above are the same everywhere; the calendar is district-specific. Pick your district to see the actual dates we track for it.

Have a question we didn't cover? See our story and contact info, or jump straight to the homepage to search for your district.