Календарь записи клиентов на Тильде - штука, которую сама платформа не даёт из коробки. Есть формы обратной связи, есть онлайн-чат, но модуля с сеткой свободных слотов, блокировкой занятого времени и напоминаниями клиенту в базовой комплектации нет. За несколько лет работы с Tilda-проектами я собирал такие календари разными способами: от готовых виджетов бронирования до кастомных скриптов с отдельным бэкендом. В статье разберу, какой вариант когда выбрать, что реально ломается на практике при росте нагрузки и сколько стоит каждый из подходов.
По теме статьи
Готовое решение
Автоматическая конвертация валюты на Tilda
Цены товаров в нужной валюте по актуальному курсу ЦБ — автоматически и в реальном времени.
от6 000 ₽
Кастомный скрипт
Когда стандартных блоков не хватает
Доработка сайтов на Тильде: скрипты для корзины, промокоды, зоны доставки, интеграции с CRM и Telegram. Простой скрипт от 3 000
от3 000 ₽
Почему у Тильды нет встроенного календаря записи
Тильда - конструктор лендингов и интернет-магазинов, а не платформа для управления расписанием. У неё отличный редактор блоков, но нет базы данных для хранения занятых слотов, нет логики блокировки времени при одновременной записи двух клиентов и нет своего механизма напоминаний. Форма на Тильде умеет только отправить заявку на почту или в CRM - дальше администратор вручную смотрит, свободно ли время, и подтверждает запись в переписке. Для салона с одним мастером это терпимо, для студии с пятью специалистами и записью на неделю вперёд превращается в постоянные накладки и двойные брони.
Поэтому календарь записи собирают либо через стороннее решение, встроенное в Тильду через код-блок, либо через собственный скрипт с отдельным хранилищем данных. Оба варианта рабочие, разница в гибкости, цене и в том, кто отвечает за техническую часть.
Готовые сервисы бронирования: YCLIENTS, DIKIDI и аналоги
Для салонов красоты, стоматологий, фитнес-студий и репетиторов проще всего подключить готовый сервис записи и встроить его виджет в Тильду через блок HTML или Zero Block. Такие сервисы уже решили задачу конфликтов слотов, напоминаний по SMS и работы администратора с расписанием на своей стороне - вам остаётся только настроить внешний вид виджета под дизайн сайта.
| Сервис | Для кого подходит | Как подключается к Тильде |
|---|---|---|
| YCLIENTS | Салоны красоты, барбершопы, студии с несколькими мастерами | Виджет записи через код-блок или кнопка с редиректом на форму |
| DIKIDI Business | Небольшие студии, мастера-одиночки, репетиторы | Встроенный виджет или ссылка на публичную страницу записи |
| Calendly | Консультации, встречи, демо-звонки B2B | Iframe-виджет с выбором слота, встраивается в Zero Block |
Платные тарифы у этих сервисов начинаются в среднем от 1000-1500 ₽ в месяц и растут в зависимости от числа сотрудников и филиалов - это рыночные цены самих сервисов, а не моя услуга, я их не выставляю и не гарантирую. Минус такого подхода в том, что вы попадаете в зависимость от чужого интерфейса: клиент уходит с сайта во внешний виджет, а если у сервиса меняется API или верстка, виджет может поехать без предупреждения. На практике я видел, как обновление DIKIDI ломало высоту iframe на мобильной версии сайта - пришлось руками добавлять скрипт пересчёта высоты.
Кастомный виджет календаря на Zero Block
Если готовый сервис не подходит по логике бизнеса - например, нужна запись на групповое занятие с ограничением мест или бронь переговорной с привязкой к конкретному оборудованию - собираю календарь с нуля. Схема простая: на Tilda через Zero Block верстается сетка дат и времени, а данные о занятости хранятся на отдельном бэкенде, к которому виджет обращается через fetch.
async function loadSlots(dateStr) {
const res = await fetch(`https://api.example.ru/slots?date=${dateStr}`);
const slots = await res.json();
const wrap = document.querySelector('.slots-grid');
wrap.innerHTML = slots
.map(s => ``)
.join('');
}
Бэкенд обычно поднимаю на Python с базой Postgres или SQLite для небольших проектов - вся логика занятости и блокировки слота на время оплаты живёт там, а не в браузере клиента. Такой подход даёт полный контроль над дизайном и поведением календаря, но требует отдельного хостинга и техподдержки скрипта, в отличие от коробочного сервиса. Если нужна именно разработка кастомного скрипта для Tilda под конкретную логику записи, такую задачу решаю индивидуально под структуру расписания клиента.
Бесплатный материал
🎁 Полезный скрипт в подарок
Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.
Без спама. Отписка в 1 клик.
Как избежать двойных броней и рассинхрона слотов
Самая частая проблема любого календаря записи - гонка запросов: два клиента одновременно открывают сайт, видят один и тот же свободный слот и оба жмут «записаться». Без правильной обработки на бэкенде оба запроса пройдут, и на месте окажется два человека вместо одного.
На практике решаю это тремя способами:
- Резервирование слота на короткое время (обычно 10-15 минут) сразу при выборе даты, до подтверждения оплаты или заявки
- Проверка занятости на уровне транзакции в базе данных, а не в JavaScript на клиенте - клиентский код можно обмануть, база данных нет
- Синхронизация с внешним календарём администратора (Google Calendar или Яндекс Календарь) через API, чтобы офлайн-запись по телефону тоже блокировала слот на сайте
Если запись платная и требует предоплаты, добавляю приём депозита через эквайринг T‑Bank прямо на этапе бронирования - это отсекает случайные заявки и почти полностью убирает неявки, потому что клиент уже вложил деньги в конкретное время.
Уведомления клиенту и администратору через Telegram-бота
SMS-напоминания стоят денег за каждое сообщение и часто теряются среди спама, поэтому для уведомлений всё чаще ставлю Telegram-бота на aiogram. Схема такая: после успешной записи бэкенд отправляет сообщение клиенту с датой, временем и адресом, а администратору - в отдельный чат с кнопками «подтвердить» и «отменить».
Бот параллельно решает вторую задачу - за час до визита отправляет напоминание с возможностью отменить запись одной кнопкой, что снижает количество неявок заметнее, чем просто e‑mail-рассылка. Для салона на 15-20 записей в день такой бот окупает разработку за первый же месяц счёт сокращения пустых слотов.
Автоматизация в n8n: связка календаря, CRM и напоминаний
Когда заявок становится много и вручную переносить их из формы Тильды в CRM неудобно, между сайтом и внутренними системами ставлю n8n. Вебхук с Тильды приходит в n8n, дальше сценарий раскладывает данные по нужным сервисам: карточка клиента уходит в amoCRM или Bitrix24, уведомление - в Telegram-бота, а событие записи - в общий календарь администратора.
Плюс такой связки в том, что n8n работает как единая точка логики: если завтра поменяется CRM или добавится новый канал уведомлений, переделывать нужно один сценарий, а не код на стороне сайта. Контакты клиентов при этом храню на серверах в РФ, без выгрузки персональных данных в иностранные облачные таблицы - это требование 152-ФЗ, а не моя прихоть.
Сколько стоит подключить календарь записи на Тильде
Цена зависит от того, встраиваете вы готовый сервис или собираете логику с нуля.
| Задача | Стоимость |
|---|---|
| Встройка готового виджета (YCLIENTS, DIKIDI, Calendly) в дизайн сайта | от 3 000 ₽ |
| Кастомный календарь с бэкендом, защитой от двойных броней и оплатой | от 40 000 ₽ |
| Telegram-бот для уведомлений клиенту и администратору | от 30 000 ₽ |
| Автоматизация связки сайт - CRM - напоминания в n8n | от 25 000 ₽ |
Подписки самих сервисов бронирования (YCLIENTS, DIKIDI и аналогов) в эту сумму не входят и оплачиваются клиентом напрямую в личном кабинете сервиса по их собственным тарифам.
Частые вопросы
Можно ли обойтись стандартной формой Тильды без календаря
Можно, если записей мало и администратор успевает вручную сверять время по переписке или звонку. Как только записей становится больше 5-7 в день или работает несколько специалистов одновременно, ручная сверка начинает давать сбои и появляются двойные брони.
Сколько времени занимает подключение готового виджета бронирования
Встройка готового сервиса вроде YCLIENTS или DIKIDI в существующий дизайн обычно занимает 1-2 дня, включая настройку внешнего вида под фирменный стиль. Кастомный календарь с отдельным бэкендом делаю дольше, в среднем 1-2 недели, в зависимости от сложности логики броней.
Что делать, если клиенты жалуются на исчезающие слоты после оплаты
Это почти всегда следствие проверки занятости на стороне браузера вместо базы данных - между показом слота и подтверждением проходит время, за которое его успевает занять кто-то ещё. Решение - переносить проверку и резервирование слота на бэкенд с транзакционной блокировкой записи.
Нужна ли отдельная база данных для календаря или хватит гугл-таблицы
Для пары записей в неделю таблица подойдёт, но при регулярном потоке заявок она не выдерживает параллельных обращений и не защищает от двойной записи в момент одновременного бронирования. Для рабочего календаря нужна нормальная база с транзакциями, будь то Postgres, SQLite или связка с CRM.