WebApp календарь
API-методы для управления WebApp-календарём: создание и настройка календарей, работа с записями и проверка занятости.
Авторизация
Все запросы требуют API-ключа — см. Авторизация.
Настройки календаря
Этот справочник полей используют методы Создание календаря и Изменение календаря — оба принимают один и тот же набор настроек.
Основные параметры
| Поле | Тип | Описание |
|---|---|---|
name | string | Название календаря. |
singledate | boolean | Выбор одной даты для записи. |
settime | boolean | Возможность выбора времени. |
setdateinfinite | boolean | Несколько записей на одну дату. |
settimeinfinite | boolean | Несколько записей на одно время. |
maxperslot | number | string | Максимум записей на одно время. |
endbuffer | number | string | Время в минутах от последней доступной записи до конца рабочего дня. |
token | string | Токен бота для кнопки запуска приложения через меню. |
Объект text — подписи интерфейса
| Поле | Значение по умолчанию |
|---|---|
finish | «Готово» |
headersingle | «Выберите дату» |
headerintfirst | «Выберите дату начала» |
headerintsecond | «Выберите дату окончания» |
headertime | «Выберите время» |
dateerror | «Эта дата недоступна» |
btnintfirst | «Подтвердить дату» |
btnintsecond | «Подтвердить дату» |
btnsingle | «Подтвердить дату» |
Объекты цветов
| Объект | Поля | Назначение |
|---|---|---|
btn | bgr, text | Цвет кнопок и текста на них (HEX). |
backbtn | bgr, text | Цвет кнопки возврата к боту (HEX). |
themecolors | bgr, 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"
}
| Поле | Тип | Описание |
|---|---|---|
name | string | Название созданного календаря. |
id | number | ID календаря в БД. |
url | string | URL WebApp-приложения. |
result | string | Сообщение о результате. |
Изменить календарь
| Параметр | Значение |
|---|---|
| Метод | POST |
| Endpoint | /calendar/edit |
Параметры запроса: обязательно id (ID календаря) + любые настройки календаря для обновления.
Ответ
{
"name": "Запись на услуги",
"id": 42,
"url": "https://...",
"result": "calendar changed"
}
Удалить WebApp-приложение
| Параметр | Значение |
|---|---|
| Метод | GET, POST |
| Endpoint | /webapp/delete |
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
id | number | string | Да | ID приложения. |
Операция необратима
Удаляется само приложение со всеми записями и настройками. Перед вызовом убедитесь, что выбран нужный ID.
Ответ
{
"result": "deleted"
}
Работа с записями
Добавить запись
| Параметр | Значение |
|---|---|
| Метод | GET, POST |
| Endpoint | /calendar/event/add |
Параметры запроса
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
webappid | number | string | Да | ID приложения календаря. |
date1 | date | string | Да | Начальная дата в формате дд.мм.гггг или в формате Date. |
date2 | date | string | Нет | Дата окончания — для записей с диапазоном дат. |
dateformat | string | Нет | Формат date1 и date2: date или string (по умолчанию string). |
time | string | Нет | Время записи в формате чч:мм. |
singledate | boolean | Нет | Одиночная дата записи. |
settime | boolean | Нет | Запись со временем. |
duration | string | Нет | Длительность услуги в минутах. |
event | string | Нет | Название события. |
eventinfo | string | Нет | Описание события. |
notifymes | string | Нет | Сообщение для уведомления клиента. |
notifymin | string | Нет | Время первого уведомления в минутах до события. |
notifymin2 | string | Нет | Время второго уведомления в минутах. |
notifymin3 | string | Нет | Время третьего уведомления в минутах. |
clientid | number | string | Нет | ClientID подписчика. |
botid | number | string | Нет | BotID бота. |
Ответ
{
"id": 1001
}
| Поле | Тип | Описание |
|---|---|---|
id | number | ID записи в БД. |
Получить записи приложения
| Параметр | Значение |
|---|---|
| Метод | GET, POST |
| Endpoint | /calendar/schedule/get |
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
webappid | number | string | Да | ID приложения календаря. |
date1 | string | Да | Дата начала диапазона в формате дд.мм.гггг. |
date2 | string | Нет | Дата конца диапазона в формате дд.мм.гггг. |
Ответ
{
"result": [
{
"id": 1001,
"date1": "15.06.2026",
"date2": "",
"time": "10:00",
"info": "...",
"data": "..."
}
]
}
| Поле | Тип | Описание |
|---|---|---|
result | array of object | Массив записей. Каждый элемент содержит id, date1, date2, time, info, data. |
Удалить запись по ID
| Параметр | Значение |
|---|---|
| Метод | GET, POST |
| Endpoint | /calendar/schedule/delete |
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
id | number | string | Да | ID записи. |
Ответ
{
"result": "deleted"
}
Проверить занятость
| Параметр | Значение |
|---|---|
| Метод | GET, POST |
| Endpoint | /calendar/check/busy |
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
webappid | number | string | Да | ID приложения календаря. |
date | string | Да | Дата в формате дд.мм.гггг. |
time | string | Нет | Время записи в формате чч:мм. |
Ответ
{
"busy": "true",
"busyalt": "1",
"count": "3"
}
| Поле | Тип | Описание |
|---|---|---|
busy | string | "true" — дата/время занята, "false" — свободна. |
busyalt | string | "1" — занята, "0" — свободна. Удобно для прямого сравнения. |
count | string | Количество записей на текущий момент. |