Документация Production Calendar API

Введение

Production Calendar API (v.2.0) – это REST-сервис для автоматизации учета рабочих, выходных и праздничных дней. API предоставляет нормативные данные согласно официальным производственным календарям РФ, Республики Казахстан и Республики Беларусь.

Основные возможности:

  • Определение статуса дня (рабочий, выходной, праздничный, сокращенный).
  • Получение официального производственного календаря за произвольный период.
  • Расчет интервалов между датами с учетом производственного графика.
  • Получение статистических данных и норм рабочего времени.

Информацию о доступности данных для стран и регионов в зависимости от периода можно посмотреть на странице статус наполнения БД.

Базовый URL API

Каждый запрос к API версии v2 должен начинаться с базового префикса:

https://production-calendar.ru/v2

Пути конкретных методов (endpoints) добавляются сразу после базового URL.

Аутентификация

Для работы с API требуется передача Bearer-токена в заголовке запроса. Токен можно получить в личном кабинете после быстрой регистрации. В примерах к данной документации используется демонстрационный гостевой токен, имеющий ряд ограничений.

Authorization: Bearer {token}

Методы API

1. Получение производственного календаря за период (days)

Основной метод, возвращает производственный календарь за произвольный период:

Request

GET
/{country}/{period}/days
Копировать
Пример

Route-параметры

Название Тип Описание
{country} string ISO-код страны. Поддерживаемые значения:
  • ru – Российская Федерация;
  • by – Республика Беларусь;
  • kz – Республика Казахстан;
{period} string

Целевой временной интервал.

Поддерживаемые форматы временного интервала {period}:

Интервал Шаблон Примеры
Год ГГГГ 2026 / 2025
Квартал ГГГГ-QN 2026-Q1 / 2025-Q4
Месяц ГГГГ-ММ 2024-03
Сутки ГГГГ-ММ-ДД 2023-10-05
Произвольный период (не более года) ГГГГ-ММ-ДД-ГГГГ-ММ-ДД 2022-10-05-2022-10-31

Кроме того, в качестве временного интервала {period} возможно передавать зарезервированные динамические переменные:

Переменная Возвращаемое значение
current-year Текущий год
current-quarter Текущий квартал
current-month Текущий месяц
current-week Текущая неделя
today Текущие сутки

При этом динамические переменные поддерживают модификаторы (плюс или минус) позволяющие увеличить или уменьшить соответствующий интервал от текущего. Например, передав значение today+1 можно всегда получать данные за следующие сутки от текущих. Соответственно today+2 на двое суток итд. Модификаторы можно применять ко всем динамическим переменным.

Динамическую переменную today можно применять при задании произвольного интервала. Например, если передать {period} в виде строки today+1-today+8 вы всегда будете получать результат с данными на неделю вперед начиная с завтрашнего дня.


Query-параметры

Параметр Тип Обязательный Значение по умолчанию Описание
format string Нет json Формат получения ответа от сервера. Поддерживаемые варианты:
  • JSON;
  • XML;
  • CSV.
region int Нет null Позволяет задать регион РФ (в ряде регионов присутствуют свои региональные праздники, для которых производственный календарь отличается). В качестве номера региона задается однозначные или двузначные коды ГИБДД. Трехзначные не поддерживаются.
compact bool Нет false Если задать данному параметру значение true или 1 (истина), то результат будет выдаваться в сокращенном формате, только особые дни, которые отличаются от обычного календаря. По умолчанию этот параметр равен false или 0 и календарь выдает все сутки заданного периода.
week_type int Нет 5 Тип рабочей недели, 5- или 6-дневная рабочая неделя (значения равные 5 и 6 соответственно)
date_format string Нет iso Определяет формат представления дат в ответе сервера. Поддерживаемые варианты форматов:
  • iso - Международный стандарт: ГГГГ-ММ-ДД
  • timestamp - Unix-время (секунды с 01.01.1970)
  • ru - Российский стандарт: ДД.ММ.ГГГГ
  • eu - Европейский стандарт: ДД/ММ/ГГГГ
  • us - Американский стандарт: ММ/ДД/ГГГГ
wsch bool Нет false Учет в производственном календаре так называемых нерабочих дней, которые в законодательных документах закреплены размыто или действуют на определенную часть работников. Примеры:
  • Выходные дни с сохранением заработной платы (В период пандемии COVID-19)
  • Выходные дни только для государственных служащих
  • Выходные дни которые носят рекомендательный характер
token string Нет null

