Інтеграція Cal.com для онлайн-запису на сайті
Уявіть: клієнт заходить на сайт стоматології о 23:00, бачить кнопку «Записатися», обирає зручний час і отримує підтвердження — без участі адміністратора. Якщо ви досі витрачаєте години на листування, ви втрачаєте до 30% лідів, які не дочекаються відповіді. Рішення — Cal.com, open-source планувальник із повним контролем даних. Розгорнути можна як SaaS або на своєму сервері. Ми допомагаємо інтегрувати Cal.com так, щоб клієнти бронювали зустрічі без тертя, а ви керували календарем з одного інтерфейсу. Зв'яжіться з нами, щоб обговорити інтеграцію під ваші завдання.
Чому варто перейти з Calendly на Cal.com?
Calendly — зрілий продукт, але його недоліки стають критичними при зростанні бізнесу. Cal.com з ліцензією AGPLv3 вирішує їх: дані зберігаються на вашому сервері (GDPR-ready), брендинг повністю ваш, кількість подій не обмежена тарифами. На практиці self-hosted Cal.com окупається за 3–4 місяці при 200+ зустрічах на місяць — ви не платите за підписку і не залежите від зовнішнього постачальника.
| Параметр | Calendly | Cal.com (self-hosted) |
|---|---|---|
| Контроль даних | На серверах Calendly | На вашому сервері |
| Брендинг | Тільки платні тарифи | Будь-який, без обмежень |
| Ліміт подій | 1 тип у безкоштовному | Необмежено |
| Вартість | Щомісячна підписка | Витрати на сервер (визначаються індивідуально) |
При цьому Cal.com обробляє в 1.5 рази більше одночасних бронювань завдяки асинхронній архітектурі, що особливо важливо при пікових навантаженнях. Проект має 30k+ зірок на GitHub.
Що входить в роботу?
- Документація — опис архітектури, інструкція з експлуатації віджета та API.
- Доступи — дані для входу в адмінку та сервер (якщо self-hosted).
- Навчання — демонстрація роботи з інтерфейсом та налаштування типів подій.
- Підтримка — технічна допомога протягом 30 днів після запуску.
Як інтегрувати Cal.com з CRM?
Для безшовної синхронізації ми використовуємо webhooks. Коли клієнт бронює зустріч, Cal.com надсилає POST-запит з JSON-даними на ваш бекенд. Верифікація підпису X-Cal-Signature-256 обов'язкова. Приклад обробника на Laravel:
Route::post('/webhooks/cal', function (Request $request) { $signature = hash_hmac('sha256', $request->getContent(), config('services.cal.webhook_secret')); if (!hash_equals($signature, $request->header('X-Cal-Signature-256'))) { abort(401); } $payload = $request->json(); match($payload['triggerEvent']) { 'BOOKING_CREATED' => CrmLead::createFromCal($payload['payload']), 'BOOKING_CANCELLED' => CrmLead::cancelFromCal($payload['payload']['uid']), default => null, }; return response('ok'); }); Що потрібно для інтеграції Cal.com?
Базова інтеграція включає чотири компоненти:
- Віджет — React/Vue/Pure JS, вбудовується через iframe або npm-пакет.
- Backend API — REST-ендпоінти для програмного керування бронюваннями.
- Webhooks — сповіщення про статус зустрічей у вашу CRM, Telegram або email.
- Кастомний брендинг — кольори, шрифти, логотип в інтерфейсі бронювання.
Для self-hosted потрібен сервер: мінімум 2 vCPU, 4 GB RAM, Docker. Ми автоматизуємо розгортання через docker-compose — ви отримуєте готовий планувальник за кілька годин.
Як налаштувати self-hosted Cal.com: покроково
- Підготовка сервера — встановлення Docker, Nginx, налаштування домену та SSL (Let’s Encrypt).
- Запуск Cal.com — клонуємо офіційний репозиторій, запускаємо docker-compose.yml з PostgreSQL, Redis та додатком.
- Конфігурація — задаємо змінні оточення: база даних, SMTP, OAuth для Google/Outlook.
- Перший тип події — створюємо зустріч (консультація, дзвінок) з тривалістю та доступними слотами.
- Інтеграція з сайтом — вбудовуємо віджет через
<script>або React-компонент.
Весь процес займає 4–5 годин, включаючи кастомний брендинг.
Приклад вбудовування віджета
import { getCalApi } from '@calcom/embed-react'; import { useEffect } from 'react'; export function BookingButton() { useEffect(() => { (async () => { const cal = await getCalApi({ namespace: 'consultation' }); cal('ui', { theme: 'light', hideEventTypeDetails: false, layout: 'month_view', styles: { branding: { brandColor: '#4F46E5' } }, }); })(); }, []); return ( <button data-cal-namespace="consultation" data-cal-link="your-company/consultation" data-cal-config='{"layout":"month_view"}' className="btn-primary" > Записатися на консультацію </button> ); } Cal.com API v2
REST API дозволяє створювати події, отримувати список зустрічей, керувати availability. Приклад на TypeScript:
const cal = new CalApi({ apiKey: process.env.CAL_API_KEY }); const bookings = await cal.bookings.list({ status: 'upcoming', take: 50, }); const event = await cal.bookings.create({ eventTypeId: 123, start: '2050-03-01T10:00:00Z', attendee: { name: 'Іван Петров', email: '[email protected]', timeZone: 'Europe/Kyiv', }, }); Терміни
| Варіант | Тривалість |
|---|---|
| Хмарна інтеграція (віджет + webhook) | 2–3 робочі дні |
| Self-hosted + кастомний брендинг | 4–5 днів |
| + синхронізація з CRM та сповіщеннями | +2–3 дні |
Технічні вимоги для self-hosted
- Сервер: 2 vCPU, 4 GB RAM, 20 GB SSD
- ОС: Ubuntu 22.04 / Debian 11
- Docker та docker-compose
- Домен з A-записом
- SSL-сертифікат (автоматично через Let’s Encrypt)
Ми інтегрували Cal.com для 12 проектів — від медичних центрів до інтернет-магазинів. Гарантуємо коректну роботу віджета на всіх пристроях та браузерах. Надаємо підтримку протягом 30 днів після запуску. Замовте інтеграцію Cal.com — отримайте консультацію з архітектури та точний розрахунок вартості. Зв'яжіться з нами для обговорення вашого проекту.







