Bookly
Documentation Everything about running and using this install, from self-hosting to the API. The same pages live in the repository, so you can read or improve them there too.
Browse on GitHub(opens in a new tab)
Self-hosting Bookly Bookly is one container plus Postgres. Optional: a mail provider, and a bucket for uploads (otherwise they live on a volume). Scheduling model Your calendar is governed by intent, not just busy/free: Contacts and the meeting lifecycle Bookly keeps a contact for every person who books, joins a waitlist or fills a routing form: one row per email per workspace, with a name, company, phone, tags, Tasks and the task board Tasks are the follow-ups from your meetings (a recap's action items, the lines of your notes)
and anything you add by hand. They live on their booking and conta Files A drive for the workspace, behind the files feature flag (Console → Flags; a Beta badge
shows while it is in beta). Admin → Files has five places: Messages Conversations with your clients and between your team, behind the messages feature flag
(Console → Flags; a Beta badge shows while it is in beta). Admin → Messa Calendar & conferencing integrations Bookly hosts connect their own accounts from Admin → Calendars and Admin → Conferencing.
The server admin registers the OAuth apps once and puts the keys in the Zoom Connect your Zoom account and every booking made through your Bookly page gets its own Zoom
meeting. This guide covers adding the Bookly app to Zoom, what it do Paid bookings (Stripe) Set a price on an event type (Admin → Event types → Price / Currency). With Stripe configured,
booking that event type goes: pick a slot → fill the form → Strip Host notifications and text reminders Attendees always get email: confirmation with calendar invite, 24-hour and 1-hour reminders,
cancellation. Hosts choose how they hear about things under Admin → Teams, round-robin and workflows Admin → Team lists everyone in the workspace. Owners and admins invite by email; the invitee
gets a link to /accept-invitation/<id>, creates an account (sign-up Routing forms A routing form (Admin → Routing forms) asks visitors a few questions and sends each of them to the right place. It lives at /r/<slug> on your booking host and i Embeds Add the script once, then use either pattern. Replace the host with your Bookly URL. Domains & HTTPS 1. Point your domain at the server: an A record (or CNAME) for book.example.com.
2. Set APPURL=https://book.example.com in .env.
3. Start with TLS: ACMEEMAIL=yo API & webhooks Base URL: https://<your-bookly>/api/v1. Machine-readable spec at /api/v1/openapi.json.
Responses are { "data": …, "meta": … } or { "error": { "code", "message" Cloud mode (multi-tenant SaaS) Set TENANCY=multi. Then: