

How to deploy Cal.com with Northflank
If you want a simple way to let people book time with you, Cal.com is one of the best tools available. It syncs with your existing calendars, manages multiple schedules at once, connects with popular video conferencing platforms, and keeps everyone updated automatically when plans change.
In this guide, you’ll learn how to deploy Cal.com on Northflank(a developer platform that makes it easy to build, scale, and manage applications). With Northflank, you can launch Cal.com in minutes using a one-click template or set everything up manually.
Before you begin, ensure you create a Northflank account.
- Deploying Cal.com with a one-click template on Northflank
- Deploying Cal.com manually on Northflank
What is Northflank?
Northflank is a developer platform that makes it simple to build, deploy, and scale applications, databases, jobs, and even GPU workloads. It provides an abstraction over Kubernetes with intelligent defaults, making production-ready deployments easier without losing flexibility. Teams use Northflank to standardize their deployments and streamline DevOps workflows.
Option 1: Deploy Cal.com with a one-click template on Northflank
You can launch Cal.com on Northflank in just a few minutes using the ready-made template. This option is perfect if you want to get started quickly without dealing with manual setup.
The Cal.com deployment on Northflank includes:
- 1 addon: PostgreSQL
- 1 secret group for managing environment variables
- Deployment of the Cal.com service from the Docker image:
calcom/cal.com:latest
- Visit the Cal.com template on Northflank.
- Click ”Deploy”.
- Northflank will:
- Create a project, database, secret group, and service
- Build your container from the template
- Deploy and run the app
- Once live, you’ll receive a public URL where your Cal.com app is accessible.
Note: You can add additional environment variables if needed. Check the full list of supported environment variables in the Cal.com repository for more customization.
If you want more flexibility or need to customize your setup, you can deploy Cal.com manually. This approach gives you full control over configuration and integrations.
Log in to your Northflank dashboard, click the "Create new" button (+ icon) in the top right corner of your dashboard. Then, select "Project" from the dropdown.
Projects serve as workspaces that group together related services, making it easier to manage multiple workloads and their associated resources.
You’ll need to fill out a few details before moving forward.
-
Enter a project name, such as
calcom-project
and optionally pick a color for quick identification in your dashboard. -
Select Northflank Cloud as the deployment target. This uses Northflank’s fully managed infrastructure, so you do not need to worry about Kubernetes setup or scaling.
(Optional) If you prefer to run on your own infrastructur,e you can select Bring Your Own Cloud and connect AWS, GCP, Azure, or on-prem resources.
-
Choose a region closest to your users to minimize latency for calendar syncing and video calls.
-
Click Create project to finalize the setup.
Inside your project, go to the Addons tab at the top menu and click "Create new addon". Then, select PostgreSQL as the Addon type, give it a descriptive name such as calcom-db
, select your prefered version, and choose a compute plan size.
- If you’re just testing or experimenting, the smallest option is cost-effective and sufficient.
- For production, we recommend starting with
nf-compute-50
. This provides more resources and stability, ensuring Cal.com runs reliably under real workloads.
Once you’ve configured the settings, click Create addon to provision your database.
Next, go to the Secrets tab and click Create Secret Group. Name it something easy to recognize, such as calcom-secrets
. This group will hold all the environment variables required by Cal.com. You can find the full list of supported variables in the Cal.com .env.example
.
If you don't want to go through the stress of manually configuring or searching for environment variables to use, you can use the already configured ones below:
NEXT_PUBLIC_WEBSITE_TERMS_URL={Update with your deployment service url}
NEXT_PUBLIC_WEBSITE_PRIVACY_POLICY_URL={Update with your deployment service url}
NEXTAUTH_SECRET=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ORGANIZATIONS_ENABLED=true
NEXT_PUBLIC_WEBAPP_URL={Update with your deployment service url}
CALENDSO_ENCRYPTION_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
CALCOM_TELEMETRY_DISABLED=false
NEXT_PUBLIC_SINGLE_ORG_SLUG=false
Notes about these values:
NEXTAUTH_SECRET
andCALENDSO_ENCRYPTION_KEY
→ You can generate these values viaopenssl rand -base64 32
.NEXT_PUBLIC_WEBAPP_URL
→ set tohttp://localhost:3000
for now. After Step 4 (deploy service), replace this with your actual Northflank public URL (e.g.https://p01--calcom-app--xxxx.code.run
), same asNEXT_PUBLIC_WEBSITE_PRIVACY_POLICY_URL
andNEXT_PUBLIC_WEBAPP_URL
. You can also add a custom domain by visiting here.
Link the PostgreSQL addon to your secret group
Northflank addons (like PostgreSQL) expose connection details (username, password, etc.). Instead of manually copying these values into your secrets, you can link the addon directly to your secret group. This way, whenever the addon rotates credentials, your service automatically receives the updated values.
- Under the Linked addons section, click "Configure" to map
HOST
to the aliasDATABASE_HOST
. - Map
POSTGRES_URI_ADMIN
to bothDATABASE_URL
andDATABASE_DIRECT_URL
.
Here we're not inventing new values, we're just telling Northflank to feed the Postgres addon's host and URI into the environment variable names your service requires.
Finally, click Create secret group to save everything.
Within your project, navigate to the Services tab in the top menu and click ’Create New Service'. Select Deployment and give your service a name such as calcom-app
.
For the deployment source, choose External image and enter the official Cal.com Docker image: calcom/cal.com:latest
.
Select compute resources
Choose the compute size that best matches your workload:
- Small plans are fine for testing or lightweight usage.
- Larger plans are recommended for production, as Cal.com can be resource-intensive under real-world traffic.
The flexibility to adjust resources later means you can start small and scale up as your scheduling needs grow.
Configure networking
Set up a port so your app is accessible:
- Port:
3000
(the default port for Cal.com) - Protocol:
HTTP
- Public access: enable this to let people access your scheduling app from the internet
Northflank will automatically generate a secure, unique public URL for your service. This saves you from having to manage DNS or SSL certificates manually.
Deploy your service
When you’re satisfied with your settings, click "Create service." Northflank will pull the image, provision resources, and deploy Cal.com.
Once the deployment is successful, you’ll see your service’s public URL at the top right corner, e.g.: p01--calcom-app--lppg6t2b6kzf.code.run
Deploying Cal.com on Northflank is a straightforward way to run your own scheduling platform without worrying about infrastructure complexity. Whether you choose the one-click template for a quick start or the manual deployment for full customization, Northflank provides the tools you need to scale and manage your application with ease.
By combining Cal.com’s powerful scheduling features with Northflank’s developer-friendly platform, you get a reliable, production-ready setup that makes booking and managing meetings seamless.