Punctual
Open-source Calendly alternative for a single team, with booking pages, calendar sync and team scheduling on Workers
Punctual booking page for a 30-minute intro call, with an August 2026 date picker and open half-hour slots
Punctual renders booking pages on a Cloudflare Worker and checks availability against the hosts' Google Calendar and Microsoft 365 calendars. It handles round-robin and collective team events and sends .ics invites and reminders. The MIT-licensed open-source version has no seat limits.
Event types carry buffers, notice windows, booking horizons, daily caps and custom questions. Teams can book round-robin or collectively, with required and optional hosts on their own schedules, and team admins manage members and availability or swap hosts on an existing booking. Calendar entries name every participant and their company. Branding covers a company logo, per-event-type logos and social cards with the hosts' faces. Guests receive emails with .ics invites, reschedule and cancel links, and reminders 24 hours and one hour ahead. Hosts can also post bookings to Slack or Telegram and opt into a morning digest. For developers there is a REST API, HMAC-signed webhooks, an embed widget and a built-in MCP server that lets an AI agent list open slots and create bookings. Double-booking is blocked in the database: each booking writes per-host locks for five-minute buckets in the same D1 batch, so a conflicting booking rolls back. A single Worker runs the app. D1 stores bookings and slot locks, KV caches free/busy lookups and rendered social cards, and R2 keeps uploaded avatars and team logos. Two Durable Objects serialize booking attempts per host and handle rate limiting. Analytics Engine records page views for the dashboard's booking funnel. A queue carries emails and webhooks. A cron trigger every five minutes sends reminders, expires holds and prunes locks.
Built for: Individuals and single teams who want self-hosted scheduling without per-seat pricing, and developers connecting bookings to apps or agents
What you can use it for
- Share public booking links for sales, support or intro calls
- Spread intake calls across a small team with round-robin
- Book collective meetings that need several hosts free at once
- Let an AI agent read availability and book over MCP
- Embed a booking widget on a company site
Deploy
CLI
Branch main
Needs Node 20+. The CLI clones the repository, creates the D1 database, KV namespace, R2 bucket and queues, generates secrets, applies migrations and deploys twice so emailed links use the real URL. Calendar OAuth apps and an email provider are configured afterwards.
npx punctual-sh init
One CLI command provisions and deploys, but real use also needs an email provider and, for calendar sync, your own Google or Microsoft OAuth app with registered redirect URIs.
What it needs to run
- D1 databasespunctual
- Durable ObjectsHostCalendar, RateLimiter
- KV namespacesCACHE
- Queues (consumer)punctual-tasks
- Queues (producer)punctual-tasks
- R2 bucketspunctual-avatars
Also uses
- Google OAuth (optional): Sign-in and Google Calendar sync through an OAuth client you createSource
- Resend (optional): Sending booking emails
Good to know
Pre-1.0 (v0.3.0, released in September 2026), so interfaces may still change. Google treats calendar scopes as sensitive, so going past 100 users requires Google's app verification. Without Resend, Brevo or Cloudflare Email Service configured, Punctual logs emails, sign-in links included, instead of sending them. Cloudflare Email Service also needs the sending domain onboarded first. The first account created on a fresh deployment becomes the admin. The open-source build targets one team; a hosted version with managed OAuth apps is a separate commercial service.
Cost on Cloudflare
Likely fits the free plan
The self-hosting guide targets $0 on the free tier. Workers, D1, KV, R2, SQLite-backed Durable Objects and cron triggers have Free plan allowances. The guide lists Queues as a paid feature, but Cloudflare includes Queues on the Free plan with 10,000 operations a day. Cloudflare Email Service for guest emails needs Workers Paid; Resend or Brevo avoid that.
The estimate is based on Cloudflare’s documented limits and the app’s configuration. What you pay depends on your usage and plan.
Where this comes from
- Repositoryhttps://github.com/CCCrafts/punctual
- App websitehttps://punctual.sh
- Documentationhttps://punctual.sh/docs
An alternative to Acuity Scheduling, Cal.com, Calendly, HubSpot Meetings, Microsoft Bookings, OnceHub, SavvyCal, Setmore, TidyCal, YouCanBookMe, Zoho Bookings.
Listing history
- Oct 2, 2026 · Punctual listed
Similar apps
All Scheduling & Booking apps
Self-hosted booking page and Calendly alternative with Google Calendar and Outlook sync, on Cloudflare Pages
- Deploy
- Manual
- License
- MIT
- GitHub stars
- 541 stars
- Last commit