calcom/cal.com
Packages
The packages/ directory hosts every shared workspace in the monorepo. Most are first-class workspaces (packages/<name>); a few are conceptual umbrellas (packages/embeds/, packages/platform/, packages/features/, packages/app-store/) that contain many sub-packages.
Catalog
| Package | Purpose | Page |
|---|---|---|
features |
70+ domain modules — the business-logic layer | features |
lib |
Shared utilities (CalendarService, CalEventParser, crypto, dayjs, ssrfProtection, getIP, getSafeRedirectUrl, ...) |
lib |
ui |
Shared design system (~50 components) | ui |
prisma |
Database schema, migrations, seeds, generated types | prisma |
trpc |
Type-safe API server + client | trpc |
app-store |
111 third-party integrations | app-store |
app-store-cli |
Code generator that wires apps in app-store | (covered in app-store) |
embeds/embed-core + embed-react + embed-snippet |
JS, React, and snippet embed runtimes | embeds |
platform/atoms + libraries + types + examples |
Cal.com Platform SDK | platform |
emails |
Transactional email templates (React Email) | emails |
dayjs |
Pre-configured Day.js bundle | misc |
i18n |
next-i18next locale bundles | misc |
kysely |
Generated Kysely types from Prisma | misc |
sms |
SMS providers (Twilio, etc.) | misc |
types |
Shared TypeScript types (Calendar, Booking, ...) | misc |
tsconfig |
Shared tsconfig presets | misc |
testing |
Test fixtures + booking scenario builder | misc |
debugging |
Logger and troubleshooter helpers | misc |
di |
Lightweight DI container helpers | misc |
coss-ui |
UI tokens / component primitives shared with the marketing site | misc |
config |
Shared runtime config helpers | misc |
redis (under features) |
Redis client wrappers | features |
Layering
graph BT
Prisma[prisma] --> Lib[lib]
Prisma --> Types[types]
Prisma --> Kysely[kysely]
Lib --> UI[ui]
Lib --> Features[features/*]
Types --> Features
UI --> Features
Features --> TRPC[trpc]
Features --> Web[apps/web]
TRPC --> Web
Features --> AppStore[app-store/*]
AppStore --> Features
PlatformLibs[platform/libraries] --> Features
PlatformLibs --> TRPC
PlatformLibs --> ApiV2[apps/api/v2]
Features --> Embeds[embeds/*]The general rule: prisma and types are the lowest layer; lib builds on them; features builds on lib/ui/prisma; apps consume features. Cycles are avoided by routing API-v2 imports through packages/platform/libraries.
Pages
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.