Skip to content
czechdatasets

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

An island with an open garden gate, a village noticeboard, an orchard and beehivesAn island with an open garden gate, a village noticeboard, an orchard and beehives

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).

TableRows
bankyCodes of banks and payment institutions according to ČNB47
svatkyPublic and other holidays 2000–2050647
pracovni_dnyEvery day 2000–2050: working day, holiday, shop opening regime18,628
jmeninyName days according to the civil calendar560
kurzyČNB foreign exchange market rates by day since 1 January 1991269,291
menyCountry and currency name for every code on the rate list58
kurzy_ostatnich_menČNB exchange rates of other currencies, monthly since May 200433,426
repo_sazbaHistory of the ČNB two-week repo rate since 1995118

Downloads

Every format contains the same data. Download only the one you need; verify its integrity with the SHA256SUMS file.

FormatFilesSize
PostgreSQLschema.sql with types, keys, indexes and comments, and import.sh, which loads the data from CSV812 kB
ParquetOne file per table (zstd). DuckDB, Polars and pandas read it without an import.8968 kB
CSVUTF-8, comma-separated, with a header; large tables as .csv.gz89.3 MB
JSONAn array of objects; large tables as JSON Lines (.jsonl.gz)829 MB
Also in the bundleFilesSize
ValidatorsJS/TS, Python and SQL with tests, MIT licence848 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.

Due date in 10 working daysPostgreSQL
-- 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;
ValidatorsJavaScript
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'

Download it now.

No sign-up and no payment. The paid datasets build on these codes: all 15 together cost 2,490 CZK.