Main features
- Public booking page with several event types
- Custom availability and working hours
- Google Calendar and Outlook Calendar, alone or together
- Free and busy times checked across all connected calendars
- Events created with Google Meet or Microsoft Teams links
- Confirmation, cancellation and reminder emails
- Dashboard to enable, disable and edit each email
- Deploy and update through GitHub Actions workflows
What CloudMeet does
CloudMeet is a small booking-page scheduler for one person. You set your working hours and event types (a 30-minute call, a one-hour meeting), connect Google Calendar, Outlook Calendar or both, and share the public page. When a guest picks a slot, CloudMeet checks every connected calendar for conflicts, creates the event and attaches a Google Meet or Microsoft Teams link depending on the provider you chose. Guests get a confirmation email, and reminders go out 24 hours and one hour before the meeting.
That is the core of a single-user Calendly account and little more. There are no team features, payments, embeds or routing, and the README does not describe custom booking questions. What makes the project distinctive is how it is deployed.
Running on Cloudflare
CloudMeet has no server component of its own. It is a SvelteKit application built for Cloudflare Pages, with Cloudflare Workers for the backend logic, a Cloudflare D1 database and a KV namespace for storage, and a separate cron Worker that checks every five minutes for reminders to send. The README says the whole setup runs within Cloudflare’s free tier.
You install it from a GitHub template. After creating your own repository from it, you add a set of Actions secrets: a Cloudflare API token with Workers and D1 edit rights, your account ID, the Google OAuth client, a JWT secret, the app URL and the admin email address. A “Deploy to Cloudflare Pages” workflow then builds and publishes the site, and a “Sync and Deploy” workflow later pulls changes from the upstream template and redeploys, so updates do not require a local toolchain.
Some details matter for planning:
- One host per deployment. Only the Google account set as
ADMIN_EMAILcan sign in. A colleague who wants a booking page needs a separate deployment. - Google OAuth is mandatory. The Google client ID and secret are required secrets even if you mainly use Outlook. Outlook and Teams support needs an additional Microsoft Entra app registration with calendar and online-meeting permissions.
- Email goes through Emailit. Booking emails are sent through the Emailit service, configured with an optional API key and sender address. The README does not offer an SMTP option.
- Protect the reminder endpoint. The optional
CRON_SECRETis recommended, because without it anyone can call the reminder endpoint and trigger sends.
Self-hosting and lock-in
CloudMeet is self-hosted in the sense that it runs in your own accounts and you control the data, but it does not run on your own hardware. The code depends on Cloudflare’s platform (Pages, Workers, D1 and KV), and the documented deployment path depends on GitHub Actions. Moving it to a conventional server would mean porting it. If your aim is to avoid large US cloud providers rather than to avoid running a server, a container-based tool is the better fit.
Hosted version
There is no hosted service. Each user deploys their own copy, and the author runs a public demo linked from the README.
Limitations
The project is a personal repository of its author and is far smaller in scope than Cal.diy or Tymeslot. It supports only Google and Microsoft calendars, not CalDAV, and email delivery is tied to a single provider. The single-admin design rules it out for teams.
Who it suits
CloudMeet suits developers and freelancers who want their own booking link at little or no cost, already use Cloudflare and GitHub, and would rather not patch a server. People who need CalDAV, payments or several hosts should look at the other tools in the scheduling guide.
Technical details
Self-hosting needs
- Cloudflare account
- GitHub Actions
- Google OAuth client
Built with
- TypeScript
- SvelteKit
- Tailwind CSS
GitHub topics
- calendly
- meeting
- open-source
- opensource
Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.