Childcare and after-school
Staff and capacity planning around the days families are home.
Finnish school-year calendars, basic-education pupil counts, and school-age population by age band — one consistent dataset, per municipality. The same data this site uses for parent queries.
If your business cares when families are home or away, this dataset is for you.
Staff and capacity planning around the days families are home.
Drop school breaks alongside personal events without scraping 308 municipal sites.
Rooms, activities, retail — price for when families are local versus traveling.
A normalized multi-file export. Calendars, typed events, municipal sources, and Statistics Finland area profiles, cross-referenced by ID with ISO dates throughout. Every file ships with a SHA-256 checksum.
| File | Format | Contents |
|---|---|---|
calendars.json | json | One record per municipality × school year: term bounds, provider, coverage, status, and references into events and sources. |
events.json | json | Typed term and break events with localized names and ISO dates. |
sources.json | json | Municipal source URLs, publishers, and retrieval dates behind every calendar. |
area-profiles.json | json | Statistics Finland pupil counts and school-age population by age band. |
municipalities.json | json | All 308 municipalities with localized names, slugs, and coordinates. |
coverage-report.json | json | Per-municipality coverage extent and verification warnings. |
manifest.json | json | Package id, schema version, record counts, and per-file SHA-256. |
SHA256SUMS.txt | txt | Checksums for integrity verification, alongside README and LICENSE. |
{
"id": "cal_005_2025_2026_basic_all",
"municipalityCode": "005",
"schoolYear": "2025-2026",
"startDate": "2025-08-01",
"endDate": "2026-07-31",
"provider": { "name": "City of Alajärvi", "type": "municipality", "homepageUrl": "https://alajarvi.fi/" },
"educationLevel": "basic_education",
"languageTrack": "all",
"scope": "municipality_wide",
"coverage": { "extent": "full_municipality" },
"status": "published",
"confidence": 0.98,
"version": "fi-school-calendar-005-2025-2026.1",
"lastVerifiedAt": "2026-05-16T00:00:00Z",
"eventIds": [
"cal_005_2025_2026_basic_all:evt_005_2025_2026_autumn_break",
"…"
],
"sourceIds": [
"cal_005_2025_2026_basic_all:src_005_2025_2026_alajarvi_school_term_dates_2025_2026"
]
} {
"id": "cal_005_2025_2026_basic_all:evt_005_2025_2026_autumn_break",
"calendarId": "cal_005_2025_2026_basic_all",
"type": "autumn_break",
"name": { "fi": "Syysloma", "sv": "Höstlov", "en": "Autumn holiday" },
"startDate": "2025-10-13",
"endDate": "2025-10-17",
"isDerived": false,
"certainty": "exact",
"datePrecision": "exact_date",
"sourceIds": [
"cal_005_2025_2026_basic_all:src_005_2025_2026_alajarvi_school_term_dates_2025_2026"
]
} | Calendar field | Type | Description |
|---|---|---|
id | string | Stable calendar id: municipality × school year × track. |
municipalityCode | string | Official Finnish municipality code (Tilastokeskus). |
schoolYear | string | Academic year, e.g. 2025-2026. |
startDate / endDate | string | ISO bounds of the school year. |
provider | object | Education provider name, type, and homepage. |
educationLevel | enum | basic_education, general_upper_secondary_education, and others. |
languageTrack | enum | all, fi, sv, se, smn, sms. |
scope | enum | municipality_wide, school_specific, provider_specific. |
coverage | object | Full vs partial municipality, with stage and track scoping. |
status | enum | published, verified, proposed, and others. |
confidence | number | 0–1 confidence in the compiled dates. |
lastVerifiedAt | string | ISO timestamp of the most recent source check. |
appliesTo | object | Localized label and caveat for who the dates cover. |
eventIds | array | References into events.json. |
sourceIds | array | References into sources.json. |
Every municipality also carries basic-education pupil counts and school-age population by age band (6, 7–12, 13–15, 16–18), sourced from Statistics Finland. Joined with the calendar data, that's how many pupils are out on any given day in any given region — by age.
{
"municipalityCode": "005",
"municipalityName": "Alajärvi",
"region": { "code": "14", "name": "South Ostrobothnia" },
"metrics": {
"basicEducationPupilCount": { "value": 973, "year": 2025, "unit": "pupils" },
"schoolAgePopulation": {
"value": 1471,
"year": 2025,
"buckets": { "age6": 89, "age7To12": 623, "age13To15": 384, "age16To18": 375 }
},
"population": { "value": 8982, "year": 2025, "unit": "persons" }
}
} Available for commercial licensing. Tell us what you're building and we'll work out the terms.
Looking for the free public-holiday JSON API instead? See the API docs. Finnish public holidays are CC-BY-4.0 and a separate product from this commercial school-holiday dataset.