Free Czech public holidays, bank codes, ČNB exchange rates, name days and validators
Czech public holidays and working days 2000–2050, bank codes, daily central bank exchange rates since 1991, name days and validators (company ID, tax ID, birth number, bank account, IBAN, postcode, data box ID) in JS/TS, Python and SQL.
Free, no sign-up and no payment · data as of 9 November 2026


How much work it saves
Small code lists that otherwise get copied by hand from websites and statutes, and validators with tests: 8 in JavaScript, 13 in Python and 74 checks in SQL.
Measured on our own build
- Lines of code and tests
- 763
- Machine time per build
- 5 mins
We measured AI agent usage on 6 other datasets: the first working version of the code took 10m to 40m tokens and 21–62 mins of agent run time. Build including source downloads, measured on Apple M5 (10 cores, 24 GB RAM).
- Data as of
- 9 November 2026
- Rows
- 322,775
- Tables
- 8
- Bundle contents
- 8 tables; plus Validators
- Formats
- PostgreSQL, Parquet, CSV, JSON
- Source licence
- MIT, ČNB terms, CC BY-SA 4.0
What’s inside
A free bundle for developers. From ČNB, the Czech National Bank: the code list of bank codes, daily foreign exchange market rates since 1991, exchange rates of other currencies and the history of the repo rate. Then public and other holidays and a calendar of working days 2000–2050 (including days when shops are closed), name days, and validators in JS/TS, Python and SQL for IČO (the Czech company ID number), DIČ (the Czech tax/VAT ID), the Czech birth number (a personal ID), account numbers, IBAN, postcodes and the IDs of data boxes (the Czech state system for official electronic delivery).
| Table | Rows |
|---|---|
bankyCodes of banks and payment institutions according to ČNB | 47 |
svatkyPublic and other holidays 2000–2050 | 647 |
pracovni_dnyEvery day 2000–2050: working day, holiday, shop opening regime | 18,628 |
jmeninyName days according to the civil calendar | 560 |
kurzyČNB foreign exchange market rates by day since 1 January 1991 | 269,291 |
menyCountry and currency name for every code on the rate list | 58 |
kurzy_ostatnich_menČNB exchange rates of other currencies, monthly since May 2004 | 33,426 |
repo_sazbaHistory of the ČNB two-week repo rate since 1995 | 118 |
Downloads
Every format contains the same data. Download only the one you need; verify its integrity with the SHA256SUMS file.
| Format | Files | Size |
|---|---|---|
| PostgreSQLschema.sql with types, keys, indexes and comments, and import.sh, which loads the data from CSV | 8 | 12 kB |
| ParquetOne file per table (zstd). DuckDB, Polars and pandas read it without an import. | 8 | 968 kB |
| CSVUTF-8, comma-separated, with a header; large tables as .csv.gz | 8 | 9.3 MB |
| JSONAn array of objects; large tables as JSON Lines (.jsonl.gz) | 8 | 29 MB |
| Also in the bundle | Files | Size |
|---|---|---|
| ValidatorsJS/TS, Python and SQL with tests, MIT licence | 8 | 48 kB |
- In preparation Names: gender and form of address: First names and surnames with gender and the vocative (5th case) for addressing people in e-mails.
Code example
More examples for SQL, DuckDB, Python and Node.js are in the README.md inside the bundle.
-- PostgreSQL: datum splatnosti = 10 pracovních dnů po 2026-12-18
SELECT datum FROM zdarma.pracovni_dny
WHERE datum > '2026-12-18' AND je_pracovni_den ORDER BY datum OFFSET 9 LIMIT 1;import { isValidIco, parseRodneCislo, bankAccountToIban } from './validace.js';
isValidIco('25123891'); // true
parseRodneCislo('736028/5163'); // { normalized: '736028/5163', datumNarozeni: '1973-10-28', pohlavi: 'Z' }
bankAccountToIban('19-2000145399/0800'); // 'CZ6508000000192000145399'Source and licence
- Sources
- ČNB: Číselník kódů bank / platebních institucí (code list of banks and payment institutions, valid from 1 October 2026)
- ČNB: Kurzy devizového trhu (foreign exchange market rates; annual files since 1991, daily rate lists)
- ČNB: Kurzy ostatních měn (exchange rates of other currencies; monthly lists since May 2004)
- ČNB: Jak se vyvíjela dvoutýdenní repo sazba ČNB? (history of the ČNB two-week repo rate)
- Zákon č. 245/2000 Sb., o státních svátcích, o ostatních svátcích, o významných dnech a o dnech pracovního klidu (the Czech public holidays act)
- Zákon č. 223/2016 Sb., o prodejní době v maloobchodě a velkoobchodě (the act on retail and wholesale opening hours)
- Wikipedie: Jmeniny v Česku (Czech Wikipedia, revision 25286427)
- Wikipedia: Name days in the Czech Republic (revision 1377261443)
- svatkyapi.cz (only for cross-checking name days)
- Vyhláška ČNB č. 169/2011 Sb. (ČNB decree on account numbers and IBAN)
- Processed by
- czechdatasets.com. The data is modified and is not an official output of the authority; the required attribution is in LICENCE.txt.
Joins with
Datasets share RÚIAN codes and IČO, so one JOIN connects them.


Companies and organisations (RES)
Czech companies and organisations by IČO (the company ID), from the register of economic entities (RES): legal form, CZ-NACE activities, size and registered office address with GPS. No natural persons.


Data boxes
A list of data boxes for every Czech legal entity and public authority: data box ID by company ID (IČO), with registered office address and GPS. Data boxes are the official e-delivery mailboxes.
More datasets
- RÚIAN with history
- Address geocoder and autocomplete
- Address risks
- Job vacancies
- Medicinal products (SÚKL)
- Medicine shortages and availability
- Pharmacies with opening hours and GPS
- Healthcare facilities (NRPZS)
- Schools and school facilities
- Election results 1996–2026
- Municipalities in numbers 2000–2025
- Wages by region and industry
- ČSÚ code lists
- Population of municipalities 2000–2026
Download it now.
No sign-up and no payment. The paid datasets build on these codes: all 15 together cost 2,490 CZK.