School Dates API

Static, free, public JSON for Pacific Coast school dates — learning periods, school days, and holidays. Published daily from PLSIS report 2618.

Endpoints

URLReturns
/v1/calendar.jsonEverything
/v1/today.jsonIs today a school day, current LP
/v1/next-vacation.jsonNext vacation
/v1/health.jsonFreshness / last run

Use it

const r = await fetch('https://dates.warner.click/v1/today.json');
const today = await r.json();
if (today.isSchoolDay) { /* ... */ }

Spark / Robotics program dates

School-wide dates (above) are separate from Spark/Robotics program dates — session start/end, withdrawal deadlines, Learning Coach orientations, and no-class windows (including State Testing). Those live in a companion feed:

URLReturns
spark-calendar.jsonPer-year sessions, withdrawals (MW/TT), orientations, no-class windows
const r = await fetch('https://raw.githubusercontent.com/warnerwes/spark-calendar/main/v1/spark-calendar.json');
const cal = await r.json();
const y = cal.years['2026-2027'];
y.sessions;        // [{ label, begins, ends, withdrawal:[{pattern:'MW',date}, ...] }]
y.orientations;    // [{ label, date }]
y.noClassWindows;  // [{ label:'State Testing', start, end }]

Need both? School closures come from this School Dates API; program-specific dates come from the Spark feed. They are intentionally separate sources with different lifecycles. Source: github.com/warnerwes/spark-calendar

CORS-open (Access-Control-Allow-Origin: *). Source: github.com/warnerwes/school-dates