Альтернативный метод аутентификации. В исключительных случаях, когда передача произвольных HTTP-заголовков затруднена (например, при интеграции с табличными процессорами (формулы MS Excel, Google Sheets) или простыми IoT-устройствами), допускается передача токена через get-параметр.

Примечание: Данный метод считается менее защищенным, так как передается в открытом виде, а также токен сохранится в логах веб-сервера или истории браузера.

as_map bool Нет false В ответе от сервера, свойство days будет представлено не виде массива, а в виде объекта, где каждое свойство будет соответствующей датой.
unescapes bool Нет true Если параметр равен false, юникод в ответе будет экранирован (\uXXXX), если true символы будут отображаться как есть. По умолчанию параметр равен true.
encoding string Нет

utf-8;

для CSV: windows-1251

Параметр используется только для формата CSV. Если передать строку "utf-8", то сервер вернет файл в соответствующей кодировке. По умолчанию (для CSV) "windows-1251".
bom bool Нет false Параметр используется только для формата CSV. Работает в паре с предыдущим параметром. Для кодировки utf-8 можно получить CSV-файл с байтами BOM. Иногда бывает необходимо в некоторых приложениях, например в Power BI или Power Query.

Примеры:

https://production-calendar.ru/v2/ru/2022-04/days?region=26
https://production-calendar.ru/v2/ru/2022-01/days?region=26&week_type=6

Response

Разберем структуру на примере ответа в формате JSON:

