SCHOOLSCHEDULESDATABASE.COM · DAY-LEVEL K–12 CALENDARS · 49 STATES, DC AND 3 TERRITORIES API STATUS: OPERATIONAL

Know when every school in America is on break.

Day-level calendars for 12,023 districts: spring break, winter break, teacher in-service, first and last day. Resolved to the district, scored for confidence, and ready to drop into your demand model. No scraping, no PDF parsing, and every estimate is labeled as one.

Built for EdTech services, retail and restaurant demand, travel, staffing, energy load, and research.

Illustrative

Illustrative · 2026–27 school year

Not in session · 2026–27ILLUSTRATIVE
2026–27
Day shown
 
Illustrative
Illustrative animation of how the school year moves across the country — not a render of live district data. The real per-district calendars are in the API.
12,023
districts with a 2026-27 calendar row · 49 states, DC and 3 territories
4,815
districts with at least one day read from their own published calendar, as of 2026-07-26 (S138); every other date is labeled estimated
3
school years, 2024–25 → 2026–27
100%
of dates carry their method and confidence; nothing is presented as certain when it isn't

Coverage: 12,023 districts across 49 states, DC, Guam, Puerto Rico and the US Virgin Islands (53 jurisdictions) for 2026-27. Hawaii is not yet covered for 2026-27. A district counts when it has a 2026-27 calendar row, confirmed or estimated.

No key required

Try it in your pipeline.

The free sample is the top-100 district index (district_id, name, state, enrollment) plus one full district calendar for 2026-27, in which every day carries a source label (what the labels mean). Every other calendar needs a key. One prompt with everything your agent needs. Copy and paste.

Add the School Schedules Database to my data pipeline.

It's a day-level API of US school calendars — one row per district per day
(in session / half day / off), with the break name, a 0-1 confidence score,
and the method each date came from.

Base URL: https://api.hazeydata.ai/ssd/v1
Free sample (no key): GET /sample/districts
  -> the top 100 districts by enrollment (district_id, district_name,
     state, enrollment), plus one full district calendar for 2026-27 in
     the /days row shape; every day carries a source label
     (source_method). Every other calendar needs a key.
Everything else needs: Authorization: Bearer ssd_live_...   ($99/mo)

# Try the keyless sample now
curl -s "https://api.hazeydata.ai/ssd/v1/sample/districts"

Paid endpoints, once I have a key:
  GET /days?district_id=NE_3172840&school_year=2026-2027   <- the calendar
  GET /export?format=csv&state=FL&school_year=2026-2027

District IDs are {STATE}_{NCES_ID}. Each /days row returns:
  date · school_year · is_in_session · day_type · break_name
  confidence · source_method

IMPORTANT — confirmed vs estimated:
There is no "estimated" boolean; every day carries a source label (source_method).
Which labels are confirmed and which are estimated is defined in one table:
https://schoolschedulesdatabase.com/api/#source-method
Most 2026-2027 dates are currently estimated.

Pull the keyless sample, show me the JSON, and write a function that takes a
district_id and school year and returns a dataframe with an is_estimated
column derived from source_method using that table.

What's in the data

One schema — every district, every day.

Certainty · LTS
Endpoints we never deprecate

The calls you ship today keep working. Paid endpoints are long-term-support: no silent breaking changes.

Certainty · Price
Your price never goes up

Lock your rate at signup. New tiers never reprice existing customers. Cancel anytime, no annual lock-in.

Certainty · Data
One schema, sample to production

The keyless sample is the top-100 district index plus one full district calendar for 2026-27, in which every day carries a source label; every other calendar needs a key. Same schema from your first key to full production. Access differs by volume, freshness and support — never by quality.

Format
JSON & CSV, one schema

Bulk export or per-district. Day-level expansion — one row per district per day, flat for time-series.

Join
NCES IDs on every row

Standard identifiers. Join straight onto Census, enrollment, or your own geodata.

Score
Confidence on every date

A 0-1 score reflecting the source behind each day. To split confirmed from estimated, filter on source_method.

Pricing

Full access is one flat price.

One plan unlocks the full dataset: same schema, plus calendar days for all 12,023 districts.

Full access
$99 / mo

Every district, every day — in production.

  • All 12,023 districts for 2026-27; 3 school years
  • 50,000 API calls / month
  • JSON + CSV, bulk & per-district
  • Usage alerts at 75 / 90 / 100%
  • Price locked for life · LTS endpoints
Get your API key →
Enterprise
Custom

Volume SLAs, custom delivery, procurement.

  • Dedicated throughput & SLA
  • Warehouse / S3 delivery
  • Invoicing & DPA
  • Priority support
Contact sales