КейсКомпонент сайта · календарь брони

Календарь брони, который отвечает «свободно ли» без переписки

Гость видит занятость и итоговую сумму сам, а заявка приходит уже с датами — вместо вопроса «а на выходные свободно?».

Заказчик
Собственная разработка
Роль
Модель дат, расчёт, интерфейс, вёрстка
Период
2026
Статус
Работает, встраивается под задачу
Календарь брони · демонстрация

свободно занято ваши даты

Попробуйте: выберите объект, заезд и отъезд — занятые сутки закрыты, а смета пересчитается сразу. рабочий компонент, а не снимок
3 действия от «свободно ли» до заявки с датами и суммой
0 переписки занятость видна до первого вопроса менеджеру
1 источник календарь заказчика остаётся единственным местом учёта

Задача

Сайт загородного комплекса, гостевого дома или бани отвечает на всё, кроме главного. Фотографии есть, вместимость есть, цена есть — а вопрос «свободно ли у вас с пятницы по воскресенье» всё равно уходит в мессенджер и ждёт менеджера.

Цена этого вопроса выше, чем кажется. Гость спрашивает не в одном месте, а в трёх сразу, и бронирует там, где ответили первыми. Ночью и в выходные — то есть тогда, когда как раз и выбирают, — не отвечает никто.

Второй разговор — про деньги. Сутки умножить на ночи умножить на гостей, плюс баня, плюс завтраки: гость считает это в голове, ошибается и приходит с суммой, которую менеджеру приходится опровергать. Разговор начинается с разочарования.

Что сделано

Занятость видна сразу. Занятые сутки закрыты в календаре и не выбираются — это тот же принцип, что и в калькуляторе: ответ показывается до обмена на контакты, а не после.

Диапазон не пролезает через чужую бронь. Выбор заезда и отъезда проверяет весь промежуток: если внутри есть занятые сутки, выбор начинается заново с новой даты. Гость физически не может составить невозможную бронь и получить отказ уже после заявки.

День отъезда — не ночь. Ночуют в сутки от заезда до отъезда, не включая последние: день, когда гость уезжает утром, свободен для того, кто заезжает вечером. Календарь считает именно так — иначе на стыке броней исчезают свободные сутки, которых на деле полно.

Сумма собирается на глазах. Ставка за сутки, число ночей, гости, допуслуги с разными единицами: за визит, за сутки, за человека в сутки. Смета показана строками, а не одним числом, — чтобы было видно, из чего она сложилась и что можно убрать.

У каждого объекта своя жизнь. Занятость, ставка и вместимость привязаны к объекту, а не к сайту: переключение объекта меняет и календарь, и предел числа гостей.

Источник занятости — там, где учёт уже ведётся. Календарь на сайте ничего не хранит: он показывает то, что заказчик и так ведёт — Google-календарь, таблицу, лист в облаке или собственную систему. Второе место учёта — это гарантированные расхождения, и лечится это тем, что второго места нет.

Ограничение, которое стоит понимать

Календарь на сайте показывает занятость, но не резервирует её. Между «гость выбрал даты» и «менеджер подтвердил» есть зазор, и в этом зазоре теоретически возможны две заявки на одни сутки. Закрывается это подтверждением, а не интерфейсом: заявка попадает в календарь со статусом «ожидает», а не сразу как бронь.

Это честная цена простоты. Настоящий замок с блокировкой дат — уже не компонент, а система бронирования с оплатой, и её стоит делать тогда, когда поток заявок начинает этого стоить.

Результат

Гость приходит с датами и суммой. Менеджер не отвечает на «а свободно ли» и не пересчитывает вслух: первый разговор начинается с подтверждения, а не с выяснения.

Отдельная польза — ночью. Компонент отвечает в те часы, когда людям удобно выбирать и когда не отвечает никто из конкурентов.

Что дальше

Двусторонняя связка с Google-календарём и Авито, чтобы подтверждённая бронь закрывала даты во всех местах сразу, и предоплата ссылкой — момент, после которого бронь перестаёт быть намерением.

Следующий шаг

Расскажите, что нужно сделать

Напишите в Telegram пару предложений о задаче: что за бизнес, что должно получиться и что уже пробовали. В ответ — понятный план и цена. Без брифов на десять страниц.

© Антон Ложкин Проекты под NDA в подборку не входят.