{
    "days": [
        {
            "date": "2026-01-01",
            "type": {
                "id": 3,
                "name": "Государственный праздник",
                "is_working": 0
            },
            "title": "Новогодние каникулы",
            "working_hours": 0,
            "weekday": {
                "id": 4,
                "name": "Четверг",
                "short": "чт"
            },
            "is_project": false,
            "is_wsch": false,
            "documents": [
                {
                    "details_number": "197-ФЗ",
                    "details_date": "2001-12-30",
                    "details_amending_number": "35-Ф3",
                    "details_amending_date": "2012-04-23",
                    "effective_date": "2012-04-24",
                    "to_revoke_number": null,
                    "to_revoke_date": null,
                    "name": "Трудовой кодекс Российской Федерации",
                    "title": null,
                    "reference": "Статья 112",
                    "city": "Москва",
                    "signer_title": "Президент Российской Федерации",
                    "signer_name": "В. Путин",
                    "sections": [
                        "...\nСтатья 112. Нерабочие праздничные дни\nНерабочими праздничными днями в Российской Федерации являются:\n1, 2, 3, 4, 5, 6 и 8 января - Новогодние каникулы;\n7 января - Рождество Христово;\n23 февраля - День защитника Отечества;\n8 марта - Международный женский день;\n1 мая - Праздник Весны и Труда;\n9 мая - День Победы;\n12 июня - День России;\n4 ноября - День народного единства.\n..."
                    ]
                }
            ]
        },
        ...
        ...
        {
            "date": "2026-01-09",
            "type": {
                "id": 6,
                "name": "Дополнительный \/ перенесенный выходной день",
                "is_working": 0
            },
            "title": "Перенос с субботы 3 января",
            "working_hours": 0,
            "weekday": {
                "id": 5,
                "name": "Пятница",
                "short": "пт"
            },
            "is_project": false,
            "is_wsch": false,
            "documents": [
                {
                    "details_number": "1466",
                    "details_date": "2025-09-24",
                    "details_amending_number": null,
                    "details_amending_date": null,
                    "effective_date": null,
                    "to_revoke_number": null,
                    "to_revoke_date": null,
                    "name": "Постановление Правительства РФ",
                    "title": "О переносе выходных дней в 2026 году",
                    "reference": null,
                    "city": "Москва",
                    "signer_title": "Председатель Правительства Российской Федерации",
                    "signer_name": "М. Мишустин",
                    "sections": [
                        "В целях рационального использования работниками выходных и нерабочих праздничных дней Правительство Российской Федерации постановляет:\nПеренести в 2026 году следующие выходные дни:\nс субботы 3 января на пятницу 9 января;\nс воскресенья 4 января на четверг 31 декабря."
                    ]
                }
            ]
        },
        ...
        ...
        {
            "date": "2026-01-12",
            "type": {
                "id": 1,
                "name": "Рабочий день",
                "is_working": 1
            },
            "title": null,
            "working_hours": 8,
            "weekday": {
                "id": 1,
                "name": "Понедельник",
                "short": "пн"
            },
            "is_project": false,
            "is_wsch": false,
            "documents": null
        },
        ...
        ...
        {
            "date": "2026-03-08",
            "type": {
                "id": 3,
                "name": "Государственный праздник",
                "is_working": 0
            },
            "title": "Международный женский день",
            "working_hours": 0,
            "weekday": {
                "id": 7,
                "name": "Воскресенье",
                "short": "вс"
            },
            "is_project": false,
            "is_wsch": false,
            "documents": [
                {
                    "details_number": "197-ФЗ",
                    "details_date": "2001-12-30",
                    "details_amending_number": "35-Ф3",
                    "details_amending_date": "2012-04-23",
                    "effective_date": "2012-04-24",
                    "to_revoke_number": null,
                    "to_revoke_date": null,
                    "name": "Трудовой кодекс Российской Федерации",
                    "title": null,
                    "reference": "Статья 112",
                    "city": "Москва",
                    "signer_title": "Президент Российской Федерации",
                    "signer_name": "В. Путин",
                    "sections": [
                        "...\nСтатья 112. Нерабочие праздничные дни\nНерабочими праздничными днями в Российской Федерации являются:\n1, 2, 3, 4, 5, 6 и 8 января - Новогодние каникулы;\n7 января - Рождество Христово;\n23 февраля - День защитника Отечества;\n8 марта - Международный женский день;\n1 мая - Праздник Весны и Труда;\n9 мая - День Победы;\n12 июня - День России;\n4 ноября - День народного единства.\n..."
                    ]
                }
            ]
        },
        ...
        ...
        {
            "date": "2026-04-21",
            "type": {
                "id": 4,
                "name": "Региональный праздник",
                "is_working": 0
            },
            "title": "День поминовения усопших (Радоница)",
            "working_hours": 0,
            "weekday": {
                "id": 2,
                "name": "Вторник",
                "short": "вт"
            },
            "is_project": false,
            "is_wsch": false,
            "documents": [
                {
                    "details_number": "60-кз",
                    "details_date": "2016-06-23",
                    "details_amending_number": "19-К3",
                    "details_amending_date": "2022-03-04",
                    "effective_date": null,
                    "to_revoke_number": null,
                    "to_revoke_date": null,
                    "name": "Закон Ставропольского края",
                    "title": "Об объявлении в Ставропольском крае нерабочим (праздничным) днем Дня поминовения усопших (Радоницы)",
                    "reference": null,
                    "city": "Ставрополь",
                    "signer_title": "Губернатор Ставропольского края",
                    "signer_name": "В.В. Владимиров",
                    "sections": [
                        "Статья 1\nВ целях содействия сохранению традиций духовной культуры граждан и в соответствии с пунктом 7 статьи 4 Федерального закона от 26 сентября 1997 года N 125-ФЗ \"О свободе совести и о религиозных объединениях\" объявить в Ставропольском крае нерабочим (праздничным) днем День поминовения усопших (Радоницу) согласно приложению к настоящему Закону.\nПри совпадении выходного дня и Дня поминовения усопших (Радоницы) выходной день не переносится.\nСтатья 2\nНастоящий Закон вступает в силу с 1 января 2017 года.",
                        "Приложение к Закону Ставропольского края \"Об объявлении в Ставропольском крае нерабочим (праздничным) днем Дня поминовения усопших (Радоницы)\"",
                        "Дни поминовения усопших (Радоница), объявленные в Ставропольском крае нерабочими (праздничными) днями\n2017 - 25 апреля\n2018 - 17 апреля\n2019 - 7 мая\n2020 - 28 апреля\n2021 - 11 мая\n2022 - 3 мая\n2023 - 25 апреля\n2024 - 14 мая\n2025 - 29 апреля\n2026 - 21 апреля\n2027 - 11 мая\n2028 - 25 апреля\n2029 - 17 апреля\n2030 - 7 мая\n2031 - 22 апреля\n2032 - 11 мая\n2033 - 3 мая\n2034 - 18 апреля\n2035 - 8 мая\n2036 - 29 апреля\n2037 - 14 апреля\n2038 - 4 мая\n2039 - 26 апреля\n2040 - 15 мая\n2041 - 30 апреля\n2042 - 22 апреля\n2043 - 12 мая\n2044 - 3 мая\n2045 - 18 апреля\n2046 - 8 мая\n2047 - 30 апреля\n2048 - 14 апреля\n2049 - 4 мая"
                    ]
                }
            ]
        }
    ]
}
            

