Перейти к основному содержимому

WebApp календарь

API-методы для управления WebApp-календарём: создание и настройка календарей, работа с записями и проверка занятости.

Авторизация

Все запросы требуют API-ключа — см. Авторизация.


Настройки календаря​

Этот справочник полей используют методы Создание календаря и Изменение календаря — оба принимают один и тот же набор настроек.

Основные параметры​

ПолеТипОписание
namestringНазвание календаря.
singledatebooleanВыбор одной даты для записи.
settimebooleanВозможность выбора времени.
setdateinfinitebooleanНесколько записей на одну дату.
settimeinfinitebooleanНесколько записей на одно время.
maxperslotnumber | stringМаксимум записей на одно время.
endbuffernumber | stringВремя в минутах от последней доступной записи до конца рабочего дня.
tokenstringТокен бота для кнопки запуска приложения через меню.

Объект text — подписи интерфейса​

ПолеЗначение по умолчанию
finish«Готово»
headersingle«Выберите дату»
headerintfirst«Выберите дату начала»
headerintsecond«Выберите дату окончания»
headertime«Выберите время»
dateerror«Эта дата недоступна»
btnintfirst«Подтвердить дату»
btnintsecond«Подтвердить дату»
btnsingle«Подтвердить дату»

Объекты цветов​

ОбъектПоляНазначение
btnbgr, textЦвет кнопок и текста на них (HEX).
backbtnbgr, textЦвет кнопки возврата к боту (HEX).
themecolorsbgr, text, elem, elemtext, dateЦвета темы приложения (HEX).

Объект workingtime — график работы​

Массив объектов вида:

{
"days": ["пн", "вт", "ср", "чт", "пт"],
"time": [
{ "hour": "09", "minute": "00" },
{ "hour": "10", "minute": "00" },
{ "hour": "11", "minute": "00" }
]
}
  • days — массив дней недели: пн, вт, ср, чт, пт, сб, вс.
  • time — массив времён для записи (часы и минуты в формате "чч" / "мм").

Пример настроек​

{
"name": "Запись на услуги",
"singledate": true,
"settime": true,
"maxperslot": 1,
"endbuffer": 30,
"btn": { "bgr": "#1677FF", "text": "#FFFFFF" },
"backbtn": { "bgr": "#3A3B43", "text": "#FFFFFF" },
"themecolors": {
"bgr": "#3A3B43",
"text": "#FFFFFF",
"elem": "#1677FF",
"elemtext": "#444",
"date": "#1677FF"
},
"workingtime": [
{
"days": ["пн", "вт", "ср", "чт", "пт"],
"time": [
{ "hour": "09", "minute": "00" },
{ "hour": "10", "minute": "00" }
]
}
]
}

Управление календарём​

Создать календарь​

ПараметрЗначение
МетодPOST
Endpoint/calendar/add

Параметры запроса: обязательно name + любые настройки календаря.

Ответ​

{
"name": "Запись на услуги",
"id": 42,
"url": "https://...",
"result": "calendar created"
}
ПолеТипОписание
namestringНазвание созданного календаря.
idnumberID календаря в БД.
urlstringURL WebApp-приложения.
resultstringСообщение о результате.

Изменить календарь​

ПараметрЗначение
МетодPOST
Endpoint/calendar/edit

Параметры запроса: обязательно id (ID календаря) + любые настройки календаря для обновления.

Ответ​

{
"name": "Запись на услуги",
"id": 42,
"url": "https://...",
"result": "calendar changed"
}

Удалить WebApp-приложение​

ПараметрЗначение
МетодGET, POST
Endpoint/webapp/delete
ПолеТипОбязательныйОписание
idnumber | stringДаID приложения.
Операция необратима

Удаляется само приложение со всеми записями и настройками. Перед вызовом убедитесь, что выбран нужный ID.

Ответ​

{
"result": "deleted"
}

Работа с записями​

Добавить запись​

ПараметрЗначение
МетодGET, POST
Endpoint/calendar/event/add

Параметры запроса​

ПолеТипОбязательныйОписание
webappidnumber | stringДаID приложения календаря.
date1date | stringДаНачальная дата в формате дд.мм.гггг или в формате Date.
date2date | stringНетДата окончания — для записей с диапазоном дат.
dateformatstringНетФормат date1 и date2: date или string (по умолчанию string).
timestringНетВремя записи в формате чч:мм.
singledatebooleanНетОдиночная дата записи.
settimebooleanНетЗапись со временем.
durationstringНетДлительность услуги в минутах.
eventstringНетНазвание события.
eventinfostringНетОписание события.
notifymesstringНетСообщение для уведомления клиента.
notifyminstringНетВремя первого уведомления в минутах до события.
notifymin2stringНетВремя второго уведомления в минутах.
notifymin3stringНетВремя третьего уведомления в минутах.
clientidnumber | stringНетClientID подписчика.
botidnumber | stringНетBotID бота.

Ответ​

{
"id": 1001
}
ПолеТипОписание
idnumberID записи в БД.

Получить записи приложения​

ПараметрЗначение
МетодGET, POST
Endpoint/calendar/schedule/get
ПолеТипОбязательныйОписание
webappidnumber | stringДаID приложения календаря.
date1stringДаДата начала диапазона в формате дд.мм.гггг.
date2stringНетДата конца диапазона в формате дд.мм.гггг.

Ответ​

{
"result": [
{
"id": 1001,
"date1": "15.06.2026",
"date2": "",
"time": "10:00",
"info": "...",
"data": "..."
}
]
}
ПолеТипОписание
resultarray of objectМассив записей. Каждый элемент содержит id, date1, date2, time, info, data.

Удалить запись по ID​

ПараметрЗначение
МетодGET, POST
Endpoint/calendar/schedule/delete
ПолеТипОбязательныйОписание
idnumber | stringДаID записи.

Ответ​

{
"result": "deleted"
}

Проверить занятость​

ПараметрЗначение
МетодGET, POST
Endpoint/calendar/check/busy
ПолеТипОбязательныйОписание
webappidnumber | stringДаID приложения календаря.
datestringДаДата в формате дд.мм.гггг.
timestringНетВремя записи в формате чч:мм.

Ответ​

{
"busy": "true",
"busyalt": "1",
"count": "3"
}
ПолеТипОписание
busystring"true" — дата/время занята, "false" — свободна.
busyaltstring"1" — занята, "0" — свободна. Удобно для прямого сравнения.
countstringКоличество записей на текущий момент.