Open-Source Wikis

/

Cal.com

/

Fun facts

calcom/cal.com

Fun facts

A few things you discover when you spelunk in the Cal.diy git history.

The codebase used to be called "Calendso"

The very first commit, on 2021-03-10, is f260e29 — Initial commit from Create Next App. The project was named Calendso for several months before the rebrand to Cal.com. The rename never reached every corner: the encryption key environment variable that every running instance still requires is CALENDSO_ENCRYPTION_KEY, defined in .env.example. There is also a apps/web/calendso.yaml manifest carried forward from the original deploy config.

If you ever wondered why the DB encryption secret has a brand from a different company in its name, this is why.

Google Calendar was integration #1

The same week the project was created (March 22–26, 2021) it gained:

  • A booking flow (d769c39)
  • A base admin interface (388ff39)
  • Self-authentication with Google Calendar (1582cfd)

Five years later, packages/app-store/googlecalendar/ is still the reference implementation other calendar providers copy from. The Calendar interface in packages/types/Calendar.d.ts was effectively shaped by what Google's APIs returned.

The biggest non-test source file is a list of free email domains

The largest hand-written source file in the repo is packages/features/watchlist/lib/freeEmailDomainCheck/freeEmailDomains.ts at 4,768 lines. It is a static array of email domains that should be considered "free" (gmail.com, yahoo.com, etc.) for risk scoring on signups. Every line is a domain. If you ever need to know whether protonmail.ch is on the list, this is the file.

The booking pipeline is the codebase's center of gravity

After the email-domain list, the largest non-test files are all in the booking pipeline:

File Lines
packages/features/bookings/lib/service/RegularBookingService.ts 2,690
packages/features/bookings/repositories/BookingRepository.ts 2,140
packages/features/bookings/lib/getBookingResponsesSchema.test.ts 2,523
packages/features/bookings/lib/handleNewBooking/test/fresh-booking.test.ts 3,862
packages/features/bookings/lib/handleNewBooking/test/reschedule.test.ts 3,395

The booking handler has been split across dozens of small modules under packages/features/bookings/lib/handleNewBooking/, but RegularBookingService.ts is still the orchestrator. It is also the single most-modified file in the last 90 days (15 commits). See features/bookings.

392 TODOs and counting

A grep for TODO, FIXME, HACK, and XXX across .ts/.tsx source files (excluding node_modules, generated files, and the build cache) returns 392 hits. Many of them sit in packages/features/bookings/lib/handleNewBooking/ and packages/app-store/<provider> — the natural places where edge cases accrete.

Bots co-author about 1 in 10 commits

Of the 16,429 commits on main, 1,690 carry a Co-authored-by: trailer pointing at a [bot] account — Dependabot, GitHub Actions, and kodiak[bot] (which auto-merges PRs based on .kodiak.toml). That is roughly 10.3% of the codebase's recorded authorship.

This is a lower bound. Inline AI tools (Copilot, Cursor, Claude in IDE) leave no trace in the git log, so the real share of AI-assisted work is necessarily higher.

The repo is named cal.com but the code is cal.diy

The remote URL is https://github.com/calcom/cal.com.git, but the README.md describes the project as Cal.diy — the community-driven, MIT-licensed fork. The Cal.com brand still wins the URL race, even though every recent commit (cleanup(test): remove org booking integration coverage, cleanup(seed): remove platform team seeding, etc.) is actively stripping enterprise features. The two names will likely coexist for a while.

100 tables, 46 enums, one schema file

packages/prisma/schema.prisma is a single 2,877-line file containing every database model in the project. There are 100 model declarations and 46 enum declarations. Almost every domain page in this wiki ends up referring back to it.

937 unique authors

Over five years the project has accepted commits from 937 unique authors. That includes a long tail of one-off contributors but also dozens of long-running maintainers who have shaped specific subsystems. The maintainers page (if generated) would map subsystems to recent contributors; CODEOWNERS in this repo is currently empty, so per-page bylines are derived from git log instead.

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

Fun facts – Cal.com wiki | Factory