Основные свойства главного объекта (status, period, dt_start, dt_end, country, work_week) интуитивно понятны и не требуют отдельного описания.

Свойство days представляет собой массив объектов, которые описывают календарные сутки. Каждый элемент массива содержит объект со следующими свойствами:

  • type - определяют тип суток:
id Описание Рабочий день
1 Рабочий день 1
2 Выходной день 0
3 Государственный праздник 0
4 Региональный праздник 0
5 Предпраздничный сокращенный рабочий день 1
6 Дополнительный / перенесенный выходной день 0
  • title – официальное или общепринятое название события, приходящегося на указанную дату
  • working_hours – количество рабочих часов в данных сутках для 40-часовой рабочей недели;
  • weekday – информация о дне недели;
  • is_project – признак законопроекта или прогноза. Указывает, что перенос праздника или статус указанных суток носит предварительный характер и ожидает официального утверждения нормативно-правовым актом.
  • is_wsch - признак специфического выходного дня. Указывает, что день является нерабочим не для всех категорий населения (например только для государственных служащих) или имеет особый статус (например, "рекомендованный" выходной или нерабочий день). Позволяет более гибко настраивать расчет рабочего времени в зависимости от специфики организации.
  • documents – массив объектов с информацией о документах (или разделы документа), на основании которых предоставляются праздничные/выходные и прочие особые дни в календаре.

В массиве documents каждый объект содержит в себе следующие свойства:

  • details_number и details_date – Номер и дата основного нормативно-правового акта (НПА);
  • details_amending_number и details_amending_date – Номер и дата документа, вносящего поправки в основной НПА (если отсутствует – значит основной НПА без правок, или правки не имеют отношения к производственному календарю).;
  • effective_date – Дата вступления в силу основной НПА (если отсутствует значит дата вступления равна дате утверждения).;
  • to_revoke_number и to_revoke_date – Номер и дата документа, на основании которого основной НПА утратил силу (если отсутствует основной НПА - действующий).;
  • name – Название основного НПА.;
  • title – Заголовок основного НПА.;
  • city – Место издания документа — населённый пункт, указанный в реквизитах основного НПА.;
  • signer_title и signer_name – Должность и ФИО лица, подписавшего нормативный правовой акт.;
  • sections – Массив строк, которые содержит оригинальный текст документа, или необходимые разделы документа.

Свойство statistics отображает ряд статистических данных для задаваемого периода:

  • calendar_days – количество календарных дней в периоде;
  • calendar_days_without_holidays - количество календарных дней в периоде без учета праздничных дней (полезный показатель для расчета продолжительности отпуска работника);
  • work_days – количество рабочих дней в периоде;
  • weekends – количество выходных дней в периоде (без учета праздничных);
  • holidays – количество праздничных дней в периоде;
  • shortened_working_days – количество сокращенных рабочих дней в периоде;
  • working_hours – количество рабочего времени за период.

Формат XML имеет идентичную структуру и наименование параметров с форматом JSON и не требует отдельного описания.

Формат CSV адаптирован под русскоязычный MS Excel (кодировка windows-1251, разделитель точка с запятой (;)). Полученные данные с легкостью открываются в MS Excel без дополнительных преобразований. Строки, которые описывают производственный календарь начинаются с ключевого слова «Сутки», после идут значения, соответствующие параметрам date, type_id, type_text, week_day, working_hours описанные выше. Из-за ограниченных возможностей структуры csv, разделы documents недоступны для данного формата.

Глобальные переменные;Статус;ok
Глобальные переменные;Код страны;ru
Глобальные переменные;Страна;Российская Федерация
Глобальные переменные;Код региона;26
Глобальные переменные;Регион;Ставропольский край
Глобальные переменные;Начало периода;2026-01-01
Глобальные переменные;Конец периода;2026-12-31
Глобальные переменные;Тип рабочей недели;5-дневная рабочая неделя
Глобальные переменные;Период;год
Статистика;Календарных дней;365
Статистика;Календарных дней без праздничных;350
Статистика;Рабочих дней;246
Статистика;Выходных без праздничных;104
Статистика;Праздничные;15
Статистика;Сокращенные рабочие дни;5
Статистика;Рабочего времени;1963 Сутки;2026-01-01;3;Государственный праздник;чт;0;Новогодние каникулы
Сутки;2026-01-02;3;Государственный праздник;пт;0;Новогодние каникулы
Сутки;2026-01-03;3;Государственный праздник;сб;0;Новогодние каникулы
Сутки;2026-01-04;3;Государственный праздник;вс;0;Новогодние каникулы
Сутки;2026-01-05;3;Государственный праздник;пн;0;Новогодние каникулы
Сутки;2026-01-06;3;Государственный праздник;вт;0;Новогодние каникулы
Сутки;2026-01-07;3;Государственный праздник;ср;0;Рождество Христово
Сутки;2026-01-08;3;Государственный праздник;чт;0;Новогодние каникулы
Сутки;2026-01-09;6;Дополнительный / перенесенный выходной день;пт;0;Перенос с субботы 3 января
Сутки;2026-01-10;2;Выходной день;сб;0;
Сутки;2026-01-11;2;Выходной день;вс;0;
...
...

