
Temporal Cortex Calendar MCP
io.github.temporal-cortexPublished by GitHub account temporal-cortexv0.9.1Updated Oct 24, 2026
18 deterministic calendar tools: contact resolution, temporal context, availability, booking
Overview
Gives an AI assistant deterministic calendar tools for timezone-aware scheduling, availability checks, and conflict-safe booking across Google, Outlook, and…
- What you can do
- Exposes up to 18 tools in five layers: contact and identity resolution, temporal context (current time, timezone, DST, resolving phrases like "next Tuesday at 2pm" into RFC 3339 timestamps), calendar listing and free-slot finding, merged cross-provider availability, and booking. Booking uses a two-phase commit with a time-range lock so concurrent bookings of the same slot cannot double-book. Recurrence rules are expanded deterministically, and data tools default to a compressed TOON output with JSON available.
- When to use it
- Worth adding when an assistant needs to check real availability, convert or resolve times and timezones, or create calendar events rather than just read them. Useful for individuals connecting their own calendars and for developers embedding scheduling into an agent or product.
- Requirements
- Runs locally as an npm package via npx (Node.js 18+) or Docker; stdio by default, or streamable HTTP when HTTP_PORT is set. At least one calendar provider is required: Google Calendar (GOOGLE_CLIENT_ID plus GOOGLE_CLIENT_SECRET, or GOOGLE_OAUTH_CREDENTIALS), Microsoft Outlook (MICROSOFT_CLIENT_ID plus MICROSOFT_CLIENT_SECRET), or CalDAV with an app-specific password. Optional variables include TIMEZONE, WEEK_START, OAUTH_REDIRECT_PORT, HTTP_HOST, ALLOWED_ORIGINS, REDIS_URLS, TENANT_ID…
Installation
In SourceWeft
- Open Temporal Cortex Calendar MCP in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Temporal Cortex MCP
[CI] [npm version] [npm downloads] [Smithery] [License: MIT]
v0.9.1 · March 2026 · Changelog · Website: temporal-cortex.com
Give any AI agent autonomous scheduling capabilities. Temporal Cortex is open scheduling infrastructure that lets any AI agent schedule reliably — whether the other person has an AI agent or not, uses Google Calendar or Outlook, or responds instantly or days later. 18 tools across 5 layers handle contact resolution, temporal reasoning, cross-provider availability, and atomic booking. Accessible via MCP, A2A, REST, and browser. Powered by Truth Engine. Install: npx @temporal-cortex/cortex-mcp.
[Install in VS Code] [Install in Cursor]
Two ways to use Temporal Cortex
For individuals
Connect your calendars. Your AI agent handles the rest — checking availability, resolving time zones, and booking meetings without double-booking. Works with Claude Desktop, Cursor, OpenClaw, Manus, and any MCP-compatible AI client.
The setup wizard walks you through provider authentication, timezone configuration, and MCP client setup interactively. You'll be scheduling in under a minute.
Or use the managed Platform — no Node.js required. Sign up at app.temporal-cortex.com, connect your calendars via OAuth, and add a single MCP config with your API key.
For developers
Add scheduling to your AI agent or product. 18 tools across 5 layers, 4 protocols (MCP, A2A, REST, Browser), atomic booking with Two-Phase Commit, and deterministic temporal computation powered by Truth Engine.
- Local MCP server:
npx @temporal-cortex/cortex-mcp— full tool suite, zero infrastructure - Platform REST API: app.temporal-cortex.com — managed hosting, API keys, usage dashboard, Open Scheduling network
- Framework integrations: LangGraph, CrewAI, OpenAI Agents SDK
- REST API reference: temporal-cortex.com/docs/rest-api
Why do AI agents fail at calendar tasks?
Even the latest LLMs — GPT-5, Claude, Gemini — score below 50% on temporal reasoning tasks (OOLONG benchmark). Earlier models scored as low as 29% on scheduling and 13% on duration calculations (Test of Time, ICLR 2025). Ask "Schedule for next Tuesday at 2pm" and it picks the wrong Tuesday. Ask "Am I free at 3pm?" and it checks the wrong timezone. Then it double-books your calendar.
Most calendar tools for AI agents are thin CRUD wrappers that pass these failures through to a single calendar provider — no temporal awareness, no conflict detection, no safety net.
What makes Temporal Cortex different?
- Temporal awareness — Agents call
get_temporal_contextto know the actual time and timezone.resolve_datetimeturns"next Tuesday at 2pm"into a precise RFC 3339 timestamp. No hallucination. - Atomic booking — Lock the time slot, verify no conflicts exist, then write. Two agents booking the same 2pm slot? Exactly one succeeds. The other gets a clear error. No double-bookings.
- Computed availability — Merges free/busy data across multiple calendars into a single unified view. The AI sees actual availability, not a raw dump of events to misinterpret.
- Deterministic RRULE expansion — Handles DST transitions,
BYSETPOS=-1(last weekday of month),EXDATEwith timezones, leap year recurrences, andINTERVAL>1withBYDAY. Powered by Truth Engine, not LLM inference. - Token-efficient output — TOON format compresses calendar data by ~40% fewer tokens than standard JSON, reducing costs and context window usage. TOON is the default output format for all data tools (
list_calendars,list_events,find_free_slots,expand_rrule,get_availability). JSON is available via explicitformat: "json".
What do I need to run Temporal Cortex?
- Node.js 18+ (for
npxto download and run the binary) or Docker - At least one calendar provider:
- Google Calendar — requires Google OAuth credentials
- Microsoft Outlook — requires Azure AD app registration (
MICROSOFT_CLIENT_ID) - CalDAV (iCloud, Fastmail, etc.) — requires an app-specific password
How do I install Temporal Cortex?
The fastest way to get started:
The cortex-mcp setup wizard walks you through provider authentication, timezone configuration, and MCP client setup interactively. See the First Run Guide for a detailed walkthrough.
Or set up manually in 3 steps:
- Install prerequisites — Node.js 18+ (or Docker) and at least one calendar provider (Google Calendar, Microsoft Outlook, or CalDAV).
- Add the MCP configuration to your AI client's config file (see client-specific examples below).
- Run the auth flow —
npx @temporal-cortex/cortex-mcp auth google(oroutlook/caldav). This authenticates and configures timezone, week start, and telemetry preferences.
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
Cursor
Add to Cursor's MCP settings (~/.cursor/mcp.json):
Windsurf
Add to Windsurf's MCP config (~/.codeium/windsurf/mcp_config.json):
Docker
Build the image first: docker build -t cortex-mcp . (or build directly from the repo: docker build -t cortex-mcp https://github.com/temporal-cortex/mcp.git).
Need help with provider credentials? See the setup guides: Google Calendar, Microsoft Outlook, CalDAV (iCloud/Fastmail). For a complete reference of all environment variables and configuration options, see the Configuration Guide.
How do I verify the installation?
SHA256 checksums are published with every GitHub Release and embedded in the npm package as checksums.json for automatic postinstall verification. The postinstall script downloads the platform-specific binary and compares its SHA256 hash against the expected checksum in checksums.json. On mismatch, installation fails with an error — the binary is not installed and the error message includes both the expected and actual hashes.
Verify manually:
Build provenance: Binaries are cross-compiled from Rust source in GitHub Actions across 5 platforms (darwin-arm64, darwin-x64, linux-x64, linux-arm64, win32-x64). The computation layer is open source at temporal-cortex/core.
Docker containment: For maximum isolation, run the MCP server in a container:
No Node.js on the host, no direct filesystem access beyond the mounted config directory.
How do I authenticate with calendar providers?
The easiest path is npx @temporal-cortex/cortex-mcp setup, which handles authentication, configuration, and MCP client setup in one guided flow. For individual provider auth, run the commands below:
Each auth flow saves credentials to ~/.config/temporal-cortex/credentials.json and registers the provider in ~/.config/temporal-cortex/config.json. You can connect multiple providers — the server discovers all configured providers on startup and merges their calendars into a unified view.
During auth, the server guides you through interactive setup:
- Timezone — auto-detects your system timezone and opens a fuzzy-search picker with all 597 IANA timezones (type to filter, arrow keys to navigate)
- Week start — arrow-key selection between Monday (ISO standard) and Sunday
- Telemetry — optional anonymous usage data (default: off)
All preferences are stored in ~/.config/temporal-cortex/config.json and used by all temporal tools. You can override them per-session with the TIMEZONE and WEEK_START env vars.
After authentication, verify it works by asking your AI assistant: "What time is it?" — the agent should call get_temporal_context and return your current local time.
For a guided workflow, install the Temporal Cortex Agent Skills to teach your AI agent the orient-resolve-query-book pattern.
Temporal Cortex Platform
Instead of running the MCP server locally via npx, you can use the managed Temporal Cortex Platform. No Node.js installation or local OAuth credentials required.
Getting started:
- Sign up at app.temporal-cortex.com.
- Connect your Google Calendar or Microsoft Outlook account via OAuth in the dashboard.
- Generate an API key from the dashboard.
- Add the MCP config to your AI client (see examples below).
Claude Desktop (Platform)
Add to your Claude Desktop config file:
Cursor (Platform)
Add to Cursor's MCP settings (~/.cursor/mcp.json) using the same format:
Platform capabilities (beyond Local Mode):
- No OAuth credentials to manage -- calendar connections are handled in the dashboard via standard OAuth flows.
- No Node.js required -- the client connects directly to the cloud endpoint over HTTP.
- Usage dashboard -- monitor tool calls, connected calendars, and billing from app.temporal-cortex.com.
- Managed calendar connections -- token refresh, re-authentication, and provider health are handled server-side.
- Multi-agent coordination -- distributed locking prevents double-bookings when multiple agents schedule simultaneously.
- Usage metering -- track tool calls per agent and team from the dashboard.
- Content firewall -- automatic prompt injection detection and zero-width Unicode stripping.
- Caller-based policies -- enforce booking rules per agent (max duration, allowed hours, booking limits).
All 15 core tools and 5 layers work identically. The Platform adds safety, coordination, and visibility infrastructure on top, plus 3 additional Open Scheduling tools (see below).
Open Scheduling + Temporal Links
Platform users can enable Open Scheduling to make their availability publicly queryable by AI agents and humans — no API key required.
- Go to Settings > Scheduling in the dashboard.
- Set a slug (e.g.,
billy) and enable Open Scheduling. - Share your Temporal Link:
book.temporal-cortex.com/billy
What callers get:
- Agent Card (A2A discovery):
GET /public/{slug}/.well-known/agent-card.json - Availability (REST):
GET /public/{slug}/availability?date=2026-03-15 - Booking (REST):
POST /public/{slug}/book - A2A JSON-RPC:
POST /public/{slug}/a2awithquery_availabilityorbook_slotmethods - Identity resolution:
GET /[email protected]resolves to the user's Agent Card
Human fallback: The same Temporal Link works in a browser — humans see a booking page with date/time picker and form.
Viral loop: Every Agent Card exposes Temporal Cortex to the calling agent's framework. Every booking includes "Powered by Temporal Cortex" in the event description.
What tools does Temporal Cortex provide?
Temporal Cortex exposes up to 18 Model Context Protocol tools organized in 5 layers. The 15 core tools are always available; 3 additional Open Scheduling tools are available in Platform Mode.
Layer 0 — Discovery
Layer 1 — Temporal Context
Layer 2 — Calendar Operations
Layer 3 — Availability
Layer 4 — Booking
See docs/tools.md for full input/output schemas and usage examples.
How does Temporal Cortex handle recurrence rules?
Most AI models and calendar tools silently fail on recurrence rule edge cases. Run the challenge to see the difference:
5 cases where LLMs consistently fail
1. "Third Tuesday of every month" across DST (March 2026, America/New_York)
The third Tuesday is March 17. Spring-forward on March 8 shifts UTC offsets from -05:00 to -04:00. LLMs often produce the wrong UTC time or skip the month entirely.
2. "Last Friday of every month" (BYSETPOS=-1)
RRULE:FREQ=MONTHLY;BYDAY=FR;BYSETPOS=-1 — LLMs frequently return the first Friday instead of the last, or fail to handle months with 4 vs 5 Fridays.
3. "Every weekday except holidays" (EXDATE with timezone)
EXDATE values with explicit timezone offsets require exact matching against generated instances. LLMs often ignore EXDATE entirely or apply it to the wrong date.
4. "Biweekly on Monday, Wednesday, Friday" (INTERVAL=2 + BYDAY)
RRULE:FREQ=WEEKLY;INTERVAL=2;BYDAY=MO,WE,FR — The INTERVAL=2 applies to weeks, not individual days. LLMs frequently generate every-week occurrences instead of every-other-week.
5. "February 29 yearly" (leap year recurrence)
RRULE:FREQ=YEARLY;BYMONTH=2;BYMONTHDAY=29 — Should only produce instances in leap years (2028, 2032...). LLMs often generate Feb 28 or Mar 1 in non-leap years.
Truth Engine handles all of these deterministically using the RFC 5545 specification. No inference, no hallucination.
How does the MCP server architecture work?
The MCP server is a single Rust binary distributed via npm and Docker. It runs locally on your machine and communicates with MCP clients over stdio (standard input/output) or streamable HTTP.
Request flow in 4 stages:
- Receive — The server accepts JSON-RPC messages from MCP clients over stdio (default) or streamable HTTP (when
HTTP_PORTis set). - Resolve — Truth Engine converts human datetime expressions into precise UTC timestamps, handling timezone conversion and DST transitions deterministically.
- Compute — For availability queries, the engine merges free/busy data across all connected calendar providers. For RRULE expansion, it generates concrete instances following RFC 5545 rules.
- Execute — For booking operations, Two-Phase Commit acquires a lock, verifies the slot is free, writes the event, and releases the lock. Failure at any step triggers rollback.
TOON (Token-Oriented Object Notation) compresses calendar data for LLM consumption — ~40% fewer tokens than JSON, with perfect roundtrip fidelity. TOON is the default output format for all data tools; use format: "json" when you need structured JSON.
Stdio vs HTTP Transport
Transport mode is auto-detected — set HTTP_PORT to switch from stdio to HTTP.
- Stdio (default): Standard MCP transport for local clients (Claude Desktop, VS Code, Cursor). The server reads/writes JSON-RPC messages over stdin/stdout.
- HTTP (when
HTTP_PORTis set): Streamable HTTP transport per MCP 2025-11-25 spec. The server listens onhttp://{HTTP_HOST}:{HTTP_PORT}/mcpwith SSE streaming, session management (Mcp-Session-Idheader), and Origin validation. Requests with an invalidOriginheader are rejected with HTTP 403.
Local Mode vs Platform Mode
Mode is auto-detected — there is no configuration flag.
- Local Mode (default): No infrastructure required. Uses in-memory locking and local file credential storage. Supports multiple calendar providers (Google, Outlook, CalDAV) with multi-calendar availability merging. Designed for individual developers.
- Platform Mode (managed service at mcp.temporal-cortex.com): Managed multi-tenant hosting with Postgres-backed credentials, Bearer token authentication, guardrails (rate limiting + booking caps), usage metering, and distributed locking for multi-agent safety. Designed for teams and production deployments.
How do I configure Temporal Cortex?
At least one calendar provider must be configured. See the provider setup guides: Google Calendar, Microsoft Outlook, CalDAV (iCloud/Fastmail). For a complete configuration reference, see the Configuration Guide.
How do I troubleshoot common issues?
See provider-specific troubleshooting: Google Calendar, Microsoft Outlook, CalDAV.
Frequently Asked Questions
Does Temporal Cortex work without internet access?
Layer 1 tools (temporal context, datetime resolution, timezone conversion, duration computation, timestamp adjustment) are pure computation and need no network access. Calendar tools (Layers 2-4) require network access to reach Google Calendar, Microsoft Outlook, or CalDAV APIs. The MCP server itself runs locally on your machine.
Which AI clients are supported?
Any Model Context Protocol-compatible client works. Tested configurations are provided for Claude Desktop, Claude Code, VS Code with GitHub Copilot, Cursor, and Windsurf. The server uses stdio transport by default and also supports streamable HTTP transport for custom integrations.
How do I use Temporal Cortex with CrewAI?
Temporal Cortex works with CrewAI via the native MCPServerAdapter — no wrapper needed. See the CrewAI integration guide and example code for a complete multi-agent scheduling crew.
Quick start (DSL — simplest):
Platform Mode (SSE — no local server):
How do I use Temporal Cortex with LangGraph?
Temporal Cortex works with LangGraph via langchain-mcp-adapters — the adapter auto-discovers all MCP tools and converts them into LangChain-compatible StructuredTool objects. See the LangGraph integration guide and example code for ReAct agent, multi-agent StateGraph, and human-in-the-loop examples.
Quick start (ReAct agent):
Platform Mode (HTTP — no local server):
How do I use Temporal Cortex with OpenAI Agents SDK?
Temporal Cortex works with the OpenAI Agents SDK via HostedMCPTool — OpenAI handles the MCP connection server-side, no local server needed. See the OpenAI Agents SDK integration guide and example code for single-agent, multi-agent, and approval workflow examples.
Quick start:
Can I connect multiple calendar providers simultaneously?
Yes. Run the auth flow for each provider (Google, Outlook, CalDAV) separately. The server discovers all configured providers on startup and merges their calendars into a unified availability view. Use provider-prefixed IDs like google/primary or outlook/work to target specific calendars.
How does Two-Phase Commit prevent double-bookings?
When book_slot is called, the server acquires a time-range lock, verifies no conflicting events or active locks exist, writes the event to the calendar API, then releases the lock. If any step fails, the operation rolls back. Two agents booking the same slot simultaneously will have exactly one succeed and the other receive a clear error.
What is TOON and why does it reduce costs?
TOON (Token-Oriented Object Notation) compresses calendar payloads by ~40% fewer tokens compared to JSON (38% on a Google Calendar event schema benchmark) while maintaining perfect roundtrip fidelity. Fewer tokens means lower API costs and more room in the LLM context window. TOON is now the default output format for all data tools (list_calendars, list_events, find_free_slots, expand_rrule, get_availability). Use format: "json" to get JSON output instead.
How does Temporal Cortex handle daylight saving time?
All temporal tools are DST-aware. adjust_timestamp with "+1d" across a spring-forward boundary preserves wall-clock time (1:00 AM EST becomes 1:00 AM EDT). RRULE expansion keeps recurring events at their local time across DST transitions. get_temporal_context reports whether DST is currently active and predicts the next DST transition — including the transition date, direction (spring-forward or fall-back), and days until it occurs.
What is the difference between Local Mode and Platform Mode?
Local Mode (default) runs on your machine with in-memory locking, local file credential storage, and no infrastructure required — all 15 core tools work with zero setup (contact tools require opt-in contacts permission). Platform Mode (at mcp.temporal-cortex.com) adds managed OAuth lifecycle, multi-agent coordination with distributed locking, usage metering, caller-based policies, a content firewall, a dashboard UI, and 3 additional Open Scheduling tools (resolve_identity, query_public_availability, request_booking). Both expose the same 15 core tools and 5 layers — the Platform adds safety, coordination, visibility, and up to 18 tools total for teams.
How bad are LLMs at temporal reasoning?
Even the latest frontier models — GPT-5, Claude Sonnet 4, Gemini 2.5 Pro — score below 50% on temporal reasoning tasks (OOLONG benchmark, arXiv:2511.02817). Earlier models scored as low as 29% on scheduling and 13% on duration calculations (Test of Time, ICLR 2025, arXiv:2406.09170). Temporal questions are consistently the most challenging category for LLMs. Temporal Cortex replaces LLM inference with deterministic computation for all calendar math.
Is there a managed cloud option?
Yes. The Temporal Cortex Platform is available at app.temporal-cortex.com. Sign up for free — individuals get 20 bookings/month on the Starter tier, developers get 100 bookings/month. Paid tiers (Individual Pro, Developer Growth/Scale) add higher limits and priority support. All scheduling features are available on every tier, including free.
Does Temporal Cortex collect telemetry?
During setup, an interactive prompt asks if you'd like to share anonymous usage data (default: off).
Collected: tool names, success/error counts, platform, version. Never collected: calendar data, events, or personal info.
Non-interactive sessions (MCP stdio) auto-opt-out. Change your choice anytime:
How do I teach my AI agent the scheduling workflow?
The Temporal Cortex Agent Skills teach AI agents the correct workflow for using these tools — from temporal orientation through conflict-free booking. Install them to give your agent procedural knowledge for calendar operations:
The skill follows the Agent Skills specification and works with Claude Code, OpenAI Codex, Google Gemini, GitHub Copilot, Cursor, and 20+ other platforms.
What is the computation layer behind Temporal Cortex?
The computation layer is open source:
- temporal-cortex-core — Truth Engine (temporal resolution, RRULE expansion, availability merging, timezone conversion) + TOON (token compression)
- Available on crates.io, npm, and PyPI
- 510+ Rust tests, 42 JS tests, 30 Python tests, ~9,000 property-based tests
Contributing
Bug reports and feature requests are welcome. See CONTRIBUTING.md.
License
Source: README.md at commit 46968c2
Tools
0Version history
1- v0.9.1LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts