Planner
Developer docs

Developer docs

Production Planner API

Use Enterprise API tokens to connect Zapier, Make.com, IFTTT, and n8n to schedule data. All endpoints require bearer auth except health and invite onboarding routes.

Quickstart

  1. Open Settings → API & Integrations (Enterprise).
  2. Create a Personal Access Token with the scopes you need.
  3. For remote MCP clients, start with OAuth instead of a manual token.
  4. For manual/local MCP fallback only, create a token with projects:read, blocks:read, and blocks:write.
  5. Use the token as a Bearer token in REST connector requests.
  6. For MCP, call /api/mcp with initialize, save mcp-session-id, then use tools/list and tools/call.
  7. Start with the events trigger endpoint, then call actions to write blocks.
curl "https://api.get-planner.com/v1/connectors/events?limit=25" \
  -H "Authorization: Bearer plr_pat_pat_xxx.secret"

Authentication

Send your token as Authorization: Bearer <token>. REST connector tokens can be PATs or service-account tokens and are always scoped.

For Planner MCP specifically, every connection needs auth. OAuth is the recommended auth flow for hosted/remote clients such as ChatGPT, Claude remote connectors, and Cursor remote MCP.

Base URL: https://api.get-planner.com

Format: plr_pat_<prefix>.<secret>

MCP endpoint

Planner MCP supports Streamable HTTP plus OAuth metadata for remote clients:

POST https://api.get-planner.com/api/mcp

OAuth metadata https://api.get-planner.com/.well-known/oauth-authorization-server

Protected resource metadata https://api.get-planner.com/.well-known/oauth-protected-resource/api/mcp

Remote OAuth clients (ChatGPT / Claude / Cursor)

Use the MCP endpoint above. Let the client discover OAuth automatically when possible.

ChatGPT note: use the dedicated ChatGPT MCP endpoint https://api.get-planner.com/api/mcp/openai. Treat OAuth as required, not optional. Use metadata URLs only when ChatGPT asks for them.

ChatGPT form match: in Settings -> Apps -> Create, set Name to Planner, paste https://api.get-planner.com/api/mcp/openai into MCP Server URL, set Authentication to OAuth, then create the app.

Claude note: Claude's custom connector UI uses four fields. Generate the Planner Client ID and Secret in Settings -> MCP, then paste Name, URL, Client ID, and Client Secret into Claude.

Cursor note: add a remote MCP server, use Name Planner, choose Streamable HTTP, paste the MCP endpoint into the URL field, and continue with OAuth.

Planner MCP endpoint: https://api.get-planner.com/api/mcp
OAuth metadata: https://api.get-planner.com/.well-known/oauth-authorization-server
Protected resource metadata: https://api.get-planner.com/.well-known/oauth-protected-resource/api/mcp

Manual tokens remain available for local/manual MCP clients that cannot complete OAuth. They are still required auth, not an optional extra.

Recommended manual MCP scopes: projects:read, blocks:read, blocks:write.

Planner intentionally does not accept bearer tokens in URL query params.

1) Manual fallback: initialize

curl -X POST "https://api.get-planner.com/api/mcp" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer &lt;YOUR_TOKEN&gt;" \
  -d '{ "jsonrpc":"2.0", "id": "init-1", "method": "initialize", "params": {} }'

2) Manual fallback: list tools

curl -X POST "https://api.get-planner.com/api/mcp" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer &lt;YOUR_TOKEN&gt;" \
  -H "mcp-session-id: &lt;SESSION_ID&gt;" \
  -d '{ "jsonrpc":"2.0", "id": "list-1", "method": "tools/list" }'

3) Manual fallback: call a tool

curl -X POST "https://api.get-planner.com/api/mcp" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer &lt;YOUR_TOKEN&gt;" \
  -H "mcp-session-id: &lt;SESSION_ID&gt;" \
  -d '{ "jsonrpc":"2.0", "id":"call-1", "method":"tools/call", "params": { "name":"listProjects", "arguments":{} } }'

Connector endpoints

MethodPathUse caseScope
GET/v1/connectors/eventsGeneric polling trigger for Make.com and n8n.events:read
GET/v1/connectors/zapier/triggers/eventsZapier trigger-compatible events feed.events:read
POST/v1/connectors/actions/blocksCreate schedule blocks from external workflows.blocks:write

Request and response payload examples are available in the app under Settings → API & Integrations.

Webhooks

Manage webhook subscriptions via /integrations/webhooks/subscriptions. Deliveries are signed using HMAC SHA-256.

signature = HMAC_SHA256(signing_secret, "{timestamp}.{raw_body}")
header: x-planner-signature: sha256=<hex_digest>
header: x-planner-timestamp: <unix_seconds>

Scopes

events:read
projects:read
blocks:read
blocks:write
webhooks:read
webhooks:write

Need broader integration support or an SDK package? Contact customer support to join Enterprise integration onboarding.