Load the bundled German school-holiday interval table.
Reads datasets/csv/school_holidays_de.csv (ODbL-1.0) from the package data directory and the companion validity-range metadata from school_holidays_de_meta.csv. No download is needed; both files ship with the package.
The CSV has four columns: state (ISO 3166-2 subdivision short code, e.g. "NW"), name (German name of the holiday period), start_date and end_date (both inclusive, parsed as datetime64 (resolution depends on the pandas version)). Coverage is 2022-01-01 to 2027-12-31 (all 16 German Bundesländer).
Data provenance: OpenHolidays API (https://openholidaysapi.org), database https://github.com/openpotato/openholidaysapi.data, ODC Open Database License (ODbL-1.0).
Regeneration command (requires network access):
for code in BW BY BE BB HB HH HE MV NI NW RP SL SN ST SH TH:
GET https://openholidaysapi.org/SchoolHolidays?countryIsoCode=DE
&subdivisionCode=DE-<code>&validFrom=2022-01-01&validTo=2024-12-31
&languageIsoCode=DE (split into two 3-year windows to respect the
1095-day API limit; second window: validFrom=2025-01-01,
validTo=2027-12-31). Keep every record whose startDate falls within
[valid_from, valid_to]; endDate may extend beyond valid_to and is
kept verbatim (queries past valid_to raise).
- df — DataFrame with columns state, name, start_date (datetime64, resolution depends on the pandas version), end_date (datetime64, resolution depends on the pandas version), sorted by (state, start_date).