# Онлайн запись клиентов на сайте: как собрать свою форму в 2026

> Как владелец массажного кабинета собрал форму записи со свободным временем, отдельным окном первого визита и уведомлениями. Внутри пошаговая схема и готовые промпты.

Источник: https://vibeceh.ru/cases/zapis-klientov-na-sajte
Автор: Сергей Мазур · опубликовано 2026-08-19

В этой схеме календарь учитывает разную длительность первого и повторного визита, а список напоминаний не дает держать все сообщения в голове. Ниже показано, как на этой основе собрать онлайн запись для клиентов на сайте с формой, журналом и уведомлениями, проверяя каждый новый компонент отдельно.

![Форма онлайн записи клиентов с выбором даты и времени](https://images.unsplash.com/photo-1497366754035-f200968a6e72?auto=format&fit=crop&w=1600&q=80)

![Рабочее место для онлайн записи клиентов](https://images.unsplash.com/photo-1517245386807-bb43f82c33c4?auto=format&fit=crop&w=1600&q=80)

Делюсь этой схемой с удовольствием. Ниже пошаговая инструкция: восемь шагов, к каждому готовый промпт. Копируй текст, описывай свою работу и собирай решение под себя. Тот же принцип можно адаптировать для других услуг, но их расписание, поля и требования к данным нужно проверить отдельно.

А началось всё с постоянной перестановки записей.

Я работаю по предварительной записи и сам совмещаю процедуру с перепиской и организацией дня. Утром проверяю календарь. В течение дня отвечаю на сообщения, уточняю, какая процедура нужна, подбираю длительность, переставляю записи и напоминаю о визите.

С повторным клиентом обычно всё проще. Он уже знает, чего хочет, и его запись занимает стандартное окно. С первым визитом иначе. Нужно уточнить запрос, подготовить место и оставить время на короткий опрос. Если поставить его в такое же окно, как повторную процедуру, весь день начинает ехать.

Именно это правило я долго держал в голове вместо того, чтобы вынести его в запись. Клиент спрашивал о времени, я открывал календарь, вспоминал длительность процедуры, проверял соседние записи и только потом отвечал. Иногда человек ждал, пока я освобожусь между процедурами. Иногда мы несколько раз меняли время.

Первый результат оказался очень будничным. В календаре появились две кнопки: «первый визит» и «повторный клиент». Под каждой своя длительность. Вместе с этим появился список напоминаний, чтобы я не держал все сообщения в голове.

Я перестал впихивать первый прием в короткое окно и потом сдвигать весь день. Запись осталась простой, но теперь учитывает, как реально проходит моя работа.

## Что стало вместо переписки и звонков?

Онлайн запись для клиентов можно собирать поэтапно. Сначала добейся, чтобы форма показывала свободные окна и календарь сохранял выбранное время. Затем добавь журнал в Google Таблице, до публикации определи применимое основание обработки для своей модели и только после проверки сохранения подключай уведомления владельцу и клиенту.

![Кот одобряет форму с выбором первого визита, повторного клиента и свободных интервалов.](https://s3.regru.cloud/crossmark/statejnik/images/guides/zapis-klientov-na-sajte/kadr-1.webp)

Я не убирал общение полностью. Если человек спрашивает о противопоказаниях, переносе или формате процедуры, я отвечаю сам. Но обычный вопрос «когда можно прийти?» больше не требует отдельного диалога.

На странице записи сначала выбирают процедуру. Следом указывают, это первый визит или повторный. После этого форма показывает свободные интервалы. Перед отправкой формы размести ссылку на политику обработки персональных данных. До публикации определи применимое основание обработки для своей модели; если для этой цели требуется согласие, добавь отдельный чекбокс согласия на обработку данных и зафиксируй его текст, дату и способ получения. Согласие на рекламную рассылку не смешивай с согласием для записи, а способ его получения и хранения проверь по применимым требованиям и зафиксируй отдельно. Для повторного клиента доступно стандартное окно. Для первого визита календарь ищет более длинный промежуток.

Это важная мелочь. Если человек впервые пришел на процедуру, мне не приходится начинать разговор с того, что свободное время уже закончилось из-за слишком короткого окна. Правило работает до того, как запись попала в мой день.

В полной реализации заявку можно сохранять в журнале с датой и временем, контактами, процедурой, комментарием, статусом и идентификатором события. Календарь показывает занятый интервал, а письма и Telegram можно подключить как отдельный слой уведомлений после проверки основной записи.

Я специально не добавлял личный кабинет, сложную базу клиентов и десятки полей. Для моей рутины важнее быстро выбрать процедуру, увидеть свободное время и не создать две записи на один интервал.

## Как выбрать программу для записи клиентов по времени бесплатно?

Запрос «программа для записи клиентов по времени бесплатно» обычно означает поиск готового сервиса без ежемесячной платы. Сначала сравни готовые варианты с собственной сборкой по правилам первого визита, уведомлениям и ответственности за проверку. Своя запись нужна не только ради экономии: в готовом сервисе приходится работать по уже заданным правилам и ждать, если нужного сценария нет. В своей системе правило первого визита можно добавить под текущую рутину: отдельная кнопка, отдельная длительность и отдельная проверка свободного окна.

Если тебе нужна программа для записи клиентов по времени бесплатно, сначала сравни готовые сервисы по тарифу, числу сотрудников, уведомлениям и ограничениям. Такой сервис выигрывает на старте: там уже есть интерфейс, настройки и поддержка. Если стандартной записи достаточно, это разумный путь.

Но у небольшого дела часто есть одна особенность, ради которой вся схема и нужна. Для меня это разная длительность первого и повторного визита. У другого владельца может быть обязательная пауза между процедурами, отдельное время на подготовку кабинета или запрет на запись в определенные интервалы.

В покупном сервисе такое правило либо уже предусмотрено, либо его приходится искать в настройках. Иногда оно доступно только на другом тарифе. Иногда надо писать в поддержку и ждать, пока станет понятно, можно ли вообще так сделать.

В своей сборке я описываю правило обычными словами. Помощник задает вопросы, уточняет, где оно применяется, и меняет нужную часть проекта. Я не обещаю, что результат всегда получается с первого раза. Его всё равно надо проверить на телефоне, в календаре и в журнале заявок.

Для меня важна возможность быстро менять правило первого визита без ожидания поддержки, а не внешний вид формы.

При этом своя запись не бесплатна в полном смысле. При выбранной платной модели помощника подписка становится регулярным расходом. Я сам проверяю ошибки, доступы, уведомления и согласия. Если нет готовности иногда разбираться с такими вещами, сервис может оказаться спокойнее.

## Из чего состоит форма записи на сайт?

форма записи на сайт состоит из страницы, серверной части, календаря занятых интервалов, таблицы заявок и уведомлений. Страница принимает выбор процедуры и контакты, Apps Script обрабатывает заявку, Google Calendar проверяет окно, Google Таблицы хранят журнал, а почта и Telegram сообщают о результате. Перед сохранением сервер повторно проверяет выбранное время, чтобы не создать две записи на один интервал.

### Страница с формой

Коротко: Страница принимает данные клиента и передает их серверной части для проверки и сохранения.

Клиент видит обычную страницу. На ней нет исходного кода и технических настроек. Есть выбор процедуры, тип визита, дата, свободное время, имя, телефон, почта, комментарий и ссылка на политику обработки персональных данных. Если для обработки заявки и связи по записи требуется согласие, форма отдельно фиксирует его текст, дату и способ получения.

Страница может быть отдельной ссылкой или встроенным блоком на существующем сайте. Apps Script способен отдать HTML-страницу через функцию `doGet`, а принять отправленную форму через `doPost`.

Google рекомендует представлять скрипт для планирования встреч как веб-приложение, чтобы пользователи обращались к нему напрямую из браузера. Подробнее смотри в разделе [Web Apps](https://developers.google.com/apps-script/guides/web).
> - Google for Developers, [Web Apps](https://developers.google.com/apps-script/guides/web)

### Серверная часть

Коротко: Серверная часть проверяет поля, определяет длительность визита и обращается к календарю.

Я описываю серверную часть как закрытую часть проекта: она принимает данные формы, проверяет обязательные поля, определяет длительность процедуры и обращается к календарю.

В этой схеме за серверную часть отвечает Google Apps Script. Для маленькой записи отдельный хостинг можно не покупать. Скрипт публикуется как веб-приложение и получает собственный URL.

### Календарь

Коротко: Календарь хранит занятые интервалы и повторно проверяется перед созданием записи.

Google Calendar хранит занятые интервалы. Скрипт запрашивает занятость за нужный период, вычитает ее из рабочего графика и оставляет свободные окна.

Для первого визита длительность берется из одного правила. Для повторного клиента используется другое стандартное окно. Данные о занятости не должны жить только в интерфейсе формы. Перед сохранением скрипт обязан проверить слот еще раз.

Скрипт спрашивает Google Calendar, какие промежутки уже заняты, и получает для каждого начало и конец. Один запрос проверяет максимум 50 календарей, согласно [документации Calendar API](https://developers.google.com/workspace/calendar/api/v3/reference/freebusy/query). Для одного владельца этого достаточно, а при большом количестве специалистов запросы придется разделять.

### Таблица заявок

Коротко: Google Таблицы хранят журнал заявок, доступный владельцу, но закрытый для посетителей.

Google Таблицы становятся журналом. В новую строку можно записать дату создания, имя клиента, телефон, почту, процедуру, комментарий, статус и идентификатор события календаря. Если нужно освежить базовые возможности таблиц, смотри [разбор Google Таблиц](/concepts/google-tablicy).

Таблицу не надо открывать для всех посетителей. Доступ к ней остается у владельца. Клиент отправляет форму, а не пишет прямо в таблицу.

### Уведомления

Коротко: Уведомления подключаются после сохранения заявки в календаре и таблице.

После проверки сохранения можно добавить письмо клиенту с датой, временем, процедурой и контактами, отдельное письмо владельцу и сигнал о новой записи в Telegram. До этого заявка должна проверяться в календаре и Google Таблице.

Токен Telegram-бота не помещается в HTML-код. Его надо хранить только на серверной стороне Apps Script или в другом закрытом месте. Полноценную схему безопасности из этого правила строить не стоит, но сам токен нельзя оставлять на открытой странице.

## Сколько стоит собрать запись самостоятельно?

Для сборки нужны редактор VS Code и Claude Code, который запускается из поддерживаемого рабочего окружения. Условия установки и доступности зависят от компьютера и настроек. На установку закладывай отдельное время: оно зависит от компьютера, доступов и того, что помощник попросит установить. Claude Pro стоит $20 в месяц по [официальной странице тарифов Anthropic](https://claude.com/pricing). Российская официальная оплата и рублевый тариф не подтверждены.

VS Code нужен как рабочая папка. Слева видны файлы проекта, справа их содержимое. Помощник может создавать и менять код по описанию задачи, но результат все равно нужно проверять и при необходимости править.

Claude Code можно запускать из поддерживаемого рабочего окружения. Я описываю задачу обычными словами, помощник создает файлы, меняет их и объясняет результат. Подробный порядок работы с ним разобран в [инструкции по Claude Code](/guides/claude-code-zhurnal-resheniy-dlya-proekta). После первоначальной настройки папки следующую задачу можно описать помощнику и попросить изменить проект, но зависимости, доступы и настройки иногда придется обновлять отдельно.

У Claude Pro есть общий лимит использования для чата и Claude Code. Фиксированного числа сообщений нет: расход зависит от размера диалога, модели, сложности задачи и количества файлов. После длинного разговора часть лимита уходит на повторную передачу истории проекта.

В России официальная доступность подписки и оплата российской картой не подтверждены. Поэтому рублевая сумма ниже не является российским тарифом Anthropic. Это пересчет официальной цены в доллары по курсу ЦБ.

| Расход | Сумма | Что означает |
|---|---:|---|
| VS Code | не привожу | Редактор проекта |
| Claude Pro | $20 в месяц | Платная подписка, Claude Code включен |
| Пересчет Claude Pro | не привожу | Рублёвый эквивалент зависит от курса и способа оплаты |
| Внешний хостинг | не включаю | В этой статье домен и хостинг не рассчитываются |
| Домен | не включаю | В этой статье домен не рассчитывается |

Claude Code доступен в Pro и других поддерживаемых платных планах; при использовании API или usage credits может возникать отдельная оплата. Отдельные обращения программы к модели через API и дополнительный оплачиваемый запас таких обращений не входят в Claude Pro и могут оплачиваться отдельно.

## Как сделать онлайн запись клиентов шаг за шагом?

Собирай запись по частям: сначала опиши процедуры и длительности, потом подключи календарь, форму, таблицу и уведомления. Если сначала нужно разобраться с подходом, посмотри [вводную статью о вайб-кодинге](/concepts/vajb-koding), а практическую сборку можно пройти на практикуме по вайб-кодингу. После каждого шага проверяй результат глазами. Первый рабочий экран покажет помощник, а дальше ты будешь просить его добавить правило, проверить слот, сохранить заявку и исправить найденный сбой.

![Хомяк в шоке смотрит на схему сборки записи из трех этапов.](https://s3.regru.cloud/crossmark/statejnik/images/guides/zapis-klientov-na-sajte/kadr-2.webp)

Создай папку проекта и открой ее в VS Code. Сначала не проси готовую программу. Объясни помощнику, как проходит процедура, чем отличается первый визит от повторного клиента и какие сообщения сейчас приходится обрабатывать вручную.

   

В ответ помощник должен показать схему и задать уточняющие вопросы. Проверь, что он не смешал первый визит с повторной процедурой и не добавил несуществующие услуги.

Составь список только из тех процедур, которые реально доступны для записи. Отдельно зафиксируй два типа визита. Это правило лучше определить до создания календаря.

   

Проверь, что помощник создал файл настроек и объяснил, где менять названия и время. Важно, чтобы длительность первого визита не была спрятана в нескольких местах проекта.

Теперь опиши дни и часы, когда запись вообще допустима. Добавь перерывы и закрытые интервалы, если они есть в твоей обычной работе.

   

Попроси помощника показать расчет интервалов и сверь его с обычным расписанием. Если время отображается иначе на телефоне, проблему надо исправлять до подключения заявок.

На этом шаге появляется первый результат, который можно открыть в браузере. Форма должна показывать только те интервалы, которые подходят выбранной процедуре и типу визита.

   

Попроси помощника подготовить HTML-страницу, серверную часть и инструкции по доступу к календарю, затем проверь результат. Открой форму с телефона и проверь, что первый визит и повторный клиент показывают разные окна. Такой способ сборки называют вайб-кодингом.

После отправки форма должна записать данные в журнал и показать сообщение об успехе только после успешного сохранения. Таблица помогает проверить, что запись действительно сохранилась.

   

Помощник добавит запись строки и соединит ее с созданным событием календаря. Сделай тестовую заявку и проверь строку руками. Если ее нет, запись нельзя считать рабочей.

Уведомления подключай после того, как форма, календарь и таблица работают отдельно. Иначе непонятно, на каком участке возник сбой.

   

В ответ помощник объяснит, какие разрешения нужны для почты и куда внести настройки бота. Проверь доставку с реального телефона, а не только появление сообщения на странице.

Повторная проверка слота сама по себе не гарантирует защиту, если два человека нажали кнопку почти одновременно. Попроси помощника добавить серверную блокировку и уникальный ключ интервала, то есть метку из календаря, начала и конца времени. Ключ помогает обнаружить повторную заявку, а защита от дубля требует повторной проверки и сохранения события с блокировкой, чтобы второй запрос не прошел одновременно с первым.

   

Помощник должен изменить именно серверную часть и показать тест. Если он предлагает только отключать кнопку, попроси продолжить: клиент может нажать дважды, открыть две вкладки или отправить запрос повторно.

> [!warning] Свободное окно не равно гарантированная запись
> Проверка календаря перед показом времени не защищает от двух одновременных отправок. При корректной серверной реализации нужны повторная проверка перед сохранением, блокировка и защита от повторного запроса, чтобы одна попытка не создавала две записи.

Не вставляй ссылку на сайт до проверки с телефона, занятого интервала, первого визита, письма, Telegram и повторного нажатия.

   

Проверь, что список проверок и найденных проблем появился. Только после этого публикуй форму. Не проси помощника сделать сразу весь сайт: по частям легче понять, где ошибка, и не потерять рабочую запись.

После первого результата стало понятно, что помощник не заменяет проверку. Он быстро собирает части, но не знает сам, как именно проходит мой день, если я этого не описал. Чем точнее правило первого визита и рабочие интервалы, тем меньше переделок.

Если нужна помощь именно с такой сборкой, посмотри практикум по вайб-кодингу для предпринимателей, где проект собирают словами и проверяют результат.

## Что появится в папке после сборки?

В папке проекта появятся HTML-страница формы, серверная часть на Apps Script, настройки процедур и графика, а также файлы для работы с Google Calendar, Google Таблицами и уведомлениями. Сохрани план, настройки и резервные копии. Секреты не клади в HTML и не меняй рабочий код без понятной причины.

### HTML-страница

Коротко: HTML-страница показывает клиенту поля формы и не содержит секретных токенов.

Это внешний вид формы. В ней находятся поля процедуры, типа визита, даты, времени и контактов. Клиент открывает ее в браузере.

Если страница размещается отдельно, на сайт можно поставить ссылку. Если нужен встроенный вид, сначала проверь, разрешает ли платформа сайта iframe. Если нет, используй обычную ссылку или другой способ вставки, который поддерживает эта платформа. Сам HTML не должен содержать токен Telegram и другие секреты.

### Серверная часть

Коротко: Apps Script принимает заявку, проверяет окно, записывает данные и отправляет уведомления.

Apps Script принимает отправку, обращается к календарю, записывает строку в таблицу и отправляет уведомления. Здесь лежит логика проверки свободного окна.

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

### Настройки

Коротко: В настройках хранятся процедуры, график, часовой пояс и идентификаторы сервисов без секретных ключей.

В настройках хранятся названия процедур, длительности, рабочие часы, часовой пояс, идентификатор календаря, идентификатор таблицы и адреса для уведомлений.

Копию файла с обычными настройками сохранить можно. Токены и закрытые ключи в такую копию включать нельзя. Для секретов используй закрытые свойства Apps Script и попроси помощника объяснить, где они находятся.

### Таблица и календарь

Коротко: Таблица хранит журнал, а календарь показывает занятость; рабочая запись должна попасть в оба сервиса.

Google Таблица хранит журнал. Google Calendar показывает занятость и созданные события. Это две разные части. Если запись есть только в таблице, календарь может показать окно свободным. Если событие появилось только в календаре, в журнале не будет полноценной карточки клиента.

После сборки сделай резервную копию таблицы и сохрани описание колонок. Рабочий код без необходимости не меняй. Сначала попроси помощника объяснить причину и список файлов, потом соглашайся на правку.

## Что делать, если свободное время показывается неправильно?

Сначала проверь календарь, из которого форма получает занятость, часовой пояс и повторную проверку перед сохранением. Затем посмотри журналы Apps Script и квоты сервисов, то есть дневные ограничения на число обращений к Google. Если письмо не пришло, ищи заявку в таблице. Если календарь не отвечает, не показывай пустой список как свободное расписание и временно оставь клиенту телефон.

![Безымянный мужчина закрывает лицо ладонью рядом со схемой проверки календаря и слота.](https://s3.regru.cloud/crossmark/statejnik/images/guides/zapis-klientov-na-sajte/kadr-3.webp)

### Календарь не видит занятое событие

Коротко: Сначала проверь идентификатор календаря, права, диапазон запроса и часовой пояс.

Если в форме видно свободное время, хотя в Google Calendar уже стоит событие, проверь идентификатор календаря, права доступа и часовой пояс. В выбранном решении календарь должен быть единственным ориентиром для проверки занятости.

Google отдельно описывает ответ `Freebusy: query` как информацию о занятых интервалах календарей. Сам факт подключенной синхронизации еще не доказывает, что форма читает нужный календарь.

### Двойной клик создает две записи

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

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

Если помощник предлагает только скрыть кнопку, попроси проверить сервер. Повторная отправка может прийти из двух вкладок или из-за повторного запроса браузера.

### Время съезжает на час

Коротко: Несовпадение времени обычно исправляется единой моделью часовых поясов во всех компонентах.

Причина обычно в смешении часовых поясов. Один из распространенных вариантов снижения расхождений: хранить момент в UTC, то есть в едином мировом формате, а клиенту показывать время часового пояса кабинета. Выбери одну модель времени и последовательно применяй ее в форме, календаре и письмах. В письме указывай этот часовой пояс словами.

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

### Письмо не приходит

Коротко: Если письмо не пришло, проверь заявку в таблице, настройки MailApp, адрес и дневную квоту.

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

Для обычного потребительского аккаунта [Google Apps Script указывает](https://developers.google.com/apps-script/guides/services/quotas) лимит 100 получателей писем в день, для Google Workspace - 1 500. В минимальном сценарии письмо владельцу и письмо клиенту могут считаться двумя получателями.

### API возвращает ошибку

Коротко: Ошибки 403 и 429 требуют уменьшить частоту запросов, добавить повтор с паузой и не считать пустой ответ свободным днем.

При частых запросах Google Calendar API может вернуть `403 usageLimits` или `429 usageLimits`. Такое бывает, если запрашивать календарь заново при каждом движении мыши или каждом изменении поля.

Для меня проблема была не в красивой форме, а в двойной записи: если слот попадет двум людям, календарю я уже не доверяю. Поэтому проверка в момент сохранения и блокировка важнее внешнего вида календаря.

## Что выгоднее: своя запись, сервис или переписка?

Готовый сервис может оказаться дешевле и быстрее при стандартном сценарии без особых правил. Своя запись дает гибкость, но требует Claude Pro за $20 в месяц, проверки ошибок и контроля доступов. Переписка и звонки не требуют подписки, зато вся рутина остается у владельца. При сложной сетке специалистов самосборка уже не лучший первый вариант.

| Вариант | Подтвержденная стоимость | Сильная сторона | Ограничение |
|---|---:|---|---|
| Своя сборка | Claude Pro $20 в месяц | Свои процедуры, длительности и правила | Ошибки, доступы и проверка остаются на владельце |
| DIKIDI | Условия нужно проверить на официальном тарифе | Можно сравнить готовый сценарий | Возможности зависят от условий сервиса |
| «Записли» | Условия нужно проверить на официальном тарифе | Готовая запись | Правила меняются в пределах сервиса |
| Rubitime Start | Цена зависит от актуального тарифа | Готовый сервис записи | Нет полной свободы своей логики |
| Digital | Цена зависит от актуального тарифа и периода оплаты | Более широкий готовый сценарий | Условия нужно сверять перед выбором |
| YCLIENTS | Цена зависит от актуального тарифа | Готовая система для записи | Сложные особенности зависят от тарифа и настроек |
| Подрядчик | Стоимость нужно запрашивать по техническому заданию | Работу можно передать специалисту | Изменения снова требуют обращения и оплаты |
| Переписка и звонки | Отдельной подписки нет | Не надо ничего внедрять | Перестановки, напоминания и проверка окон вручную |

Условия готовых сервисов и разработки меняются, поэтому перед выбором проверь актуальный тариф и состав функций на сайте поставщика. Стоимость домена, хостинга и Yandex Cloud Functions после бесплатного лимита в сравнение не включаю: точной подтвержденной суммы для этой схемы нет.

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

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

## Что сделать сегодня, если ты не разбираешься в технологиях?

Запиши словами процедуры, длительность первого визита и повторной процедуры, рабочие часы и обязательные поля. Поставь VS Code и Claude Code, подготовь Google Calendar и Google Таблицу, собери минимальную форму, проверь ее с телефона и только потом вставляй ссылку на сайт.

1. Запиши правило первого визита и отдельно правило повторной процедуры.
2. Подготовь календарь с понятным часовым поясом.
3. Создай Google Таблицу для журнала заявок.
4. Поставь VS Code и Claude Code.
5. Попроси помощника собрать минимальную форму без лишних функций.
6. Проведи тест с телефона на свободном и занятом времени.
7. Проверь строку в таблице, событие в календаре, письмо и Telegram.
8. Опубликуй ссылку или встроенную форму на сайте.

После установки инструментов не возвращайся к ним без необходимости. Дальше работай через описание задачи и проверку результата. Если помощник просит доступ или дополнительную установку, он должен объяснить, зачем это требуется.

## Вопросы и ответы

Онлайн запись клиентов на услуги можно собрать из формы, Google Apps Script, Google Calendar, Google Таблицы и уведомлений. Новичку полезнее последовательно описать процедуру, длительность первого визита, график и правила проверки свободного окна, чем начинать с копирования кода.

Создай форму с выбором процедуры, типа визита, даты и свободного времени. Перед сохранением заявки повторно проверь календарь, запиши данные в Google Таблицу и отправь подтверждение клиенту. Страницу можно опубликовать через Apps Script или вставить на сайт ссылкой или iframe.

Фраза «ссылка на запись клиентов» обозначает адрес формы, который можно разместить на кнопке сайта или отправить сообщением. Чтобы получить ссылку на запись клиентов, опубликуй форму как веб-приложение Apps Script и используй выданный URL. Размести его на кнопке сайта, в профиле или в сообщении. Перед публикацией проверь форму с телефона и убедись, что занятой интервал не отображается свободным.

Подойдет форма, в которой есть процедура, тип визита, дата, свободное время и контакты клиента. Для этой схемы форма соединяется с Apps Script, Google Calendar, Google Таблицами, почтой и Telegram. Простая форма без проверки календаря не решает задачу свободных окон.

Сначала занеси процедуры и длительности. Затем задай рабочий график, подключи календарь занятости, добавь таблицу заявок и уведомления. Для первого визита сделай отдельное правило времени, а для повторного клиента оставь стандартное окно процедуры.

Автоматическая запись клиентов работает через серверную часть, которая принимает форму, проверяет календарь, создает событие и записывает заявку в таблицу. Уведомление отправляется после сохранения. Проверку свободного окна надо выполнять еще раз перед созданием события, чтобы избежать двойной записи.

Она нужна, если значительная часть дня уходит на сообщения, уточнение длительности и перестановку записей. Если клиентов немного и расписание легко вести вручную, готовая система может быть избыточной. В собственной сборке отдельно учитывается правило первого визита.

Собери HTML-страницу и опубликуй серверную часть Apps Script. Затем размести на сайте ссылку на форму или встроенный iframe. Не помещай в HTML токен Telegram и другие секреты. Сначала проверь отправку заявки, таблицу, календарь и уведомления.

Онлайн календарь для записи клиентов берет рабочие интервалы и вычитает занятые события Google Calendar. Оставшиеся окна показываются в форме. Перед сохранением заявка повторно проверяет выбранное время. Если API временно недоступен, форма должна показать ошибку, а не пустой день как свободный.

- [Google for Developers: Web Apps](https://developers.google.com/apps-script/guides/web)
- [Google Calendar API: Freebusy query](https://developers.google.com/workspace/calendar/api/v3/reference/freebusy/query)
- [Google Apps Script: класс Sheet](https://developers.google.com/apps-script/reference/spreadsheet/sheet)
- [Google Apps Script: класс MailApp](https://developers.google.com/apps-script/reference/mail/mail-app)
- [Google Apps Script: Installable Triggers](https://developers.google.com/apps-script/guides/triggers/installable)
- [Google Apps Script: Quotas for Google Services](https://developers.google.com/apps-script/guides/services/quotas)
- [QForm: форма записи на прием для сайта](https://ru.qform.io/forms-templates/online-zapis)
- [Easy!Appointments: календарь не видит занятые события](https://github.com/alextselegidis/easyappointments/issues/1765)
- [Easy!Appointments: проблема часового пояса](https://github.com/alextselegidis/easyappointments/issues/1789)
- [Anthropic: Plans & Pricing](https://claude.com/pricing)
- [Anthropic Help Center: Models, usage, and limits in Claude Code](https://support.claude.com/en/articles/14552983-models-usage-and-limits-in-claude-code)
- [Anthropic Help Center: Manage usage credits](https://support.claude.com/en/articles/12429409-manage-usage-credits-for-paid-claude-plans)
- [Anthropic Help Center: Paid plan billing FAQs](https://support.claude.com/en/articles/8325618-paid-plan-billing-faqs)
- [Банк России: официальный курс валют на 6 августа 2026 года](https://www.cbr.ru/currency_base/daily/?UniDbQuery.Posted=True&UniDbQuery.To=06.08.2026)
- [Федеральный закон «О персональных данных», статья 9](https://www.consultant.ru/document/cons_doc_LAW_61801/6c94959bc017ac80140621762d2ac59f6006b08c/)

_Это собирательная история выпускников практикума, а не рассказ одного человека: так эта работа устроена в большинстве таких дел._
