Calnode MCP

A self-hosted scheduler with a built-in MCP server: an agent checks slots, books, reschedules and cancels calls.

  • 134 ★ on the repository
  • Last commit
MCP serverOfficial

Broad access

Why this level

  • The agent creates, reschedules and cancels bookings, which triggers guest emails and calendar events.
  • The service stores guest personal data and OAuth access to host calendars.
All reasons and checks

calnode/calnode

Install

Manual install

docker run -p 3000:3000 -v ./data:/data ghcr.io/calnode/calnode:latest

The first quick-start command from the README. The MCP server is built in: `calnode mcp` over stdio or the `/mcp` address over HTTP.

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • The agent creates, reschedules and cancels bookings, which triggers guest emails and calendar events.
  • The service stores guest personal data and OAuth access to host calendars.

This is third-party code. Review the repository files before installing.

What it does

Calnode, a Calendly-style scheduler, ships as a single Go binary with a SQLite database. An MCP server is built into it with ten tools, including `get_available_slots`, `create_booking`, `reschedule_booking`, `cancel_booking`, `list_bookings`, `get_meeting_notes` and `get_transcript`. They call the same internal services as the REST API, so emails, calendar events and webhooks fire in the same way. A local agent runs `calnode mcp` over stdio. A remote agent adds the `/mcp` address as a custom Claude connector: Calnode acts as an OAuth 2.1 server and asks for a Google or Microsoft sign-in. Scripts can use an API key with the `cno_` prefix.

Who it is for. Owners of small services and consultants who self-host call booking and want to hand it to an AI agent.

Good fit when

  • An agent finds free time and books a call from a plain-language request.
  • A scheduler must run on a cheap VPS without Redis and Postgres.
  • Booking events go to n8n or Make through signed webhooks.
  • An agent reads notes and the transcript of a finished meeting through `get_meeting_notes`.

Not a fit when

  • You want a ready cloud booking service without your own server.
  • You need configurable access roles: Calnode has three, `owner`, `admin` and `member`.
  • You need a non-English admin panel: the admin UI and video room are English only.

Example request

Find slots for the intro-call event type next week in the Auckland timezone and book Tuesday afternoon.

MCP

Transport
stdio, http
Authentication
OAuth

Environment variables

BASE_URL
Public address of the installation; needed for a real deployment.
CALNODE_ENCRYPTION_KEY secret
Encryption key for stored credentials; generated automatically on a quick start.
CALNODE_RECOVERY_SECRET secret
Recovery secret for production deployments.
DATABASE_URL
Database address, for example `sqlite:///data/calnode.db`.

Limitations

This is a whole application: it is deployed with Docker or a binary, not connected with one command. Remote connection from Claude needs HTTPS and a paid plan with custom connectors. Local `calnode mcp` needs no OAuth, but the agent gets full access to the local database. Video and meeting transcripts need an external LiveKit and Deepgram. The README version is early (`0.1`), and several interface translations are machine drafts.

How to disable. Remove the connector from Claude or the `calnode mcp` entry from the client configuration. Revoke the `cno_` keys and OAuth consents in Calnode settings, then stop the container.

FAQ

How do I connect Calnode to Claude?

In Claude open Settings, Connectors, Add custom connector and enter `https://<your-server>/mcp`. Then click Connect, sign in and allow access. The server must run over HTTPS.

Can I skip OAuth?

Yes. A local agent runs `calnode mcp` over stdio, and scripts use a `cno_` API key in the Authorization header.

What can an agent acting as a team member do?

The `member` role sees and changes only bookings it hosts. The `owner` and `admin` roles work across the whole workspace.

How does Calnode differ from cal.com?

The author contrasts them: one binary and SQLite instead of Redis and Postgres, API-first webhooks and a built-in MCP server. The licence is Apache-2.0.

How do I deploy Calnode?

With `docker run` and the `ghcr.io/calnode/calnode:latest` image, or from the standalone Linux binary archives on the releases page. For production set `BASE_URL`, `CALNODE_ENCRYPTION_KEY` and `CALNODE_RECOVERY_SECRET`.

Discussion

No questions or reviews yet.

A self-hosted scheduler on Cloudflare Workers with a built-in MCP server: an agent lists slots, creates and reschedules bookings

MCP serverExtended access127Repository stars

A calendar MCP for Claude Desktop: the agent views, creates, updates and deletes Google Calendar events, recurring ones included

MCP serverBroad access59Repository stars

MCP server for the macOS calendar: an agent creates, finds and edits events in natural language

MCP serverExtended access333Repository stars

Yandex Calendar MCP server

Яндекс Календарь MCP для Claude

Russian stack

An MCP server for Yandex Calendar: view, create and delete events using an app password

MCP serverExtended access4Repository stars
Russian stack

A Yandex Calendar MCP server over CalDAV: reading the schedule, creating and editing events, invitations with real email delivery

MCP serverBroad access1Repository stars

Connects an agent to Nextcloud: notes, calendar, contacts, files, mail and Deck boards through more than 110 MCP tools

MCP serverBroad access405Repository stars

README in short

The repository presents Calnode as a compact alternative to cal.com and Calendly: booking pages, paid bookings through Stripe, Zoom and Google or Microsoft Calendar integrations, 88 REST API endpoints and HMAC-signed webhooks. Data lives in SQLite with Litestream backups.

README badge

Report a problem

Foxx AICalnode
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.