REST + MCP · Agent-to-agent · Human handoff

The scheduling platform built for AI agents.

Your agent registers itself, books on behalf of users, and hands them a one-time URL only when payment or calendar access is needed. No dashboards, no logins for the user beyond that single click.

REST & MCP · works with Claude, OpenAI, Hermes, LangGraph, Cursor, Windsurf, and any MCP-compatible runtime.

Intro chat

30 min

@venkat · Asia/Singapore

MTWTFSS123456789101112131415161718192021222324252627282930

Tuesday, May 12

Times in Asia/Singapore

7 slots open todayPowered by agent-cal

Integrations

Plug into any agent runtime

Same auth, same tools, agent-to-agent or human-in-the-loop. Pick a client, install the MCP server, and your agent has 15 typed scheduling tools.

CD

Claude Desktop

MCP over stdio

MCP
C

Claude.ai

Remote MCP

MCP
OA

OpenAI Agents SDK

Tool calling + REST

API + MCP
H

Hermes

Function calling

API
L

LangGraph

Tool node

API
C

Cursor

MCP integration

MCP
W

Windsurf

MCP integration

MCP
AM

Any MCP runtime

Generic stdio / SSE

MCP

How it works

Agent-first, human-only-when-needed

The agent does the work. Your user clicks one URL — once — for the two things only they can authorize.

01

Agent registers itself

POST /api/v1/agents/register. Your agent gets a bearer token. No human signs in here.

02

Agent operates autonomously

Create schedules, list availability, book on behalf of users — all REST or MCP, all idempotent.

03

Hand off when needed

Need payment or calendar access? Agent issues a one-time setup URL and forwards it to the user.

04

User clicks once, done

User pays + connects Gmail or Outlook in a single visit. Agent resumes immediately.

What the user does

Three things, one URL, no account

When the agent surfaces a setup link, the user lands on a page that asks for exactly these. No password to remember, no return visits.

Set up payment

Stripe-backed checkout. Card on file for the workspace, agent stays unaware of card details.

Connect Gmail calendar

OAuth scope: calendar.events only. We can create, move, and cancel events — nothing else.

Connect Outlook calendar

OAuth scope: Calendars.ReadWrite. Same minimal surface as Gmail. Switch providers anytime.

The setup URL is single-use, signed, and expires in 30 minutes. After it's consumed, the user has nothing else to do — the agent takes over.

Features

Everything an agent needs to run a calendar

Beautiful UX for the human invitee, programmatic primitives for the agent.

Agent-first auth

Agents self-register with a bearer token. Humans never see a password — just a one-time setup URL when scope is needed.

Availability engine

Pure-TS engine: weekly rules, buffers, max bookings per day, conflict detection across providers.

MCP server included

15 tools for Claude, Cursor, Windsurf, OpenAI Agents SDK, Hermes, LangGraph. Auto token refresh built-in.

Agent-to-agent booking

Send a booking URL to another agent — they book on behalf of their user with the same REST surface.

Minimal calendar scope

Gmail calendar.events / Outlook Calendars.ReadWrite. Nothing else. Tokens encrypted at rest with AES-GCM.

Cancel & reschedule

Signed tokens for invitees, full lifecycle endpoints for agents. Email confirmations on every event.

API & MCP

Two interfaces, one source of truth

Hit the REST API directly, or wire up the MCP server in 30 seconds.

agent.ts
Agent registers + hands off
# 1. Agent registers itselfcurl -X POST $API/api/v1/agents/register \  -d '{"name":"my-scheduler"}'# → { "agentId": "...", "bearer": "ag_live_..." } # 2. Agent issues a setup URL for its usercurl -X POST $API/api/v1/users/setup-link \  -H "Authorization: Bearer $BEARER" \  -d '{"userEmail":"alice@acme.com"}'# → { "url": "https://app/setup/<one-time-token>" } # 3. Agent forwards URL to user via its own UI/email.#    User clicks once: pays + connects calendar. Done. # 4. Agent resumes — books on behalf of the user.curl -X POST $API/api/v1/bookings \  -H "Authorization: Bearer $BEARER" \  -d '{"userId":"...","start":"2026-05-12T09:00Z"}'
mcp.json
Plug into any client
// Claude Desktop / Cursor / Windsurf / Hermes{  "mcpServers": {    "agent-cal": {      "command": "npx",      "args": ["-y", "@agent-cal/mcp"],      "env": { "AGENT_CAL_BEARER": "ag_live_..." }    }  }} // 15 tools exposed://  register_user · issue_setup_link//  create_schedule · list_availability//  create_booking · cancel_booking//  reschedule_booking · list_bookings ...

Hand the calendar to your agent.

One bearer token. One MCP install. One setup URL for the user. Everything else is your agent talking to ours.