Календарь брони, который отвечает «свободно ли» без переписки
Гость видит занятость и итоговую сумму сам, а заявка приходит уже с датами — вместо вопроса «а на выходные свободно?».
свободно занято ваши даты
Задача
Сайт загородного комплекса, гостевого дома или бани отвечает на всё, кроме главного. Фотографии есть, вместимость есть, цена есть — а вопрос «свободно ли у вас с пятницы по воскресенье» всё равно уходит в мессенджер и ждёт менеджера.
Цена этого вопроса выше, чем кажется. Гость спрашивает не в одном месте, а в трёх сразу, и бронирует там, где ответили первыми. Ночью и в выходные — то есть тогда, когда как раз и выбирают, — не отвечает никто.
Второй разговор — про деньги. Сутки умножить на ночи умножить на гостей, плюс баня, плюс завтраки: гость считает это в голове, ошибается и приходит с суммой, которую менеджеру приходится опровергать. Разговор начинается с разочарования.
Что сделано
Занятость видна сразу. Занятые сутки закрыты в календаре и не выбираются — это тот же принцип, что и в калькуляторе: ответ показывается до обмена на контакты, а не после.
Диапазон не пролезает через чужую бронь. Выбор заезда и отъезда проверяет весь промежуток: если внутри есть занятые сутки, выбор начинается заново с новой даты. Гость физически не может составить невозможную бронь и получить отказ уже после заявки.
День отъезда — не ночь. Ночуют в сутки от заезда до отъезда, не включая последние: день, когда гость уезжает утром, свободен для того, кто заезжает вечером. Календарь считает именно так — иначе на стыке броней исчезают свободные сутки, которых на деле полно.
Сумма собирается на глазах. Ставка за сутки, число ночей, гости, допуслуги с разными единицами: за визит, за сутки, за человека в сутки. Смета показана строками, а не одним числом, — чтобы было видно, из чего она сложилась и что можно убрать.
У каждого объекта своя жизнь. Занятость, ставка и вместимость привязаны к объекту, а не к сайту: переключение объекта меняет и календарь, и предел числа гостей.
Источник занятости — там, где учёт уже ведётся. Календарь на сайте ничего не хранит: он показывает то, что заказчик и так ведёт — Google-календарь, таблицу, лист в облаке или собственную систему. Второе место учёта — это гарантированные расхождения, и лечится это тем, что второго места нет.
Ограничение, которое стоит понимать
Календарь на сайте показывает занятость, но не резервирует её. Между «гость выбрал даты» и «менеджер подтвердил» есть зазор, и в этом зазоре теоретически возможны две заявки на одни сутки. Закрывается это подтверждением, а не интерфейсом: заявка попадает в календарь со статусом «ожидает», а не сразу как бронь.
Это честная цена простоты. Настоящий замок с блокировкой дат — уже не компонент, а система бронирования с оплатой, и её стоит делать тогда, когда поток заявок начинает этого стоить.
Результат
Гость приходит с датами и суммой. Менеджер не отвечает на «а свободно ли» и не пересчитывает вслух: первый разговор начинается с подтверждения, а не с выяснения.
Отдельная польза — ночью. Компонент отвечает в те часы, когда людям удобно выбирать и когда не отвечает никто из конкурентов.
Что дальше
Двусторонняя связка с Google-календарём и Авито, чтобы подтверждённая бронь закрывала даты во всех местах сразу, и предоплата ссылкой — момент, после которого бронь перестаёт быть намерением.
Расскажите, что нужно сделать
Напишите в Telegram пару предложений о задаче: что за бизнес, что должно получиться и что уже пробовали. В ответ — понятный план и цена. Без брифов на десять страниц.