mrkeyoor.com_
Fri 16 Oct 17:58 UTC
Self-Hostedevaluationupdated 26 Aug 2026

cal.diy review

Cal.diy is a community-maintained, MIT-licensed fork of Cal.com for running a personal scheduling service on your own server. It keeps individual booking pages and calendar integrations while removing teams, organizations, workflows, SSO/SAML, analytics, and other commercial features.

+90stars / 7d
Verdict

Our run installed 4,673 packages and 3,958 MB, passed its test target in 224 seconds, then failed the build because NEXTAUTH_SECRET was missing, so Cal.diy is testable but configuration-heavy even before deployment. Use it for a personal booking service only if you already operate PostgreSQL, secrets, email, OAuth, and backups. For a company calendar or any appointment flow tied to revenue, follow the project's own advice and choose Cal.com or another supported production system.

We ran it

Lab card: what happened when we ran cal.diyScreenshot of cal.diy (cal.diy)
Install✓ · 769s4673 packages · 3958 MB
Build✗ · 140s
Tests✓ · 224sran, no count parsed
Repo7695 files~555,499 lines of source · 205.8 MB · 50 CI workflows · Dockerfile

Answers from our run

Does cal.diy build from source?

Dependencies installed in 769 seconds (4673 packages), and the build failed. We cloned commit 176037d into a clean Debian container with 3 CPUs and no project-specific setup.

Do cal.diy's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Who should not use cal.diy?

Businesses or production services: the README strictly recommends Cal.diy for personal, non-production use and directs commercial users to Cal.com.

What are the alternatives to cal.diy?

Cal.com, Easy!Appointments, Rallly. Our run installed 4,673 packages and 3,958 MB, passed its test target in 224 seconds, then failed the build because NEXTAUTH_SECRET was missing, so Cal.

Setup2/54,673 packages plus database, secrets, migrations, and OAuth
Docs4/5Detailed Docker, source, secret, database, and integration setup
Community4/547,926 stars and active issues, though pushes are less frequent
Maturity3/5Tests passed, but maintainers explicitly limit it to personal use

Discussed on

  1. hnCal.diy: open-source community edition of cal.com259 points

Who it’s for

Individuals who want a personal booking page and are comfortable running PostgreSQL and a web server.
Hobby self-hosters who prefer a fully MIT-licensed fork without a license key.
Contributors interested in a large Next.js, tRPC, Prisma, and React scheduling codebase.
Users whose needs fit single-person scheduling and supported calendar integrations.

Who it’s NOT for

Businesses or production services: the README strictly recommends Cal.diy for personal, non-production use and directs commercial users to Cal.com.
Teams needing shared administration: teams, organizations, insights, workflows, SSO/SAML, and other enterprise features are deliberately removed.
Anyone expecting managed hosting or vendor support: the README says there is no hosted Cal.diy service.
Operators unwilling to manage authentication secrets, encryption keys, PostgreSQL, migrations, backups, OAuth applications, email delivery, and TLS.
Small servers with tight disk or memory limits: our install used 3,958 MB, and the README suggests up to 16,384 MB of Node heap for development.

Setup reality

Our yarn install succeeded in 769 seconds, adding 4,673 packages and using 3,958 MB. Tests completed successfully in 224 seconds. The build failed after 140 seconds because @calcom/web required NEXTAUTH_SECRET; 12 of 13 build tasks had succeeded before that error. The log does not show another cause.

A working instance needs PostgreSQL, NEXTAUTH_SECRET, a 32-byte CALENDSO_ENCRYPTION_KEY, public and auth URLs, migrations, and outbound email. Calendar, conferencing, CRM, and push integrations add OAuth applications, redirect URLs, or API keys.

Docker Compose can start PostgreSQL, Cal.diy, and Prisma Studio, but source builds currently need a database and build-time environment values. The monorepo has 7,695 files, about 555,499 lines of source, 50 CI workflows, Docker and Compose files, and several platform-specific setup notes.

4,673 packages are a high price for personal scheduling

Our yarn install added 4,673 packages, occupied 3,958 MB, and took 769 seconds. Cal.diy is not a small calendar form: it is a 7,695-file monorepo with about 555,499 lines of source, built from the community edition of Cal.com. The fork's appeal is straightforward. An individual gets self-hosted booking pages and integrations under one MIT license, without a Cal.com account or commercial license key. The operational cost looks much closer to a company web application than a personal utility.

The fork removes the parts that would justify that cost for many organizations. Its README names teams, organizations, insights, workflows, SSO/SAML, and other enterprise-only features as intentionally absent. There is no managed Cal.diy service. That leaves a sensible niche: a capable personal scheduling page for a self-hoster who already runs databases and web apps. A small company may initially fit the feature set, but the maintainers explicitly tell commercial and enterprise users to choose Cal.com.

What happened when we ran it

