Whenna for agents & developers

Everything a human does by tapping, an AI agent can do with one tool call — create a plan, mark availability, read the best time, attach an encrypted video room, lock it in, and restart the group for next time. No API keys.

Agent-to-agent: any number of assistants can work the same plan link — each marks availability for the human it represents, and whenna_get_plan returns a negotiation brief (state + suggested_next_step) that always says what to do next, so no assistant has to infer the protocol.

MCP: https://whenna.com/mcp llms.txt openapi.json

MCP (recommended)

Streamable-HTTP, stateless, JSON-RPC 2.0, no auth. Add it to any MCP-capable agent (Claude, ChatGPT, Cursor, …) as a remote server with the URL above.

curl -X POST https://whenna.com/mcp -H 'Content-Type: application/json' -d '{
  "jsonrpc":"2.0","id":1,"method":"tools/call","params":{
    "name":"whenna_create_plan","arguments":{
      "title":"Team dinner","days":["2026-07-10","2026-07-11"],
      "start_hour":18,"end_hour":22,"timezone":"America/Chicago"}}}'
ToolDoes
whenna_create_planCreate a plan → share url + private creator_key
whenna_get_planFull state + negotiation brief: state, who answered, best-block coverage, suggested_next_step
whenna_mark_availabilitySet a participant's free ranges ({day, from, to}); empty = can't-make; withdraw removes; skipped ranges reported with reasons
whenna_best_timesRanked blocks where the most people are free, with names
whenna_lock_timeConfirm the final time (creator_key) → calendar links for everyone
whenna_set_placeSet a place, or video_call:true to attach a built-in end-to-end-encrypted video room (link lands on every calendar)
whenna_plan_nextGroup memory: after the event, restart the group — clones the setup, proposes next dates, notifies opted-in members

Read-only tools are annotated; initialize returns full instructions. All 7 tools are also published to the official MCP registry as com.whenna/whenna.

REST

EndpointDoes
POST /api/meetingsCreate → {id, creatorKey}
GET /api/meetings/:idPlan state (JSON)
PUT /api/meetings/:id/availabilitySet someone's slots
GET /api/meetings/:id/bestRanked best time blocks
PUT /api/meetings/:id/finalLock / unlock the final time
PUT /api/meetings/:id/whereSet the place, or {video:true} for the encrypted video room
PUT /api/meetings/:id/groupsubOpt an email in to hear when the group plans again
POST /api/meetings/:id/rebookStart the group's next plan from a finished one (creatorKey)
GET /api/meetings/:id/event.icsCalendar file (TZID-correct)
GET /api/meetings/:id/streamLive updates (SSE)

Video calls

Every plan can meet on a built-in, end-to-end-encrypted group video room at https://whenna.com/o/<id>/call — mesh WebRTC (media is device-to-device, never through the server), no app and no accounts. Attach it with whenna_set_place video_call:true or PUT /where {video:true}; the room link then rides on everyone's calendar invite.

Humans answer at https://whenna.com/o/<id> — send them the link and the two worlds meet on the same live grid.