2. Получение списка регионов (regions)

Метод возвращает базовую информацию о региональных производственных календарях.

Request

GET
/{country}/regions
Копировать
Пример

Route-параметры

Название Тип Описание
{country} string Буквенный код страны. Актуально только для РФ (ru).

Query-параметры

Для данного метода поддерживаются следующие get-параметры:

  • format
  • date_format
  • unescapes
  • encoding
  • bom

Подробное описание этих параметров доступно в разделе query-параметры основного метода days.

Пример:

https://production-calendar.ru/v2/ru/regions?date_format=ru

Response

{
    "status": "ok",
    "country": {
        "code": "ru",
        "name": "Российская Федерация"
    },
    "regions": [
        {
            "id": 1,
            "name": "Республика Адыгея",
            "calendar_type": 2,
            "custom_first_at": "1995-05-10",
            "custom_last_at": "2031-10-06"
        },
        {
            "id": 2,
            "name": "Республика Башкортостан",
            "calendar_type": 2,
            "custom_first_at": "1992-04-03",
            "custom_last_at": "2031-10-13"
        },
        {
            "id": 3,
            "name": "Республика Бурятия",
            "calendar_type": 2,
            "custom_first_at": "2009-02-24",
            "custom_last_at": "2031-02-10"
        },
        {
            "id": 4,
            "name": "Республика Алтай",
            "calendar_type": 2,
            "custom_first_at": "1993-07-02",
            "custom_last_at": "2031-02-10"
        },
        {
            "id": 5,
            "name": "Республика Дагестан",
            "calendar_type": 2,
            "custom_first_at": "1991-04-15",
            "custom_last_at": "2031-09-15"
        },
        {
            "id": 6,
            "name": "Республика Ингушетия",
            "calendar_type": 2,
            "custom_first_at": "1995-05-10",
            "custom_last_at": "2031-04-02"
        }
        ...
        ...
    ]
}
            

Свойство regions представляет из себя массив объектов, которые описывают базовую информацию по регионам. Каждый элемент массива содержит объект со следующими свойствами:

  • id - идентификатор региона, используется для передачи в get-параметр region основного метода days
  • name - наименование региона
  • calendar_type - тип календаря, может принимать следующе значения:
  • id Описание
    1 Всегда совпадает с федеральным
    2 В отдельные годы календарь может отличаться от федерального
    3 Свой региональный календарь на регулярной основе
  • custom_first_at - дата начала когда календарь начал отличаться от федерального
  • custom_last_at - последняя дата когда в регионе фигурирует свой местный праздничный день отличный от федерального

3. Получение информации о начале и окончании рабочей недели (work-week)

Данный метод возвращает даты начала и окончания рабочей недели в которые входят указанные сутки.

Request

GET
/{country}/{day}/work-week
Копировать
Пример

Route-параметры

Название Тип Описание
{country} string Буквенный код страны.
{day} string Целевая дата в формате ISO (ГГГГ-ММ-ДД)

Query-параметры

Для данного метода поддерживаются следующие get-параметры:

  • region
  • week_type
  • wsch
  • token
  • format
  • date_format
  • unescapes
  • encoding
  • bom

Полное описание параметров смотри в разделе query-параметры основного метода days.

Примеры

https://production-calendar.ru/v2/ru/2022-03-06/work-week?week_type=6
https://production-calendar.ru/v2/ru/2022-03-06/work-week?region=24

Response

{
    "status": "ok",
    "country": {
        "code": "ru",
        "name": "Российская Федерация",
        "region": null
    },
    "work_week": {
        "id": 5,
        "name": "5-дневная рабочая неделя"
    },
    "work_week_start": "2026-03-02",
    "work_week_end": "2026-03-06"
}
            

Свойства work_week_start и work_week_end показывают даты начала и окончания рабочей недели.