---
title: "Cal.diy"
description: "Cal.diy is an open-source, MIT-licensed scheduling platform from Cal.com."
url: https://exe-staging.dev/deploy/cal-diy
category: "Productivity"
updated: 2026-10-17
---

# Cal.diy

Open-source scheduling app on exe.dev

- **Software:** Cal.diy (https://cal.diy)
- **Source:** https://github.com/calcom/cal.diy
- **License:** MIT
- **Example VM name:** `my-cal-diy` (yours will differ; on the VM, `hostname` prints it)
- **Machine-readable:** https://exe-staging.dev/deploy/cal-diy/manifest.json

## What you get

- Cal.diy from the official Docker image, with a PostgreSQL container, started with Docker Compose
- Its runtime variables and generated secrets in an `.env` file
- Cal.diy at `https://my-cal-diy.exe.xyz:3000/`, ready for the setup wizard

Running on the VM:

- **Cal.diy**: The official Docker image, in Docker Compose, port 3000, data in `~/cal.diy`
- **PostgreSQL**: A PostgreSQL container, in Docker Compose

How it is reached:

- https://my-cal-diy.exe.xyz:3000/ (private): Cal.diy

## Deploy with Shelley

Open https://exe-staging.dev/new?idea=cal-diy to create a VM whose agent, Shelley, follows this recipe. From a terminal:

```sh
curl -fsSL https://exe-staging.dev/deploy/cal-diy/prompt.txt | ssh exe.dev new --prompt=/dev/stdin
```

Or follow the steps below by hand.

Run [Cal.diy](https://github.com/calcom/cal.diy) on an exe.dev VM.

Cal.diy is an open-source, MIT-licensed scheduling platform from Cal.com. It works well for personal booking pages, team scheduling, and testing calendar workflows without needing a hosted Cal.com account.

## Quick start

Create a new Cal.diy VM from the [Cal.diy starter](https://exe.dev/new?idea=cal-diy).

## How it works

The starter installs Docker and runs the official Cal.diy Docker image with a PostgreSQL container. It writes the required runtime variables, generates secrets, and starts the stack with Docker Compose.

Cal.diy runs on port 3000. Use exe.dev's port-qualified proxy URL to open it in your browser:

```
https://<vm-name>.exe.xyz:3000/
```

This is different from many exe.dev starters that put nginx on port 8000. The Cal.diy starter keeps Next.js on port 3000 and exposes that port directly through the exe.dev proxy.

If you want Cal.diy to use the default URL with no port suffix, change the VM's default HTTP proxy port with the SSH lobby command:

```
ssh exe.dev share port <vm-name> 3000
```

After that, `https://<vm-name>.exe.xyz/` will proxy to Cal.diy on port 3000. See the [`share port` command docs](/api?cmd=help+share+port) for details.

## Runtime variables

The official Docker image supports runtime variables such as `DATABASE_URL`, `NEXT_PUBLIC_WEBAPP_URL`, `NEXTAUTH_URL`, `NEXTAUTH_SECRET`, and `CALENDSO_ENCRYPTION_KEY`. exe.dev VMs run Docker normally, so Docker Compose can pass these values through an `.env` file.

The Cal.diy README notes that if `NEXT_PUBLIC_WEBAPP_URL` differs from the value baked into the image at build time, startup may take a little longer while the container updates statically built files. That is expected.

## First-time setup

Open the app and complete the setup wizard to create your first user.

If the calendar connection step appears required and you do not want to connect a calendar yet, go directly to:

```
https://<vm-name>.exe.xyz:3000/event-types
```

Calendar integrations such as Google Calendar and Outlook require their own API credentials.

## Operations

The project lives at `/home/exedev/cal.diy` on the VM. Useful commands:

```
sudo docker compose ps
sudo docker compose logs -f caldiy
sudo docker compose restart caldiy
sudo docker compose pull
sudo docker compose up -d
```

## Related

- [Self-host n8n](https://exe-staging.dev/deploy/n8n.md): Connect your apps. Let the boring bits run themselves.
- [Run Claude Code on a remote server](https://exe-staging.dev/deploy/claude-code.md): A computer for Claude. A breather for your laptop.
- [Host OpenClaw](https://exe-staging.dev/deploy/openclaw.md): An AI sidekick with its own computer. Your laptop can take a nap.
- [VS Code in your browser, with code-server](https://exe-staging.dev/deploy/code-server.md): Your editor in a tab. Your projects right where you left them.
- [Self-host Uptime Kuma](https://exe-staging.dev/deploy/uptime-kuma.md): A little lookout for your websites. Green bars encouraged.
