---
title: "Deploy n8n Calendly"
description: "Calendly bookings to CRM & Slack Self Host"
category: "Automation"
url: https://railway.com/deploy/n8n-calendly
---

# Deploy n8n Calendly

Calendly bookings to CRM & Slack Self Host

**[Deploy n8n Calendly on Railway](https://railway.com/template/n8n-calendly)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/n8n-calendly/manifest.json

- **Creator:** onepush
- **Category:** Automation

## Template content

### Postgres https://devicons.railway.app/i/postgresql.svg

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:18

### n8n

- **Image:** n8nio/n8n:2.36.8
- **Health check:** /healthz
- **Public domain:** Yes

### n8n-worker

- **Image:** n8nio/n8n:2.36.8
- **Start command:** `n8n worker`
- **Health check:** /healthz

### Redis https://cdn.sanity.io/images/sy1jschh/production/0ce0bfdcfbdbf69662b1116671f97c2dd788b655-157x157.svg

- **Image:** redis:8.2
- **Start command:** `/bin/sh -c "rm -rf $RAILWAY_VOLUME_MOUNT_PATH/lost+found/ && exec docker-entrypoint.sh redis-server --requirepass $REDIS_PASSWORD --save 60 1 --dir $RAILWAY_VOLUME_MOUNT_PATH"`

## Documentation

# Deploy and Host self hosted n8n Calendly (Open-Source Calendly Automation) on Railway

When Calendly fires invitee.created and invitee.canceled webhooks, queue-mode n8n sorts timezones, retries, and HubSpot dedupe before Slack pings. This Railway template runs n8n editor, worker, Postgres, and Redis so state survives double webhooks or CRM hiccups.

## About Hosting n8n Calendly open-source software on Railway (self hosted n8n template)

Most people bolt Calendly to a CRM with Zapier and then find canceled bookings created duplicate contacts. Queue-mode n8n on Railway splits the editor from the worker. Postgres holds workflow state and credentials.

Calendly remains the external event source. If you used the [cheapest n8n without queue mode](https://railway.com/deploy/n8n) before, this template adds the worker and queue bits that make concurrent Calendly events safe.

## Why Deploy n8n Calendly, the Zapier alternative on Railway (Railway Free Trial)

Zapier's Calendly integration works until you need to dedupe contacts by email, handle a cancel that arrives after a create, or retry a HubSpot deal upsert after a rate limit. Then you are stuck in a linear no-code box with no real queue semantics.

Railway removes the part where you hand-hold systemd, Docker Compose, or a VPS firewall. You deploy the same n8n image for editor and worker, point both at Postgres and Redis, and Railway keeps services alive.

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying n8n Calendly on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.

### Railway vs Other Hosting Providers and VPS for n8n Calendly self hosting

| Provider | Queue-mode setup | Cost per month | Notes for Calendly webhooks |
|---|---|---|---|
| DigitalOcean | Manual Docker Compose or managed app platform | $12-$30 | You configure Redis and Postgres separately; retries and health checks are on you. |
| AWS | ECS or Lightsail plus RDS and ElastiCache | $25-$60 | Flexible but IAM, VPC, and queue security add hours before the first webhook test. |
| Hetzner | Dedicated VPS with Docker | $8-$15 | Cheap and fast, but you maintain the OS, TLS, backups, and queue failover yourself. |

Railway sits in the middle: managed Postgres and Redis, automatic restarts, and a clean log view without Terraform or VPS babysitting. The tradeoff is less raw compute per dollar than Hetzner, but the ops time saved usually covers the difference.

## Common Use Cases for hosted n8n Calendly

A sales team books demos through Calendly and wants every invitee.created event to create or update a HubSpot contact and deal in one step.

Support teams route canceled events differently. When invitee.canceled fires, n8n looks up the contact by email, marks the deal as lost or closed, and sends a Slack notification so a human can follow up.

Marketing ops often capture UTM parameters or custom questions from Calendly and append them to the HubSpot record.

## Dependencies for n8n Calendly Docker hosted on Railway

The queue-mode stack has four moving parts: the n8n editor, the n8n worker, Postgres, and Redis. The editor is where you build and test the Calendly webhook workflow. The worker executes the workflow when an event arrives.

### Deployment Dependencies for Managed n8n Calendly Service (Calendly Automation)

On Railway you do not install Postgres or Redis by hand. You add a PostgreSQL service and a Redis service from the template, then wire the n8n editor and worker to their connection strings. The n8n image is `n8nio/n8n:2.36.8` for both editor and worker.

### Implementation Details for n8n Calendly (Using n8n official docker image)

Set these environment variables on both the editor and worker: `EXECUTIONS_MODE=queue`, `DB_TYPE=postgresdb`, and the Postgres connection string. Add `QUEUE_BULL_REDIS_HOST` and `QUEUE_BULL_REDIS_PORT` pointing at Redis.

## How does n8n Calendly compare against other scheduling automation platforms

Scheduling automation platforms split into two camps: those that keep everything inside the scheduling vendor, and those that connect arbitrary apps. Calendly Automations and HubSpot Workflows belong to the first camp. Zapier and Make belong to the second.

### n8n Calendly vs Calendly Automations (Calendly Automations Alternative)

Calendly Automations can send a Slack message or update a CRM field right after a booking. That is fine for simple, single-step jobs. It wins on setup time: enable it in the Calendly dashboard, no server needed.

### n8n Calendly vs Zapier (Zapier Alternative)

Zapier has a polished Calendly trigger and prebuilt HubSpot actions. For a basic "new invitee -> create contact" flow, Zapier is faster to build than n8n. Zapier wins when you want zero infrastructure and don't mind paying per task.

### n8n Calendly vs Make (Make Alternative)

Make offers visual routing and some error handling, and its Calendly module works well for small teams. Make is easier than n8n for non-developers who want branching without JavaScript.

### n8n Calendly vs HubSpot Workflows (HubSpot Workflows Alternative)

HubSpot Workflows can trigger on contact property changes, but it cannot natively receive Calendly webhooks without a separate connector. You would still need Zapier or a custom webhook to get the invitee payload into HubSpot.

## How to use n8n Calendly (the OSS Calendly Automation)?

First, get the Calendly webhook signing key from your Calendly account. In n8n, create a Webhook node and paste the signing key so n8n can verify each request. Test with a real invitee.created event from Calendly.

For cancel events, create a separate workflow that listens for invitee.canceled. Deduplicate by the Calendly event UUID or invitee email, then mark the deal as closed or lost and notify Slack.

## How to self host n8n Calendly on other VPS Services (n8n Calendly self hosting guide)

If you want to run this outside Railway, the steps are the same but you own the infrastructure. You need Docker, Postgres, and Redis on the VPS.

### Clone the Repository

Clone the n8n repository or simply pull the official Docker image `n8nio/n8n:2.36.8`. You do not need the source code for a basic deployment, but cloning lets you inspect the worker command and default environment.

### Install Dependencies

Install Docker and Docker Compose on the VPS. Pull the Postgres and Redis images. Create a Docker network so the editor, worker, Postgres, and Redis can talk to each other.

### Configure Environment Variables

Copy the same environment variables from the Railway section: `EXECUTIONS_MODE=queue`, `DB_TYPE=postgresdb`, Postgres connection string, Redis host and port, `WEBHOOK_URL`, `N8N_PROXY_HOPS=1`, `N8N_ENCRYPTION_KEY`, and `EXECUTIONS_DATA_PRUNE=true`.

### Start the n8n Calendly Application

Start Postgres and Redis first. Then start the editor container with the normal n8n command and the worker container with `n8n worker`. Open port 5678 on the editor and point your Calendly webhook at `https://your-vps.com/webhook/...`.

## Official Pricing of n8n Calendly (n8n Calendly pricing)

n8n itself has no official price for the Community Edition; it is fair-code and free to self-host. The n8n Cloud Starter plan costs about $24 per month for 2,500 executions, which is the managed cloud option.

## n8n Calendly cloud vs self hosted comparison (Pricing, features, costs, and more)

n8n Cloud gives you managed hosting, automatic updates, and no server maintenance. It wins for teams that want a SaaS-like experience and don't need queue mode at small scale.

### Monthly cost of self hosting n8n Calendly on Railway

Expect around $10 for a small Postgres instance, a small Redis instance, and the two n8n containers on Railway's hobby plan. Heavy Calendly webhook volume or long-running HubSpot operations may push you to $20-$25 per month.

### System Requirements for Hosting n8n Calendly on a VPS

A single VPS with 2 vCPU, 4 GB RAM, and 40 GB SSD can run the editor, worker, Postgres, and Redis for low-to-moderate Calendly traffic.

## Frequently Asked Questions (FAQs)

### How do I handle invitee timezone correctly in n8n?

Calendly sends the invitee's timezone as an IANA string like `America/New_York`. Use a Code node with `Intl.DateTimeFormat` to convert the event start time to that timezone before writing to HubSpot or Slack.

### How do I make invitee.created and invitee.canceled idempotent?

Use the Calendly event UUID as the dedupe key. Before any HubSpot or Slack action, check a Postgres table or n8n static data for that UUID. If it exists, skip the rest of the workflow.

### What happens if Calendly retries a webhook while my n8n worker is busy?

Queue mode puts the retry in Redis Bull. The worker processes it when a slot frees up. If the same event UUID arrives twice, your idempotency check prevents duplicate CRM records and Slack pings.

### Why can't I use SQLite with queue mode?

SQLite does not support the concurrent connections that queue mode requires. The editor and worker both need to read and write workflow state, and SQLite would lock under that load. You must set `DB_TYPE=postgresdb` and point both services at Postgres.

### What do I do if I lose my N8N_ENCRYPTION_KEY?

You cannot recover encrypted credentials stored in Postgres. You will need to recreate the n8n credentials for Calendly, HubSpot, and Slack. Keep the key in a Railway variable or a password manager and never rotate it casually.

### Does Community Edition support SSO for the n8n editor?

No. Community Edition has no built-in SSO or user management. Protect the editor with a strong password, put it behind a VPN, or use a reverse proxy with basic auth.


## Similar templates

- [N8N Main + Worker](https://railway.com/deploy/n8n-main-worker) — Deploy and Host N8N with Inactive worker.
- [Evolution API with n8n](https://railway.com/deploy/evolution-api-with-n8n) — Automate WhatsApp workflows with Evolution API, n8n, and Postgres.
- [Postgres Backup](https://railway.com/deploy/postgres-s3-backups) — Cron-based PostgreSQL backup to bucket storage

Open this page in a browser: https://railway.com/deploy/n8n-calendly
