explaingit

calcom/cal.diy

📈 Trending43,595TypeScriptAudience · developerComplexity · 4/5ActiveLicenseSetup · hard

TLDR

Open-source, self-hosted appointment scheduling platform. Share a booking link, let people pick free slots from your calendar, and auto-create meeting invites.

Mindmap

mindmap
  root((cal.diy))
    What it does
      Booking links
      Calendar sync
      Auto invites
      Event types
    Tech stack
      TypeScript
      Next.js
      PostgreSQL
      Prisma ORM
    Use cases
      Replace Calendly
      Own your data
      No subscriptions
      Self-hosted control
    Deployment
      Self-hosted only
      Server required
      PostgreSQL setup
      No SaaS version

Things people build with this

USE CASE 1

Replace Calendly or similar tools while keeping all your scheduling data on your own server.

USE CASE 2

Set up multiple event types (30-min calls, 1-hour meetings) and share booking links without monthly subscription fees.

USE CASE 3

Integrate with Google Calendar or Outlook so your real availability automatically blocks off booked times.

USE CASE 4

Add video conferencing links (Zoom, Google Meet) automatically to calendar invites sent to both parties.

Tech stack

TypeScriptNext.jstRPCPrismaPostgreSQLTailwind CSSNextAuth

Getting it running

Difficulty · hard Time to first run · 1h+

Requires PostgreSQL database setup, environment configuration for NextAuth, and multiple service integrations (calendar APIs) to be functional.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice and license text.

In plain English

Cal.diy is a fully open-source, self-hostable appointment scheduling platform, the kind of tool that lets you share a booking link so other people can schedule time with you based on your real availability, without the back-and-forth of finding a mutual time slot. It is a fork of Cal.com, which is a commercial scheduling product, but with all proprietary enterprise features removed so the entire codebase is available under the MIT license with no strings attached. The way it works is that you set up your calendar availability and create different event types, for example, a 30-minute consultation or a 60-minute meeting, then share a personal booking page link. People visiting that link see only the times you are free (based on your connected calendar), pick a slot, and a calendar invite is automatically created for both parties. It integrates with Google Calendar, Outlook, and video conferencing tools to insert meeting links automatically. Cal.diy is distinct from the paid Cal.com hosted service in that you run it entirely on your own server or infrastructure. There is no hosted version of Cal.diy, you clone the repository, provision a PostgreSQL database, and deploy it yourself. The README explicitly warns that this requires server administration experience and is recommended for personal, non-production use rather than high-stakes business deployments. Someone would use Cal.diy when they want the functionality of tools like Calendly but want to own their data, avoid subscription fees, and run the software under their own control. The tech stack is TypeScript with Next.js for the web framework, tRPC for type-safe API communication between frontend and backend, Prisma as the database ORM against a PostgreSQL database, Tailwind CSS for styling, and NextAuth for authentication.

Copy-paste prompts

Prompt 1
How do I deploy cal.diy on my own server? Walk me through the PostgreSQL setup and environment variables I need.
Prompt 2
Show me how to create a new event type in cal.diy and generate a shareable booking link for a 30-minute consultation.
Prompt 3
How does cal.diy sync with my Google Calendar to show only my free time slots to people booking?
Prompt 4
I want to add Zoom meeting links to every booking automatically in cal.diy. Where in the codebase do I configure that?
Prompt 5
What are the differences between cal.diy and the paid Cal.com service? Why would I self-host instead?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.