Cal.diy
Cal.diy provides the documented nextjs workflow.
Why consider Cal.diy?
Cal.diy is a community-driven, fully open-source scheduling platform that acts as an enterprise-free fork of Cal.com.
Learn Cal.diy by building
Practical setup notes, real use cases, and copy-ready examples in one focused guide.
Cal.diy: An Open-Source Alternative for Scheduling
Scheduling infrastructure often comes tied to enterprise licenses and closed features. Cal.diy is a community-driven, fully open-source scheduling platform designed for individuals and self-hosters. Built as a fork of Cal.com, it provides full control over your scheduling system without any commercial dependencies. According to its official README, "Cal.diy is the community-driven, fully open-source scheduling platform — a fork of Cal.com with all enterprise/commercial code removed."
By opting for this project, you bypass the need for an enterprise license key and gain access to a platform that is entirely transparent. As stated in the repository, "Cal.diy is 100% MIT-licensed with no proprietary "Enterprise Edition" features." The official license file confirms it is provided under the MIT License.
Key Differences from Commercial Offerings
Because Cal.diy strips out commercial code, it explicitly omits several enterprise features. As noted in the documentation, "- No enterprise features — Teams, Organizations, Insights, Workflows, SSO/SAML, and other EE-only features have been removed". This makes the tool heavily focused on the core scheduling flow for a single user or a self-hosted community, rather than large corporate teams relying on SSO or complex routing workflows.
Initial Setup and Generating Keys
Deploying Cal.diy requires setting up essential environment variables, particularly those handling encryption and authentication. During the setup process, administrators must generate random base64 strings to secure the platform. The README details that you should: "- Use openssl rand -base64 32 to generate a key and add it under NEXTAUTH_SECRET in the .env file." Furthermore, you must also "- Use openssl rand -base64 24 to generate a key and add it under CALENDSO_ENCRYPTION_KEY in the .env file."
These cryptographic keys ensure that booking information, external calendar tokens, and authentication cookies remain protected at rest and in transit.
Launching the Development Environment
If you want to quickly spin up the environment, Cal.diy offers a streamlined developer experience command. As stated in the repository instructions, this shortcut "> - Requires Docker and Docker Compose to be installed", and it will automatically launch the local instance alongside PostgreSQL.
Run the following command to start the environment:
yarn dxThis command significantly reduces the friction of manually configuring the database and allows developers to immediately begin interacting with the codebase.
Seeding Test Data
Once the local database is running, you can populate it with test users to verify scheduling workflows. This is particularly useful for assessing how different user roles interact with the application. The project provides a built-in script for this purpose. According to the setup guide, you can seed the local database by running:
cd packages/prismayarn db-seedExecuting this command ensures that you have access to dummy users, because "The above command will populate the local db with dummy users." It sets up the local environment with credentials for testing, making it intuitive to navigate the freshly deployed instance out of the box.
Related tools
More options with a similar category or technology profile.
McFly
Fly through your shell history with an intelligent neural network search engine.
cheat
Interactive command-line cheatsheets for system administrators and software engineers.
Pipenv
Python development workflow for humans uniting Pipfile, pip, and virtualenv.
Rye
Comprehensive Python package and workspace management tool written in Rust.