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

GET /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

ParametrasTipasPrivalomasAprašymas
datestringTaipData formatu YYYY-MM-DD

Atsakymo laukai

ParametrasTipasAprašymas
datestringDate in YYYY-MM-DD format
laisvadienisbooleantrue if non-working day (weekend or red holiday)
reasonstring|null"saturday", "sunday", "public_holiday", or null
holiday_namestring|nullLithuanian holiday name when reason is "public_holiday", otherwise null
shorter_workdaybooleantrue, 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
}
GET /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

ParametrasTipasPrivalomasAprašymas
fromstringTaipStart date in YYYY-MM-DD format (inclusive)
tostringTaipEnd date in YYYY-MM-DD format (inclusive). Must not be earlier than from.

Atsakymo laukai

ParametrasTipasAprašymas
fromstringEchoes the from parameter
tostringEchoes the to parameter
countintegerNumber of days in the response
days[].datestringDate in YYYY-MM-DD format
days[].laisvadienisbooleantrue if non-working day (weekend or red public holiday)
days[].holiday_namestring|nullLithuanian name of the red public holiday, or null
days[].shorter_workdaybooleantrue, 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

HTTPKlaidos kodasAprašymas
400missing_paramBoth from and to are required
400invalid_dateEither date is not a valid YYYY-MM-DD value
400invalid_rangefrom is later than to
400range_too_largeRange exceeds 366 days — split into smaller requests
429rate_limit_minute20 requests/minute exceeded
429rate_limit_month2 000 requests/month exceeded
GET /api/v1/holidays

Grąžina šventines dienas pagal datą arba metus.

Parametrai

ParametrasTipasPrivalomasAprašymas
datestringTaip*Data formatu YYYY-MM-DD — returns holidays for that specific date
yearintegerTaip*Year (1583–2100) — returns all holidays for the entire year
langstringNeKalba: lt, en, pl, ru (numatyta: lt)

Provide either date or year — not both.

Atsakymo laukai

ParametrasTipasAprašymas
date / yearstring / integerEchoes the query parameter
countintegerNumber of holidays returned
holidays[].datestringDate in YYYY-MM-DD
holidays[].namestringName in requested language
holidays[].name_lt/en/pl/rustringNames in all four languages
holidays[].typestringpublic, traditional, religious, school, other
holidays[].is_redbooleantrue 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
    }
  ]
}
GET /api/v1/name-days

Grąžina vardadienių sąrašą nurodytai datai.

Parametrai

ParametrasTipasPrivalomasAprašymas
datestringTaipData formatu YYYY-MM-DD
langstringNeKalba: 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" }
  ]
}
GET /api/v1/day

Grąžina visą informaciją apie dieną: šventes ir vardadienius.

Parametrai

ParametrasTipasPrivalomasAprašymas
datestringTaipData formatu YYYY-MM-DD
langstringNeKalba: lt, en, pl, ru (numatyta: lt)

Atsakymo laukai

ParametrasTipasAprašymas
datestringDate in YYYY-MM-DD
langstringLanguage used for names
day_of_weekinteger0 = Sunday, 1 = Monday … 6 = Saturday
is_weekendbooleantrue for Saturday or Sunday
week_numberintegerISO 8601 week number
holidays[].namestringHoliday name in requested language
holidays[].name_lt/enstringNames in Lithuanian and English
holidays[].datestringHoliday date (YYYY-MM-DD)
holidays[].typestringHoliday category
holidays[].is_redbooleantrue if non-working day (laisvadienis)
name_days[].namestringName-day name
name_days[].genderstring"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:

HolidayDateComputed
Naujųjų metų dienaJan 1
Lietuvos valstybės atkūrimo dienaFeb 16
Lietuvos nepriklausomybės atkūrimo dienaMar 11
Šv. Velykos (Easter Sunday)VariableYes
Antroji Velykų diena (Easter Monday)VariableYes
Tarptautinė darbo dienaMay 1
Motinos diena (Mother's Day)1st Sunday of MayYes
Rasos ir Joninių dienaJun 24
Valstybės (Mindaugo karūnavimo) dienaJul 6
ŽolinėAug 15
Visų Šventųjų dienaNov 1
Mirusiųjų atminimo (Vėlinių) dienaNov 2
Kūčių dienaDec 24
Šventosios Kalėdos (pirma diena)Dec 25
Šventosios Kalėdos (antra diena)Dec 26
Tėvo diena (Father's Day)1st Sunday of JuneYes

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

HTTPKlaidos kodasAprašymas
401missing_keyNenurodytas API raktas.
401invalid_keyNeteisingas arba neaktyvus raktas.
401expired_keyRakto galiojimas pasibaigė.
429rate_limit_minuteViršytas minutinis limitas.
429rate_limit_dayViršytas dienos limitas.
400invalid_dateNeteisinga datos formato.
400missing_paramTrūksta privalomo parametro.
400invalid_yearYear 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.

EndpointAuth requiredRate limit
/api/v1/laisvadienisNo60 req/min · 10 000 req/month (IP-based)
/api/v1/holidaysYesPer API key plan
/api/v1/name-daysYesPer API key plan
/api/v1/dayYesPer API key plan

Gauti API prieigą

Norėdami gauti API raktą, susisiekite su mumis elektroniniu paštu.

Susisiekti