Tilda · 6 мин чтения

Календарь записи клиентов на Тильде: брони и слоты

Календарь записи клиентов на Тильде - штука, которую сама платформа не даёт из коробки. Есть формы обратной связи, есть онлайн-чат, но модуля с сеткой свободных слотов, блокировкой занятого времени и напоминаниями клиенту в базовой комплектации нет. За несколько лет работы с Tilda-проектами я собирал такие календари разными способами: от готовых виджетов бронирования до кастомных скриптов с отдельным бэкендом. В статье разберу, какой вариант когда выбрать, что реально ломается на практике при росте нагрузки и сколько стоит каждый из подходов.

Почему у Тильды нет встроенного календаря записи

Тильда - конструктор лендингов и интернет-магазинов, а не платформа для управления расписанием. У неё отличный редактор блоков, но нет базы данных для хранения занятых слотов, нет логики блокировки времени при одновременной записи двух клиентов и нет своего механизма напоминаний. Форма на Тильде умеет только отправить заявку на почту или в 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.

Есть задача?

Обсудим в мессенджере

Расскажите, что нужно сделать — отвечу в течение 4 часов в рабочее время. Первая консультация бесплатно.

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов куки) с использованием Yandex.Metrika.
Понятно