# Temporal Cortex Calendar MCP

18 calendar tools for your agent: it looks up the contact, works out free time in the right zone and books the slot without clashing with anything already there.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 13
- Author: temporal-cortex
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/temporal-cortex/mcp
- Updated: 2026-08-31
- HTML: https://affpapa.org/en/nevibecode/mcp/temporal-cortex-calendar-mcp

## What it does

The server runs through `npx` and hands an agent tools spread over five layers. The agent starts with `get_temporal_context` and `resolve_datetime`, so a phrase like “next Tuesday at 2pm” becomes an exact timestamp in the right timezone. From there `get_availability` folds busy data from several calendars into one view. Booking uses two-phase commit: hold the slot, confirm nothing overlaps, then write. When two agents reach for the same hour, one wins and the other gets a clear error.

Recurring events are expanded by a deterministic engine rather than guessed by the model. That covers daylight-saving shifts, the last weekday of a month, exclusions that carry timezones, and repeat intervals above one. Output defaults to TOON, which the project reports as roughly 40% fewer tokens than JSON; pass `format` to get JSON instead.

Prerequisites are Node.js 18+ or Docker plus at least one calendar. Google Calendar wants OAuth credentials; Outlook wants an Azure AD app registration and `MICROSOFT_CLIENT_ID`; CalDAV providers such as iCloud and Fastmail want an app-specific password. Miss the provider credentials and the auth flow stops, leaving the calendar tools empty. The `npx @temporal-cortex/cortex-mcp setup` wizard walks through provider login and timezone interactively.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `GOOGLE_CLIENT_ID`, `GOOGLE_CLIENT_SECRET`, `GOOGLE_OAUTH_CREDENTIALS`, `MICROSOFT_CLIENT_ID`, `MICROSOFT_CLIENT_SECRET`, `TIMEZONE`, `WEEK_START`, `TENANT_ID`, `LOCK_TTL_SECS`, `OAUTH_REDIRECT_PORT` — 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 GOOGLE_CLIENT_ID=<GOOGLE_CLIENT_ID> --env GOOGLE_CLIENT_SECRET=<GOOGLE_CLIENT_SECRET> --env GOOGLE_OAUTH_CREDENTIALS=<GOOGLE_OAUTH_CREDENTIALS> --env MICROSOFT_CLIENT_ID=<MICROSOFT_CLIENT_ID> --env MICROSOFT_CLIENT_SECRET=<MICROSOFT_CLIENT_SECRET> --transport stdio temporal-cortex-calendar-mcp -- npx -y @temporal-cortex/cortex-mcp
```
Replace <…> with your own values. 10 more environment variables are in the server README

### Codex

**Platform CLI**
```bash
codex mcp add temporal-cortex-calendar-mcp --env GOOGLE_CLIENT_ID=<GOOGLE_CLIENT_ID> --env GOOGLE_CLIENT_SECRET=<GOOGLE_CLIENT_SECRET> --env GOOGLE_OAUTH_CREDENTIALS=<GOOGLE_OAUTH_CREDENTIALS> --env MICROSOFT_CLIENT_ID=<MICROSOFT_CLIENT_ID> --env MICROSOFT_CLIENT_SECRET=<MICROSOFT_CLIENT_SECRET> -- npx -y @temporal-cortex/cortex-mcp
```
Replace <…> with your own values. 10 more environment variables are in the server README

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "temporal-cortex-calendar-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "@temporal-cortex/cortex-mcp"
            ],
            "env": {
                "GOOGLE_CLIENT_ID": "<GOOGLE_CLIENT_ID>",
                "GOOGLE_CLIENT_SECRET": "<GOOGLE_CLIENT_SECRET>",
                "GOOGLE_OAUTH_CREDENTIALS": "<GOOGLE_OAUTH_CREDENTIALS>",
                "MICROSOFT_CLIENT_ID": "<MICROSOFT_CLIENT_ID>",
                "MICROSOFT_CLIENT_SECRET": "<MICROSOFT_CLIENT_SECRET>"
            }
        }
    }
}
```
Replace <…> with your own values. 10 more environment variables are in the server README

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "temporal-cortex-calendar-mcp": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@temporal-cortex/cortex-mcp"
            ],
            "env": {
                "GOOGLE_CLIENT_ID": "<GOOGLE_CLIENT_ID>",
                "GOOGLE_CLIENT_SECRET": "<GOOGLE_CLIENT_SECRET>",
                "GOOGLE_OAUTH_CREDENTIALS": "<GOOGLE_OAUTH_CREDENTIALS>",
                "MICROSOFT_CLIENT_ID": "<MICROSOFT_CLIENT_ID>",
                "MICROSOFT_CLIENT_SECRET": "<MICROSOFT_CLIENT_SECRET>"
            }
        }
    }
}
```
Replace <…> with your own values. 10 more environment variables are in the server README

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e GOOGLE_CLIENT_ID=<GOOGLE_CLIENT_ID> -e GOOGLE_CLIENT_SECRET=<GOOGLE_CLIENT_SECRET> -e GOOGLE_OAUTH_CREDENTIALS=<GOOGLE_OAUTH_CREDENTIALS> -e MICROSOFT_CLIENT_ID=<MICROSOFT_CLIENT_ID> -e MICROSOFT_CLIENT_SECRET=<MICROSOFT_CLIENT_SECRET> temporal-cortex-calendar-mcp npx -y @temporal-cortex/cortex-mcp
```
Replace <…> with your own values. 10 more environment variables are in the server README

## When to use it
- Merge personal and work calendars into one availability view
- Turn a loose phrase like “Friday after lunch” into a precise timestamp
- Book a meeting between two people without double-booking the slot
- Expand a recurring event across a daylight-saving change
- Find a free hour that suits several attendees

## Example prompts
- Check whether I'm free Tuesday at 3pm Berlin time and show the next open windows
- Find the contact for Anna in my calendar and offer her two slots this week
- Book a 45-minute team meeting next Thursday at 11:00 and confirm nothing overlaps

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

---
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
