AION Lithuanian Market Calendar
A Python package that answers one question and gets it right every time: was that a working day in Lithuania? Every statutory non-working day is computed from article 123 of the Labour Code rather than stored in a table, so the package is correct for 2027, 2040 and any year after — offline, with no update and no network call.
MIT License No API key required No network call Zero dependencies Never needs updating
Why this exists
Most holiday libraries ship a table of dates and a note saying “update this every year.” That table is a liability: it is correct until the December it is not, and nothing in your test suite will tell you when that happens.
Lithuania does not need a table. Every one of its sixteen statutory non-working days is derivable — twelve are fixed calendar dates, two come from Easter, and two are the first Sunday of a named month. So this package computes them. Install it once and it stays correct indefinitely, with no maintenance and nothing to refresh.
That is a deliberate contrast with our Indian market calendar, which does ship a data file — because Indian exchange holidays are announced annually by the exchanges and genuinely cannot be derived. The right design follows the jurisdiction, not the habit.
Užgavėnės is not a day off
Several Lithuanian calendar and accounting websites publish a „nedarbo dienos“ list of seventeen days for 2026. The extra entry is Užgavėnės — Shrove Tuesday, 17 February 2026.
It is absent from article 123. It is a traditional pre-Lent celebration and an ordinary working day. Treating it as a holiday shifts every settlement, invoice and payroll date that crosses it.
This package keeps holidays() at sixteen and exposes Užgavėnės separately through observances(), as a distinct type that cannot enter business-day arithmetic. The test suite asserts that separation for every year from 2024 to 2040.
>>> observances(2026)
(Observance(date=2026-02-17, name_en='Shrove Tuesday (Carnival)',
name_lt='Užgavėnės'),)
>>> is_business_day("2026-02-17")
True # it is a working day
We mention this prominently because it is the single easiest way to get a Lithuanian calendar wrong, and because a package that quietly disagrees with the wall calendar owes the reader an explanation.
The sixteen statutory holidays
Names follow article 123 of the Labour Code (Darbo kodeksas, 123 straipsnis „Švenčių dienos“) in nominative form. Article 123 lists fourteen provisions; two of them cover two calendar days each — Easter Sunday with Easter Monday, and 25 with 26 December — which is why sixteen dates fall out of fourteen provisions.
| Date | English | Lietuviškai |
|---|---|---|
| 1 January | New Year's Day | Naujieji metai |
| 16 February | Day of Restoration of the State of Lithuania | Lietuvos valstybės atkūrimo diena |
| 11 March | Day of Restoration of Independence of Lithuania | Lietuvos nepriklausomybės atkūrimo diena |
| moveable | Easter Sunday | Šv. Velykos |
| moveable | Easter Monday | Velykų antroji diena |
| 1 May | International Labour Day | Tarptautinė darbo diena |
| first Sunday of May | Mother's Day | Motinos diena |
| first Sunday of June | Father's Day | Tėvo diena |
| 24 June | Day of Dew and St John (Midsummer) | Rasos ir Joninių diena |
| 6 July | Statehood Day and Day of the National Anthem | Valstybės (Lietuvos karaliaus Mindaugo karūnavimo) ir Tautiškos giesmės diena |
| 15 August | Assumption Day | Žolinė (Švč. Mergelės Marijos ėmimo į dangų diena) |
| 1 November | All Saints' Day | Visų Šventųjų diena |
| 2 November | Day of Remembrance of the Dead (All Souls' Day) | Mirusiųjų atminimo (Vėlinių) diena |
| 24 December | Christmas Eve | Šv. Kūčios |
| 25 December | Christmas Day | Šv. Kalėdos |
| 26 December | Second Day of Christmas | Šv. Kalėdų antroji diena |
No substitute days. Lithuania does not move a holiday that falls on a weekend to the following Monday. Assumption Day on Saturday 15 August 2026 is simply absorbed, and the Monday after is an ordinary working day. This was the highest-risk assumption in the package and it has now been confirmed against the statute and by a Lithuanian native speaker.
What it is for
- Payments and settlement. Value dates, SEPA cut-offs, T+2, invoice terms and late-payment interest all count working days. Lithuania is the largest EMI and payment-institution licensing hub in the EU, so a great deal of European payment infrastructure settles on this calendar specifically.
- Payroll and HR. Time sheets, leave accrual, notice periods and holiday premiums are defined against šventės. Getting 6 July wrong is a payroll error, not a cosmetic one.
- Market data. Nasdaq Vilnius session checks, bar alignment, gap detection, and backtests that must not read a holiday as missing data.
- Scheduling and SLA. “Three business days” in a contract; a batch job that must not fire on a holiday.
- Reporting deadlines. Tax and regulatory filings that shift when the due date is not a working day.
Package details
- License: MIT — use freely in commercial and open-source projects
- Python: 3.9 and above
- Dependencies: none
- Languages: every holiday carries
name_enandname_lt - Market: Nasdaq Vilnius (XVIL) session checks
- No account, no API key: works immediately after pip install
- No network, ever: runs in an air-gapped settlement box or a CI runner with no egress
Quick reference
from aion_lithuanian_market_calendar import (
is_business_day, next_business_day, business_days_between, holiday_on,
)
is_business_day() # is today a working day in Lithuania
is_business_day("2026-12-25") # False
next_business_day("2026-12-24") # date(2026, 12, 28)
business_days_between("2026-12-20", "2027-01-05") # 8
holiday_on("2026-06-24").name_lt # 'Rasos ir Joninių diena'
holiday_on("2026-06-24").name_en # 'Day of Dew and St John (Midsummer)'
Dates accept a date, a datetime, an ISO string, or None for today. Also available: holidays(year), holidays_between(), observances(year), is_public_holiday(), is_weekend(), previous_business_day(), easter_sunday(year) and is_market_open().
How it is verified
Easter is unit-tested against known dates for 2024, 2025, 2026, 2027, 2030 and 2035 — using the Gregorian (Western) computus, since Lithuania is predominantly Catholic and observes Western Easter. Using the Orthodox date misplaces two holidays every year, and it is the most common bug in hand-rolled European holiday code.
Mother's Day and Father's Day are asserted to fall on a Sunday for every year from 2024 to 2040. The full 2026 date list and every Lithuanian holiday name are pinned in the test suite.
The list and its spellings were checked against the text of article 123 and independently reviewed by a Lithuanian native speaker in September 2026. That review confirmed the sixteen are complete, that Father's Day is the first Sunday of June, and that a holiday falling on a weekend gets no replacement weekday.
Verify the number yourself
curl -sS "https://pypistats.org/api/packages/aion-lithuanian-market-calendar/overall" | python3 -m json.tool
The download counter above is sourced from /api/lithuanian-calendar/public-metrics (backed by PyPIStats, cached hourly). PyPI numbers count download events, not unique humans.
Python biblioteka, atsakanti į vieną klausimą ir kaskart atsakanti teisingai: ar ta diena Lietuvoje buvo darbo diena? Visos švenčių dienos apskaičiuojamos pagal Darbo kodekso 123 straipsnį, o ne saugomos sąraše, todėl biblioteka teisinga 2027, 2040 ir bet kuriais vėlesniais metais — be interneto ryšio, be atnaujinimų.
MIT licencija Nereikia API rakto Jokio interneto ryšio Jokių priklausomybių Niekada nereikia atnaujinti
Kodėl ji sukurta
Dauguma švenčių bibliotekų platinamos su datų sąrašu ir pastaba „atnaujinkite kasmet“. Toks sąrašas yra rizika: jis teisingas iki to gruodžio, kai nebebūna teisingas, ir joks jūsų testas apie tai nepraneš.
Lietuvai sąrašo nereikia. Visos šešiolika švenčių dienų yra apskaičiuojamos — dvylika yra fiksuotos datos, dvi priklauso nuo Velykų, dvi yra pirmasis mėnesio sekmadienis. Todėl biblioteka jas apskaičiuoja. Įdiekite vieną kartą ir ji liks teisinga neribotai, be jokios priežiūros.
Tuo ji sąmoningai skiriasi nuo mūsų Indijos rinkos kalendoriaus, kuris platinamas su duomenų failu — nes Indijos biržų šventės skelbiamos kasmet ir tikrai negali būti apskaičiuotos. Teisingas sprendimas priklauso nuo jurisdikcijos, o ne nuo įpročio.
Užgavėnės nėra nedarbo diena
Kai kurios Lietuvos kalendorių ir buhalterinės apskaitos svetainės skelbia septyniolikos „nedarbo dienų“ sąrašą 2026 metams. Papildomas įrašas — Užgavėnės, 2026 m. vasario 17 d.
Darbo kodekso 123 straipsnyje jų nėra. Tai tradicinė šventė prieš gavėnią ir įprasta darbo diena. Laikant ją nedarbo diena, pasislenka visos po jos einančios atsiskaitymų, sąskaitų ir atlyginimų datos.
Ši biblioteka holidays() palieka su šešiolika dienų, o Užgavėnes pateikia atskirai per observances() — kaip atskirą tipą, kuris negali patekti į darbo dienų skaičiavimą. Testai tai tikrina kiekvieniems metams nuo 2024 iki 2040.
>>> observances(2026)
(Observance(date=2026-02-17, name_en='Shrove Tuesday (Carnival)',
name_lt='Užgavėnės'),)
>>> is_business_day("2026-02-17")
True # tai darbo diena
Apie tai rašome atvirai, nes tai lengviausias būdas suklysti Lietuvos kalendoriuje, ir nes biblioteka, tyliai nesutampanti su sieniniu kalendoriumi, skaitytojui skolinga paaiškinimą.
Šešiolika švenčių dienų
Pavadinimai pateikti pagal Darbo kodekso 123 straipsnį („Švenčių dienos“), vardininko linksniu. 123 straipsnyje yra keturiolika punktų; du iš jų apima po dvi kalendorines dienas — Velykų sekmadienį su pirmadieniu ir gruodžio 25 su 26 — todėl iš keturiolikos punktų susidaro šešiolika dienų.
| Data | Lietuviškai | English |
|---|---|---|
| Sausio 1 | Naujieji metai | New Year's Day |
| Vasario 16 | Lietuvos valstybės atkūrimo diena | Day of Restoration of the State of Lithuania |
| Kovo 11 | Lietuvos nepriklausomybės atkūrimo diena | Day of Restoration of Independence of Lithuania |
| kintama | Šv. Velykos | Easter Sunday |
| kintama | Velykų antroji diena | Easter Monday |
| Gegužės 1 | Tarptautinė darbo diena | International Labour Day |
| pirmasis gegužės sekmadienis | Motinos diena | Mother's Day |
| pirmasis birželio sekmadienis | Tėvo diena | Father's Day |
| Birželio 24 | Rasos ir Joninių diena | Day of Dew and St John (Midsummer) |
| Liepos 6 | Valstybės (Lietuvos karaliaus Mindaugo karūnavimo) ir Tautiškos giesmės diena | Statehood Day and Day of the National Anthem |
| Rugpjūčio 15 | Žolinė (Švč. Mergelės Marijos ėmimo į dangų diena) | Assumption Day |
| Lapkričio 1 | Visų Šventųjų diena | All Saints' Day |
| Lapkričio 2 | Mirusiųjų atminimo (Vėlinių) diena | Day of Remembrance of the Dead (All Souls' Day) |
| Gruodžio 24 | Šv. Kūčios | Christmas Eve |
| Gruodžio 25 | Šv. Kalėdos | Christmas Day |
| Gruodžio 26 | Šv. Kalėdų antroji diena | Second Day of Christmas |
Šventės neperkeliamos. Jei šventė sutampa su savaitgaliu, ji į pirmadienį neperkeliama. Žolinė 2026 m. rugpjūčio 15 d. yra šeštadienis, o po jos einantis pirmadienis — įprasta darbo diena. Tai buvo rižikingiausia bibliotekos prielaida ir dabar ji patvirtinta pagal įstatymą ir gimtakalbio lietuvio.
Kam ji skirta
- Mokėjimai ir atsiskaitymai. Valiutavimo datos, SEPA terminai, T+2, sąskaitų apmokėjimo terminai ir delspinigiai skaičiuojami darbo dienomis. Lietuva yra didžiausias elektroninių pinigų ir mokėjimo įstaigų licencijavimo centras ES, todėl labai didelė dalis Europos mokėjimų infrastruktūros atsiskaito būtent pagal šį kalendorių.
- Darbo užmokestis ir personalas. Darbo laiko apskaita, atostogų kaupimas, įspėjimo terminai ir priemokos už darbą švenčių dienomis remiasi šventėmis. Suklydus dėl liepos 6 d., tai jau ne kosmetinė, o atlyginimo klaida.
- Rinkos duomenys. Nasdaq Vilnius sesijų tikrinimas, duomenų derinimas, tarpų aptikimas ir istorinis testavimas, kuris neturi palaikyti šventės trūkstamais duomenimis.
- Planavimas ir SLA. „Trys darbo dienos“ sutartyje; naktinė užduotis, kuri neturi pasileisti per šventę.
- Ataskaitų terminai. Mokestinės ir priežiūros ataskaitos, kurių terminas keliasi, kai jis išpuola ne darbo dieną.
Apie biblioteką
- Licencija: MIT — laisvai naudokite komerciniuose ir atviro kodo projektuose
- Python: 3.9 ir naujesnis
- Priklausomybės: jokių
- Kalbos: kiekviena šventė turi
name_enirname_lt - Rinka: Nasdaq Vilnius (XVIL) sesijų tikrinimas
- Nereikia paskyros ar API rakto: veikia iš karto po pip install
- Jokio interneto ryšio: veikia izoliuotame atsiskaitymų serveryje ar CI aplinkoje be išorinio ryšio
Trumpa nuoroda
from aion_lithuanian_market_calendar import (
is_business_day, next_business_day, business_days_between, holiday_on,
)
is_business_day() # ar šiandien darbo diena Lietuvoje
is_business_day("2026-12-25") # False
next_business_day("2026-12-24") # date(2026, 12, 28)
business_days_between("2026-12-20", "2027-01-05") # 8
holiday_on("2026-06-24").name_lt # 'Rasos ir Joninių diena'
holiday_on("2026-06-24").name_en # 'Day of Dew and St John (Midsummer)'
Datos priimamos kaip date, datetime, ISO tekstas arba None (šiandien). Taip pat yra holidays(year), holidays_between(), observances(year), is_public_holiday(), is_weekend(), previous_business_day(), easter_sunday(year) ir is_market_open().
Kaip ji patikrinta
Velykų data patikrinta 2024, 2025, 2026, 2027, 2030 ir 2035 metams — pagal Grigaliaus (Vakarų) kalendorių, nes Lietuva yra katalikiška šalis ir švenčia Vakarų, o ne stačiatikių Velykas. Pasirinkus stačiatikių datą, kasmet nukryptų dvi šventės; tai dažniausia klaida pačių rašytame Europos švenčių kode.
Motinos ir Tėvo dienos patikrintos, kad visada būtų sekmadienis nuo 2024 iki 2040 metų. Visas 2026 m. sąrašas ir visi lietuviški pavadinimai įrašyti į testus.
Sąrašas ir rašybos formos sutikrintos su 123 straipsnio tekstu ir atskirai peržiūrėtos gimtakalbio lietuvio 2026 m. rugsėjo mėn. Ta peržiūra patvirtino, kad šešiolikos dienų sąrašas išsamus, kad Tėvo diena yra pirmasis birželio sekmadienis ir kad su savaitgaliu sutampanti šventė į kitą darbo dieną neperkeliama.
Pasitikrinkite skaičių patys
curl -sS "https://pypistats.org/api/packages/aion-lithuanian-market-calendar/overall" | python3 -m json.tool
Atsisiuntimų skaitiklis imamas iš /api/lithuanian-calendar/public-metrics (šaltinis — PyPIStats, atnaujinama kas valandą). PyPI skaičiuoja atsisiuntimo įvykius, o ne unikalius žmones.