Skip to content

Self-hosted alternatives to Calendly

Calendly is a hosted scheduling tool where invitees pick a time from a shared booking link that is checked against the host's calendars. Two listed apps do its main job and run in your own Cloudflare account.

Each answer comes from the app’s README and source code, compared with the features Calendly describes on its own site.

  • Punctual booking page for a 30-minute intro call, with an August 2026 date picker and open half-hour slots

    Open-source Calendly alternative for a single team, with booking pages, calendar sync and team scheduling on Workers

    Deploy
    CLI
    License
    MIT
    GitHub stars
    117 stars
    Last commit
  • CloudMeet booking page for a 30-minute Google Meet event, with open dates on a month calendar

    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

Calendly features, app by app

FeaturePunctualCloudMeet
Shareable booking link and booking pageYesYes
Calendar sync that checks for conflictsYesYes
Availability rules with hours, buffers and daily limitsYesPartly
Event types for one-on-one, multi-host and group meetingsPartlyPartly
Email and text reminders, with invitee reschedulingPartlyPartly
Website embedsYesNo
Video conferencing linksPartlyPartly
Team scheduling and routing formsPartlyNo

Open-source Calendly alternative for a single team, with booking pages, calendar sync and team scheduling on Workers

What a Calendly user would miss
Text reminders, group events, routing forms and payments. The open-source build covers one team, it is pre-1.0, and emails are only logged until Resend, Brevo or Cloudflare Email Service is set up.
What it adds
Runs as one Worker with D1, KV, R2, Durable Objects and a queue in your own Cloudflare account. The MIT-licensed version has no seat limits, and it includes HMAC-signed webhooks, a REST API and a built-in MCP server.
  • Yes Shareable booking link and booking page. Booking pages rendered by the Worker, with host, team and event type branding.
  • Yes Calendar sync that checks for conflicts. Google Calendar and Microsoft 365 through your own OAuth apps.
  • Yes Availability rules with hours, buffers and daily limits. Buffers before and after, minimum notice, booking horizon, daily caps, named schedules and date overrides.
  • Partly Event types for one-on-one, multi-host and group meetings. Personal, round-robin and collective event types; no group events with several guests in one slot found.
  • Partly Email and text reminders, with invitee rescheduling. Emails with .ics invites, reschedule and cancel links, and reminders at 24 hours and 1 hour; no text messages.
  • Yes Website embeds. Embed script with a resizing iframe.
  • Partly Video conferencing links. Google Meet and Teams links, plus custom link, phone and in-person locations; no Zoom integration.
  • Partly Team scheduling and routing forms. Round-robin and collective scheduling for one team; no routing forms.

Sources:github.com/cccrafts/punctual/blob/main/README.mdgithub.com/cccrafts/punctual/blob/main/src/core/domain/types.tsgithub.com/cccrafts/punctual/blob/main/src/http/embed.tsgithub.com/cccrafts/punctual/blob/main/src/adapters/scheduled.tspunctual.sh

Self-hosted booking page and Calendly alternative with Google Calendar and Outlook sync, on Cloudflare Pages

What a Calendly user would miss
Buffers, minimum notice, daily limits, group and multi-host events, website embeds, text reminders, team scheduling, routing forms and payments. Only one Google account can sign in as the admin, and booking emails need an Emailit API key.
What it adds
Runs on Cloudflare Pages with D1 and KV in your own account, deployed from a GitHub template. A host can propose a new time for an existing booking, and the guest accepts or declines it from an emailed link.
  • Yes Shareable booking link and booking page. Public booking page for each event type under the host's slug.
  • Yes Calendar sync that checks for conflicts. Checks Google and Outlook busy times plus existing bookings.
  • Partly Availability rules with hours, buffers and daily limits. Weekly working hours only; the schema has a buffer column that no code reads, and no notice window or daily limit was found.
  • Partly Event types for one-on-one, multi-host and group meetings. Several one-on-one event types with their own durations; no multi-host or group events.
  • Partly Email and text reminders, with invitee rescheduling. Confirmation and reminder emails 24 hours and 1 hour before, and guests can cancel and reschedule from links; no text messages.
  • No Website embeds. No embed script or widget found.
  • Partly Video conferencing links. Google Meet and Teams links are created with calendar events; no Zoom integration.
  • No Team scheduling and routing forms. One admin account only; no team scheduling or routing forms.

Sources:github.com/dennisklappe/cloudmeet/blob/main/README.mdgithub.com/dennisklappe/cloudmeet/blob/main/schema.sqlgithub.com/dennisklappe/cloudmeet/blob/main/src/routes/api/availability/%2Bserver.tsgithub.com/dennisklappe/cloudmeet/blob/main/src/routes/api/bookings/%2Bserver.ts