
Cal.diy
Open-source, self-hosted scheduling app for booking meetings, a community fork of Cal.com.
- Stars
- 49.6k
- Forks
- 15.5k
- Licence
- MIT
- Language
- TypeScript
- Last update
- 4 days ago
- Type
- App
What it is
Cal.diy is a scheduling platform you run on your own server, so people can book time with you through a calendar page. It is a fork of Cal.com with the commercial enterprise features removed and everything under the MIT license. The README says it is intended mainly for personal, non-production use by people comfortable with server administration.
- Run a personal booking page on your own infrastructure
- Explore a real-world Next.js, tRPC, and Prisma codebase
- Test scheduling workflows locally with the seeded sample users from yarn dx
Great for
- Individuals who want to self-host their own booking page
- Developers who want to study or modify a large TypeScript scheduling app
- People who want MIT-licensed code without enterprise add-ons
- Hobbyists comfortable setting up Node.js and PostgreSQL
Not ideal for
- Businesses needing production or enterprise scheduling, since the README points to Cal.com for that
- People without server administration experience, because the README warns self-hosting requires advanced knowledge
- Anyone wanting a hosted service, since the README says there is no managed version
How to get it
- 1
Clone and build from source
You'll need: Node.js 18.x or newer · PostgreSQL 13.x or newer · Yarn (recommended)
Clone the repository
git clone https://github.com/calcom/cal.diy.gitGo to the project folder
cd cal.diyInstall packages with yarn
yarn - 2
Run it
- Copy .env.example to .env and generate NEXTAUTH_SECRET and CALENDSO_ENCRYPTION_KEY with openssl
- Set DATABASE_URL to point at your PostgreSQL instance
- Optionally run yarn dx, which needs Docker and Docker Compose, to start a local Postgres with sample users
- Open http://localhost:3000 and sign in with a seeded account
- 3
Get the most out of it
- Use yarn db-studio to browse seeded users and their data at localhost:5555
- Set NEXT_PUBLIC_LOGGER_LEVEL in .env to control tRPC logging verbosity
- Raise Node memory with NODE_OPTIONS if builds run out of memory
- Configure optional integrations, which the README says need extra credentials
Downloads
Strengths
- Fully MIT-licensed with no proprietary enterprise edition, according to the README
- No license key or Cal.com account required to run it
- Active community project with a large star count and recent pushes
Trade-offs
- The README explicitly warns it is use-at-your-own-risk and mainly for non-production use
- Setup requires Node.js, PostgreSQL, environment secrets, and careful configuration
- Enterprise features such as Teams, SSO, and Workflows were removed
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| cal.diy (this) | 49.6k | App | advanced | 4 days ago | Individuals who want to self-host their own booking page |
| create-t3-app | 29.2k | CLI | intermediate | 11 months ago | Developers who already know some TypeScript and want a Next.js starting point |
| taxonomy | 19.3k | App | advanced | 7 months ago | Developers learning the Next.js App Router and server components |
| NotionNext | 11.9k | App | intermediate | 4 days ago | Writers who already keep their posts in Notion and want a website without moving content |
| open-saas | 16.2k | App | intermediate | 9 days ago | Developers who want a head start on a subscription-based web product |
| ui | 127k | Library | intermediate | 4 days ago | Developers building React or Next.js interfaces who want full control over component code |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.