Hand your day to Claude or ChatGPT.

  1. 1

    Connect.

    Authorise Claude or ChatGPT from your Reassign account. It’s an OAuth grant. Pull it back any time. (Pro.)

  2. 2

    Ask.

    Talk to it like a planner: “What does my afternoon look like?” · “Find 45 minutes before lunch to prep.” · “Push everything after 3 back an hour.”

  3. 3

    Watch.

    Events appear, move, and resize on your dial in real time, and the assistant tells you what changed and why.

Doctor’s appointment tomorrow at 1pm. Block 45 minutes before lunch to prep, and move my 1:1 to 2:30.
get_schedule Tomorrow: deep work 9–11:30, lunch at 12:30, 1:1 with Sam at 2. There’s room for prep 11:30–12:15 and the 1:1 at 2:30.
write_events Done. Added prep 11:30–12:15 and moved your 1:1 to 2:30 in one batch. You can undo both changes together.
✓ Doctor prep · 11:30 → 12:15 ✓ 1:1 with Sam · +30m
The same kind of exchange, for real: ask, and watch Claude reshape the day on the live dial.
A Claude chat conversation with Reassign's real 24-hour dial rendered inline in the reply. The dial shows a full day of colour-coded blocks with fill patterns, a weather ring around the centre, and the red now-indicator, all inside the chat message.
show_day renders the real dial right inside the chat, in your theme, so you see the plan you're editing.

Read your day

get_schedule pulls your whole day in one call: current time, events, free slots, areas, activity types, and live projects. Each day carries loadByProject, the blocking minutes per project, also summed over a range. Filter the Inbox with backlogProjectId (a project id, or "none") and backlogMinPriority (0 to 4); each Inbox item carries its projectId and priority. Add minDuration in minutes to keep only free slots long enough for your task. For one day, add includeWeather: true for the full forecast or includeEnergy: true for your energy curve, including today’s peaks and dips. Both need from and to set to the same date. find_event looks up events and Inbox items by name; event hits include a name-match score from 0 to 1.

  • get_schedule
  • find_event

Reshape your day

write_events creates, updates, moves, or nudges events, one or many, in a single atomic batch, and keeps a block’s microtasks: rewrite or reorder the list, or tick one off by name, for one day or the whole series. Create and update take projectId and a priority from 0 (none) to 4 (urgent); null on update clears the project and keeps the area. Pass mirrorStyles to set what each mirror copy shows: a map from a calendar id in mirrorCalendarIds to full, private, or busy. An update replaces the map, and {} clears it. Calendar defaults stay in the app. delete_events removes them, reversibly. manage_categories shapes your areas and activity types. Its projects op list creates, updates, archives, deletes, splits, and relinks projects; a taken project name returns conflict and names the area. To delete an area or activity type that items use, pass reassignTo with another one’s id to move them, or null to clear the link; without it, the delete fails with validation. A duplicate name returns conflict. manage_inbox keeps your Inbox: blocks with no time yet, microtasks and all, added and pulled onto the dial when you’re ready. capture, capture_text, and update take projectId and priority too. Its capture_text op takes 1 to 2,000 characters of raw text and writes 1 to 10 Inbox items in one write with one undo. Your duration and planned dates take priority over AI suggestions. Notes you supply are appended to the extracted notes, up to 2,000 characters total. Capture requires an active trial or paid subscription. Send a calendarId to create each item as a task in that Todoist, TickTick, Google Tasks, Microsoft To Do, or Linear list, or null to keep it in Reassign; leave it out to use your default.

  • write_events
  • delete_events
  • manage_categories
  • manage_inbox

Plan in plain language

The assistant reads freeSlots from get_schedule, chooses a time that fits your request, then creates the block with write_events. To place an existing Inbox item, it uses the schedule operation in manage_inbox. Changed your mind? undo_changes rolls a change back, up to 30 minutes later.

  • undo_changes

Show it, and look back

show_day renders the real 24-hour dial right in the chat, in your theme. For a past day in your account timezone, the assistant records how your blocks went and review_day confirms or discards the day’s reflection. get_schedule reads a confirmed review back: your plan against the day you actually lived.

  • show_day
  • review_day
OAuth grants
Connect per client; revoke any one at any time from your account.
Scopes
Each grant is events:read, events:write, or both. Scopes are enforced per tool, so a read-only grant can never change your day.
Your day, not your account
A connected assistant plans your day. It cannot change your settings, disconnect a calendar, or open billing, and it does not see the account name behind a connected calendar.
Check first when you want to
write_events applies changes immediately by default and returns an undo token. Ask your assistant to check the operations with dryRun: true and show you the plan first. That check writes nothing and reserves no time; valid operations return skipped, and failures include their usual errors. To apply the changes, the assistant calls again without the flag and Reassign checks them again. A batch is all or nothing by default: if one operation fails, nothing is written.
A 30-minute undo window
Don’t like a change? Say so, and undo_changes rolls it back.
Standard MCP over HTTP
At https://reassign.app/api/mcp, with OAuth auto-discovered.
“Asking Claude to reshape your schedule and then watching the changes appear live on the dial feels like a strong use of MCP.”
Candid-Mortgage4881 on Reddit

Claude & ChatGPT (custom connector)

  1. 1

    Open your AI's connector settings

    In Claude (web or desktop), open Customize → Connectors, click +, then Add custom connector. In ChatGPT, turn on Developer mode under Settings → Apps → Advanced settings, then open Settings → Connectors and click Create. Menu names move; the server URL below does not.

  2. 2

    Add a custom connector

    Fill in the form, then click Add:

    • NameReassign
    • Remote MCP server URL https://reassign.app/api/mcp
  3. 3

    Connect and approve access

    Click Connect, sign in to Reassign if prompted, choose your scopes (events:read, events:write, or both), and approve.

Claude Code (plugin)

  1. 1

    Install Claude Code

    Follow Anthropic's quickstart for Claude Code.

  2. 2

    Add the marketplace, then install

    Run these in a Claude Code session. The first adds Reassign's plugin marketplace; the second installs the scheduling plugin (skill + MCP connector):

    /plugin marketplace add reassignai/plugins
    /plugin install reassign@reassign
  3. 3

    Authenticate with Reassign

    Run /mcp, select the Reassign server, then sign in and approve access (choose events:read, events:write, or both).

    /mcp

npm / any stdio MCP client

  1. 1

    Point your client at the npm shim

    Any MCP client that speaks stdio (Cursor, Windsurf, custom agents…) can run the published shim. Add it as an MCP server with this command:

    npx -y @reassign/mcp
  2. 2

    Authenticate with Reassign

    On first run the shim opens an OAuth flow: sign in to Reassign and choose your scopes (events:read, events:write, or both). It talks to the same MCP server at https://reassign.app/api/mcp.

Try it out

Once you're connected, talk to your AI like a planner:

  • Show me what my afternoon looks like.
  • Find 45 minutes before lunch to prep for my doctor's appointment.
  • Push everything after 3pm back an hour, and protect 90 minutes for the side project tonight.

MCP is part of Pro, included in your 7-day trial.

Reassign - Your day, shaped into a story. The planner for makers | Product Hunt