mothermachine

Browse / Scheduling and staffing

CloudMeet

Single-owner Calendly alternative that deploys to Cloudflare's free tier from GitHub secrets.

Adaptable Business appWeb app Deterministic TypeScript License: MIT

CloudMeet is a meeting scheduler with a public booking page, Google and Outlook calendar checks, Meet or Teams links, event types, working hours and email reminders. It runs on Cloudflare Pages, Workers and D1; the Adopter forks the template, adds a dozen repository secrets, and a GitHub Action deploys it. There is no API or agent interface.

Use it when
  • I'm a consultant who wants a booking link on my own domain without paying for Calendly or running a server
  • I already live in Cloudflare and Google Workspace and want the scheduler to sit there too
Gotchas
  • One admin only: ADMIN_EMAIL is the sole login, so this is a personal scheduler, not a multi-provider booking system
  • Without CRON_SECRET the reminder endpoint is publicly callable
  • Google OAuth app in testing mode needs the redirect URI updated after the first deploy and again for a custom domain
  • No API: an agent can only book through the public page or read the resulting Google Calendar events elsewhere

Last activity Jul 2, 2026. Fit: adaptable 3, operable 0.

Editions

Free · Free open source

  • Clonegit clone https://github.com/dennisklappe/CloudMeet
  • DeployDeploy

For agents: JSON · Markdown

Adaptable: what is yours to change

Make it yours

Config only15 things to edit

Use the repo as a template, then set GitHub Actions secrets: CLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_ID, ADMIN_EMAIL (the only account that can log in), JWT_SECRET, APP_URL, GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET; optionally EMAILIT_API_KEY and EMAIL_FROM for booking emails, CRON_SECRET to lock the reminder endpoint, and MICROSOFT_CLIENT_ID and MICROSOFT_CLIENT_SECRET for Outlook. wrangler.toml holds the Cloudflare bindings; schema.sql the D1 schema. Availability, event types and email templates are set in the dashboard. Local dev copies .env.example to .dev.vars.

Env vars
CLOUDFLARE_API_TOKEN CLOUDFLARE_ACCOUNT_ID ADMIN_EMAIL JWT_SECRET APP_URL GOOGLE_CLIENT_ID GOOGLE_CLIENT_SECRET EMAILIT_API_KEY EMAIL_FROM CRON_SECRET MICROSOFT_CLIENT_ID MICROSOFT_CLIENT_SECRET
Config files
.env.example wrangler.toml schema.sql
Prompt files
none
Accounts you need
CloudflareGoogle Cloud (OAuth client)GitHub (Actions deploy)Emailit (optional)Microsoft Entra (optional)

Source

Code stack

Languages
TypeScript
Frameworks
SvelteKitTailwind CSSCloudflare Workers
Package manager
npm
Database
Cloudflare D1
Hosting target
cloudflare-pagescloudflare-workers
Built
Unknown (recorded, never ranked)

Evidence and confidence

FieldWhere it was seenConfidence
formFactorREADME: runs on Cloudflare Pages with a Worker cron; svelte.config.js and wrangler.toml in repo root90%
executionModelno model SDK or AI feature in README95%
operabilityno API, MCP or CLI documented; repo tree has functions/, workers/, src/ only85%
effortREADME secrets table and .env.example name every variable; deployment is a GitHub Action95%
editionsREADME: MIT, runs entirely on Cloudflare's free tier90%
activeshortlist pushedAt 2026-07-02–
reach0%

Open questions

  • Does the booking page expose any JSON endpoint under functions/ that an agent could call to list slots?
  • Community source: the HN thread reference in the shortlist was not located; treat the GitHub search hit as the origin

Sources