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

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Количество записей на текущий момент.