# deltat

deltat gives an agent a calendar flow built around slot search, temporary holds, and atomic confirmation. It helps avoid double bookings.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 9
- Author: open-deltat
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/open-deltat/tap/tree/HEAD/packages/mcp
- Updated: 2026-10-04
- HTML: https://affpapa.org/en/nevibecode/mcp/deltat

## What it does

deltat exposes calendar actions through `find_slots`, `hold_slot`, and `commit_hold`. The agent can reserve a proposed time before a person confirms it, then commit or release that hold. Other tools create calendars, replace weekly availability, list bookings, and cancel them.

The same operation can cover several calendars, such as equipment and staff. A commit succeeds for all requested calendars or for none. Responses use typed errors including `CONFLICT`, `EXPIRED`, `INVALID`, and `NOT_FOUND`; timestamps must be RFC 3339 values with an explicit offset.

You need a deltat server version 0.4.0 or later and `DELTAT_PASSWORD`. Without `DELTAT_PASSWORD`, the MCP server refuses to start. The package runs through `npx`, with host, port, database, and user supplied through environment variables.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `DELTAT_PASSWORD`, `DELTAT_HOST`, `DELTAT_PORT`, `DELTAT_DATABASE`, `DELTAT_USER`, `DELTAT_TLS`, `DELTAT_TLS_CA` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env DELTAT_PASSWORD=<DELTAT_PASSWORD> --env DELTAT_HOST=<DELTAT_HOST> --env DELTAT_PORT=<DELTAT_PORT> --env DELTAT_DATABASE=<DELTAT_DATABASE> --env DELTAT_USER=<DELTAT_USER> --transport stdio mcp -- npx -y @open-deltat/mcp
```
Replace <…> with your own values. 2 more environment variables are in the server README

### Codex

**Platform CLI**
```bash
codex mcp add mcp --env DELTAT_PASSWORD=<DELTAT_PASSWORD> --env DELTAT_HOST=<DELTAT_HOST> --env DELTAT_PORT=<DELTAT_PORT> --env DELTAT_DATABASE=<DELTAT_DATABASE> --env DELTAT_USER=<DELTAT_USER> -- npx -y @open-deltat/mcp
```
Replace <…> with your own values. 2 more environment variables are in the server README

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "mcp": {
            "command": "npx",
            "args": [
                "-y",
                "@open-deltat/mcp"
            ],
            "env": {
                "DELTAT_PASSWORD": "<DELTAT_PASSWORD>",
                "DELTAT_HOST": "<DELTAT_HOST>",
                "DELTAT_PORT": "<DELTAT_PORT>",
                "DELTAT_DATABASE": "<DELTAT_DATABASE>",
                "DELTAT_USER": "<DELTAT_USER>"
            }
        }
    }
}
```
Replace <…> with your own values. 2 more environment variables are in the server README

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "mcp": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@open-deltat/mcp"
            ],
            "env": {
                "DELTAT_PASSWORD": "<DELTAT_PASSWORD>",
                "DELTAT_HOST": "<DELTAT_HOST>",
                "DELTAT_PORT": "<DELTAT_PORT>",
                "DELTAT_DATABASE": "<DELTAT_DATABASE>",
                "DELTAT_USER": "<DELTAT_USER>"
            }
        }
    }
}
```
Replace <…> with your own values. 2 more environment variables are in the server README

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e DELTAT_PASSWORD=<DELTAT_PASSWORD> -e DELTAT_HOST=<DELTAT_HOST> -e DELTAT_PORT=<DELTAT_PORT> -e DELTAT_DATABASE=<DELTAT_DATABASE> -e DELTAT_USER=<DELTAT_USER> mcp npx -y @open-deltat/mcp
```
Replace <…> with your own values. 2 more environment variables are in the server README

## When to use it
- find an open time across selected calendars
- hold a slot while a person decides
- commit linked bookings as one operation
- release a time that is no longer needed
- list or cancel an existing booking

## Example prompts
- Create a calendar called “Haircuts”, set weekday afternoon availability, and find the first open 30-minute slot tomorrow.
- Find a time when the equipment and crew calendars are both free, hold it, then commit it after I confirm.
- If the requested time conflicts, show alternatives and hold the one I choose with `hold_slot`.

## Similar
- [google-calendar](https://affpapa.org/en/nevibecode/skills/membrane-google-calendar.md) — skill · 337 installs
- [calendar-mcp](https://affpapa.org/en/nevibecode/mcp/calendar-mcp.md) — MCP server · ★ 27
- [Temporal Cortex Calendar MCP](https://affpapa.org/en/nevibecode/mcp/temporal-cortex-calendar-mcp.md) — MCP server · ★ 13
- [Chronary](https://affpapa.org/en/nevibecode/mcp/chronary.md) — MCP server
- [recipe-plan-weekly-schedule](https://affpapa.org/en/nevibecode/skills/recipe-plan-weekly-schedule.md) — skill · 30800 installs
- [recipe-reschedule-meeting](https://affpapa.org/en/nevibecode/skills/recipe-reschedule-meeting.md) — skill · 30400 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
