API dokumentacija
Calendar.lt REST API suteikia prieigą prie lietuviškų švenčių, vardadienių ir kalendoriaus informacijos. Visi atsakymai grąžinami JSON formatu.
Base URL: https://calendar.lt/api/v1
Autentifikacija
Kiekviena užklausa turi turėti galiojantį API raktą. Raktą galima perduoti trimis būdais:
X-API-Key antraštė (rekomenduojama)
GET /api/v1/name-days?date=2026-03-19 HTTP/1.1 Host: calendar.lt X-API-Key: clt_your_api_key_here
Authorization: Bearer antraštė
Authorization: Bearer clt_your_api_key_here
Užklausos parametras (tik testavimui)
GET /api/v1/name-days?date=2026-03-19&api_key=clt_your_api_key_here
Rekomenduojame naudoti X-API-Key antraštę. Niekada neatskleiskite rakto viešai.
Galutiniai taškai
/api/v1/laisvadienis
Viešas
Viešai prieinamas galutinis taškas (nereikia rakto). Grąžina true, jei nurodyta data yra nedarbo diena Lietuvoje (sekmadienis arba valstybinė šventė), arba false, jei tai darbo diena.
Taip pat grąžinamas laukas shorter_workday — pagal Darbo kodekso 113 str. darbo diena prieš valstybinę šventę sutrumpinama viena valanda. Taikoma net jei šventė patenka į šeštadienį.
Limitas: 60 užklausų per minutę ir 10 000 užklausų per mėnesį. Ribojimas atliekamas pagal IP adresą.
Parametrai
| Parametras | Tipas | Privalomas | Aprašymas |
|---|---|---|---|
date | string | Taip | Data formatu YYYY-MM-DD |
Atsakymo laukai
| Parametras | Tipas | Aprašymas |
|---|---|---|
date | string | Date in YYYY-MM-DD format |
laisvadienis | boolean | true if non-working day (weekend or red holiday) |
reason | string|null | "saturday", "sunday", "public_holiday", or null |
holiday_name | string|null | Lithuanian holiday name when reason is "public_holiday", otherwise null |
shorter_workday | boolean | true, jei tai darbo diena (laisvadienis: false) ir kita kalendorinė diena yra raudona valstybinė šventė — darbo diena sutrumpinama 1 val. pagal DK 113 str. Visada false nedarbo dienomis. |
Užklausos pavyzdys
curl "https://calendar.lt/api/v1/laisvadienis?date=2026-06-23"
Atsakymo pavyzdys
// Tuesday before Rasos ir Joninių diena (Jun 24) — workday is shortened:
{
"date": "2026-06-23",
"laisvadienis": false,
"reason": null,
"holiday_name": null,
"shorter_workday": true
}
// The red holiday itself:
{
"date": "2026-06-24",
"laisvadienis": true,
"reason": "public_holiday",
"holiday_name": "Rasos ir Joninių diena",
"shorter_workday": false
}
// Regular working day:
{
"date": "2026-06-22",
"laisvadienis": false,
"reason": null,
"holiday_name": null,
"shorter_workday": false
}
// Saturday (holiday falls on Saturday — Friday would be shorter_workday: true):
{
"date": "2026-01-03",
"laisvadienis": true,
"reason": "saturday",
"holiday_name": null,
"shorter_workday": false
}
/api/v1/days
Viešas
Returns laisvadienis and shorter_workday status for every day in a date range — a batch version of /api/v1/laisvadienis. No API key required.
Rate limits (IP-based): 20 requests/min · 2 000 requests/month. Maximum range: 366 days per request.
Parametrai
| Parametras | Tipas | Privalomas | Aprašymas |
|---|---|---|---|
from | string | Taip | Start date in YYYY-MM-DD format (inclusive) |
to | string | Taip | End date in YYYY-MM-DD format (inclusive). Must not be earlier than from. |
Atsakymo laukai
| Parametras | Tipas | Aprašymas |
|---|---|---|
from | string | Echoes the from parameter |
to | string | Echoes the to parameter |
count | integer | Number of days in the response |
days[].date | string | Date in YYYY-MM-DD format |
days[].laisvadienis | boolean | true if non-working day (weekend or red public holiday) |
days[].holiday_name | string|null | Lithuanian name of the red public holiday, or null |
days[].shorter_workday | boolean | true, jei tai darbo diena (laisvadienis: false) ir kita kalendorinė diena yra raudona valstybinė šventė — darbo diena sutrumpinama 1 val. pagal DK 113 str. Visada false nedarbo dienomis. |
Užklausos pavyzdys
curl "https://calendar.lt/api/v1/days?from=2026-05-01&to=2026-05-31"
Atsakymo pavyzdys
{
"from": "2026-05-01",
"to": "2026-05-31",
"count": 31,
"days": [
{
"date": "2026-05-01",
"laisvadienis": true,
"holiday_name": "Tarptautinė darbo diena",
"shorter_workday": false
},
{
"date": "2026-05-02",
"laisvadienis": false,
"holiday_name": null,
"shorter_workday": false
},
{
"date": "2026-05-03",
"laisvadienis": true,
"holiday_name": "Motinos diena",
"shorter_workday": false
},
{
"date": "2026-05-04",
"laisvadienis": false,
"holiday_name": null,
"shorter_workday": false
}
]
}
Error responses
| HTTP | Klaidos kodas | Aprašymas |
|---|---|---|
| 400 | missing_param | Both from and to are required |
| 400 | invalid_date | Either date is not a valid YYYY-MM-DD value |
| 400 | invalid_range | from is later than to |
| 400 | range_too_large | Range exceeds 366 days — split into smaller requests |
| 429 | rate_limit_minute | 20 requests/minute exceeded |
| 429 | rate_limit_month | 2 000 requests/month exceeded |
/api/v1/holidays
Grąžina šventines dienas pagal datą arba metus.
Parametrai
| Parametras | Tipas | Privalomas | Aprašymas |
|---|---|---|---|
date | string | Taip* | Data formatu YYYY-MM-DD — returns holidays for that specific date |
year | integer | Taip* | Year (1583–2100) — returns all holidays for the entire year |
lang | string | Ne | Kalba: lt, en, pl, ru (numatyta: lt) |
Provide either date or year — not both.
Atsakymo laukai
| Parametras | Tipas | Aprašymas |
|---|---|---|
date / year | string / integer | Echoes the query parameter |
count | integer | Number of holidays returned |
holidays[].date | string | Date in YYYY-MM-DD |
holidays[].name | string | Name in requested language |
holidays[].name_lt/en/pl/ru | string | Names in all four languages |
holidays[].type | string | public, traditional, religious, school, other |
holidays[].is_red | boolean | true if this is a non-working day (laisvadienis) per DK 123 str. |
Užklausos pavyzdys
// By date: curl "https://calendar.lt/api/v1/holidays?date=2026-04-05&lang=en" \ -H "X-API-Key: clt_your_api_key_here" // Full year: curl "https://calendar.lt/api/v1/holidays?year=2026&lang=lt" \ -H "X-API-Key: clt_your_api_key_here"
Atsakymo pavyzdys
{
"date": "2026-04-05",
"count": 1,
"holidays": [
{
"date": "2026-04-05",
"name": "Easter Sunday",
"name_lt": "Šv. Velykos",
"name_en": "Easter Sunday",
"name_pl": "Niedziela Wielkanocna",
"name_ru": "Пасха",
"type": "public",
"is_red": true
}
]
}
/api/v1/name-days
Grąžina vardadienių sąrašą nurodytai datai.
Parametrai
| Parametras | Tipas | Privalomas | Aprašymas |
|---|---|---|---|
date | string | Taip | Data formatu YYYY-MM-DD |
lang | string | Ne | Kalba: lt, en, pl, ru (numatyta: lt) |
Užklausos pavyzdys
curl "https://calendar.lt/api/v1/name-days?date=2026-03-19&lang=lt" \ -H "X-API-Key: clt_your_api_key_here"
Atsakymo pavyzdys
{
"date": "2026-03-19",
"lang": "lt",
"count": 3,
"name_days": [
{ "name": "Juozapas", "gender": "m" },
{ "name": "Juozas", "gender": "m" },
{ "name": "Juzė", "gender": "f" }
]
}
/api/v1/day
Grąžina visą informaciją apie dieną: šventes ir vardadienius.
Parametrai
| Parametras | Tipas | Privalomas | Aprašymas |
|---|---|---|---|
date | string | Taip | Data formatu YYYY-MM-DD |
lang | string | Ne | Kalba: lt, en, pl, ru (numatyta: lt) |
Atsakymo laukai
| Parametras | Tipas | Aprašymas |
|---|---|---|
date | string | Date in YYYY-MM-DD |
lang | string | Language used for names |
day_of_week | integer | 0 = Sunday, 1 = Monday … 6 = Saturday |
is_weekend | boolean | true for Saturday or Sunday |
week_number | integer | ISO 8601 week number |
holidays[].name | string | Holiday name in requested language |
holidays[].name_lt/en | string | Names in Lithuanian and English |
holidays[].date | string | Holiday date (YYYY-MM-DD) |
holidays[].type | string | Holiday category |
holidays[].is_red | boolean | true if non-working day (laisvadienis) |
name_days[].name | string | Name-day name |
name_days[].gender | string | "m" or "f" |
Užklausos pavyzdys
curl "https://calendar.lt/api/v1/day?date=2026-05-03&lang=en" \ -H "X-API-Key: clt_your_api_key_here"
Atsakymo pavyzdys
{
"date": "2026-05-03",
"lang": "en",
"day_of_week": 0,
"is_weekend": true,
"week_number": 18,
"holidays": [
{
"name": "Mother's Day",
"name_lt": "Motinos diena",
"name_en": "Mother's Day",
"date": "2026-05-03",
"type": "traditional",
"is_red": true
}
],
"name_days": [
{ "name": "Irma", "gender": "f" }
]
}
The is_red flag
The is_red field marks a holiday as a non-working day
(laisvadienis) per the Lithuanian Labour Code (DK 123 str.).
It is managed entirely in the database — no hardcoded lists in the application code.
The following holidays carry is_red: true:
| Holiday | Date | Computed |
|---|---|---|
| Naujųjų metų diena | Jan 1 | |
| Lietuvos valstybės atkūrimo diena | Feb 16 | |
| Lietuvos nepriklausomybės atkūrimo diena | Mar 11 | |
| Šv. Velykos (Easter Sunday) | Variable | Yes |
| Antroji Velykų diena (Easter Monday) | Variable | Yes |
| Tarptautinė darbo diena | May 1 | |
| Motinos diena (Mother's Day) | 1st Sunday of May | Yes |
| Rasos ir Joninių diena | Jun 24 | |
| Valstybės (Mindaugo karūnavimo) diena | Jul 6 | |
| Žolinė | Aug 15 | |
| Visų Šventųjų diena | Nov 1 | |
| Mirusiųjų atminimo (Vėlinių) diena | Nov 2 | |
| Kūčių diena | Dec 24 | |
| Šventosios Kalėdos (pirma diena) | Dec 25 | |
| Šventosios Kalėdos (antra diena) | Dec 26 | |
| Tėvo diena (Father's Day) | 1st Sunday of June | Yes |
Note: type reflects the holiday's cultural category (public,
traditional, religious, etc.) and is independent of
is_red. For example, Motinos diena has type: "traditional"
but is_red: true. Always use is_red (not type)
to determine whether a day is non-working.
Laukas shorter_workday
Pagal Lietuvos Respublikos darbo kodeksą (113 str.) darbo diena prieš valstybinę šventę (šventinių dienų išvakarės) sutrumpinama viena valanda. Taikoma visiems darbuotojams, nepriklausomai nuo darbo laiko režimo.
Taisyklė taikoma kalendorinei dienai tiesiai prieš šventę — ne paskutinei savaitės darbo dienai. Galimi atvejai:
| Šventė patenka į | Sutrumpinta darbo diena |
|---|---|
| Antradienį → pirmadienis sutrumpintas | |
| Trečiadienį → antradienį sutrumpintas | |
| Šeštadienį → penktadienis sutrumpintas | |
| Sekmadienį → šeštadienis jau nedarbo diena, niekas nesutrumpinama | |
| Pirmadienį → sekmadienis jau nedarbo diena, niekas nesutrumpinama | |
Svarbu: shorter_workday visada yra false, kai laisvadienis: true. Nedarbo diena negali tuo pačiu metu būti sutrumpinta darbo diena.
Praktinis naudojimas
Naudokite šį lauką automatizuodami personalo ir atlyginimų sistemas — nereikia patiems palaikyti sutrumpintų dienų sąrašo. Užklauskite bet kurią datą ir reaguokite į shorter_workday: true:
const res = await fetch("https://calendar.lt/api/v1/laisvadienis?date=2026-06-23");
const { laisvadienis, shorter_workday } = await res.json();
if (laisvadienis) return "Day off";
if (shorter_workday) return "Work until 16:00 today (1 hour shorter)";
return "Normal working day";
Klaidų kodai
| HTTP | Klaidos kodas | Aprašymas |
|---|---|---|
| 401 | missing_key | Nenurodytas API raktas. |
| 401 | invalid_key | Neteisingas arba neaktyvus raktas. |
| 401 | expired_key | Rakto galiojimas pasibaigė. |
| 429 | rate_limit_minute | Viršytas minutinis limitas. |
| 429 | rate_limit_day | Viršytas dienos limitas. |
| 400 | invalid_date | Neteisinga datos formato. |
| 400 | missing_param | Trūksta privalomo parametro. |
| 400 | invalid_year | Year is outside the supported range (1583–2100) |
Limito politika
Kiekvienam API raktui taikomi du ribojimo langai: užklausų skaičius per minutę ir per parą. Prie kiekvieno klaidingo atsakymo (429) nurodoma, kuris limitas buvo viršytas.
| Endpoint | Auth required | Rate limit |
|---|---|---|
/api/v1/laisvadienis | No | 60 req/min · 10 000 req/month (IP-based) |
/api/v1/holidays | Yes | Per API key plan |
/api/v1/name-days | Yes | Per API key plan |
/api/v1/day | Yes | Per API key plan |