VINGRADGmbH
Deutsch English

2026-10-16 · Operations & infrastructure

Running Calendly yourself after Cal.com closed its code

For my first calls I wanted a booking page on my own infrastructure, with calendar sync and Stripe. The obvious candidate had just stopped being open source.

Calendly is convenient, but it charges per seat, and the data of the people who book with me sits with the provider. I wanted the booking page on my own domain, on my own server in Switzerland, synced with my calendar and — for paid appointments — Stripe.

The upstream closes

The obvious choice was Cal.com. Except that in April 2026 Cal.com closed its code. What remained was Cal.diy, the community edition under the MIT licence, with no ready-made image and a note in the README that it is meant for personal, non-production use.

I read the licence first, not the README. MIT allows production and even commercial use; the note is a recommendation, not a condition. So the question was no longer “may I” but “can I run it properly”.

What I built

I build the image myself, from a pinned commit of the project — not from “latest”. That way I always know which code is running, and an update is a deliberate decision. For the build the container temporarily needs far more memory than in operation.

Sign-up is closed, and I claimed the setup page right after the first start — a freshly started instance whose admin account is still free is an open door. There is exactly one event type: a 30-minute first call with buffer, minimum notice and a 30-day booking window. I deleted the default event types.

The part that is easy to forget

A booking page collects names, email addresses and phone numbers. So setting it up also means: bookings are deleted automatically six months after the appointment, and the nightly database backups are encrypted, with the key kept off the server. I checked that a backup can be decrypted and read before writing it into the privacy policy.

I rejected two alternatives: a small booking engine of my own (too much work for something that already exists) and Easy!Appointments (no Stripe integration).

The page was live after one day. And because I use it myself, I now also offer Cal.diy to clients as a managed application — with the same setup.

All entries

Does this fit your project?

If you are looking for someone who works like this, book a first call or write to me.

Book a first call Write