In our 3 CPU, 8 GB sandbox, dependency installation succeeded in 769 seconds and placed 4,673 packages on disk, consuming 3,958 MB. The test target then completed successfully in 224 seconds. The lab block does not contain a test count, so we cannot state how many cases ran. The repository had 50 CI workflow files, Docker and Compose files, and monorepo workspaces. Our repository signal found no top-level tests directory, despite the declared test command completing.

The build ran for 140 seconds and failed with exit code 1. Twelve of 13 tasks had succeeded when @calcom/web stopped with Error: Please set NEXTAUTH_SECRET. The log also warned that no output files were found for the @calcom/ui build task, but it identifies the missing secret as the failed command's error. We did not guess a second cause. This is a useful setup finding because the README requires that secret at both build time and runtime.

Two secrets and PostgreSQL are the minimum

Cal.diy requires a PostgreSQL database, NEXTAUTH_SECRET, and a 32-byte CALENDSO_ENCRYPTION_KEY. The public application URL and authentication URL must agree with the deployed route. Database migrations run through Prisma, and production needs backups plus a migration plan for upgrades. The README's Docker Compose stack can launch PostgreSQL, the web app, and Prisma Studio, which is convenient for a trial. It still uses placeholder credentials that must be replaced before exposing the service.

Email and calendar access add more moving parts. Google Calendar needs a cloud project, OAuth consent configuration, scopes, redirect URLs, and downloaded credentials. Microsoft, Zoom, Daily, Basecamp, HubSpot, Webex, Zoho, and Pipedrive each bring their own keys or OAuth setup. Push notifications require VAPID keys. The 3,958 MB dependency tree is therefore only the local code cost; the useful scheduling service depends on correct callbacks, secret rotation, outbound mail, and public TLS.

Docker does not remove build-time configuration

The Docker instructions can run a full local stack or point the web app at a remote PostgreSQL database. Building the image from source currently requires an available database plus environment values at build time. The documented command also disables Docker BuildKit so the build can use a network bridge, and the README says that requirement may be removed later. Operators should decide which settings are baked into static output and which can safely change at container startup.

Resource use deserves attention on a small server. Our 769-second install used nearly 4 GB on disk, and the development notes suggest a Node heap setting as high as 16,384 MB when needed. That recommendation is not a minimum RAM requirement, but it warns that the monorepo can stress modest machines. Prebuilt images avoid local compilation, while PostgreSQL, the Next.js server, Prisma Studio, and integration jobs still compete for memory and storage at runtime.

Personal-only is an honest maintenance boundary

Cal.diy's opening warning says to use it at your own risk and strictly recommends personal, non-production use. It calls out server administration, database management, and sensitive-data security as prerequisites. That wording matters more than the 47,926 GitHub stars. If missed bookings, broken OAuth, or a failed migration can cost money, the project does not promise the support boundary a business needs. MIT licensing grants code freedom; it does not create an operations team.

Health is mixed rather than stale. GitHub showed a last push on August 8, 2026, while an issue was updated on August 25. The latest release, v6.2.0, was published on March 1. There were 1,426 open issues and pull requests combined, a figure that includes contribution work and should not be called a bug count. Recent issue activity shows people are still working in the queue, but the older release and less recent push support conservative upgrade testing.

Cal.diy is for one self-hoster, not a company

A personal scheduling server can justify Cal.diy when the owner wants Cal-style booking pages, accepts the removed team features, and already knows how to protect PostgreSQL and OAuth secrets. The successful 224-second test target is encouraging. The 140-second build failure also proves the configuration is enforced early. Add both required secrets, use a disposable database first, verify email and one calendar provider, then test upgrades and restores before publishing a booking link.

Businesses should stop at the README's warning. Cal.com is the direct choice when teams, workflows, SSO, or vendor support matter. Easy!Appointments fits service-business appointments, while Rallly handles group availability polls with less product scope. Cal.diy provides substantial scheduling code under MIT, but 4,673 packages, a database, public OAuth callbacks, and personal-only maintenance guidance make it a poor place to save money on a revenue-bearing calendar.

Alternatives

ProjectWhat it isPick it when
Cal.comThe upstream scheduling platform with hosted, team, workflow, SSO, and enterprise options.pick this instead when scheduling is business-critical or several people need shared administration.
Easy!AppointmentsA self-hosted appointment scheduler aimed at service businesses and customer bookings.pick this instead when staff, services, and appointment administration matter more than Cal-style personal links.
RalllyA self-hosted group scheduling and meeting-poll application.pick this instead when the main problem is finding a time across a group, not publishing personal availability.

What people are saying

  1. [github-trending] calcom/cal.diy

Sources

  1. Cal.diy README and deployment guide
  2. Cal.diy v6.2.0 release
  3. Cal.diy issue queue

More self-hosted reviews

Qwen3.8-Flash-Next-Single-DGX-Spark-TensorFold · invisible_dots · LibreTV · unifi-toolkit · ps5-payload-manager · DiPlay · the whole board →