canonical: https://jentic.com/apis/reassign.app/reassign

# Reassign App Reassign REST API

The Reassign REST API drives Reassign, a 24-hour circular day planner: it reads a day or a range of days, creates, moves, and deletes events, and books work into free time without the caller computing slots. Around the schedule it manages the Inbox of unplaced tasks, areas and activity types, moment trackers and the values logged against them, connected calendar sources, and a daily reflection that can be confirmed or discarded. A command operation turns a free-form line or a braindump into events, Inbox items, and moments, with a dry-run mode that returns the plan without writing.

## For AI agents

Read a Reassign day, create and move events, book tasks into free time, capture Inbox items, log tracker moments, and turn a free-form command into a planned day.

## Scope

Does not send meeting invites, host booking pages for other people, or manage team project boards. Use for planning one person's day in Reassign only.

## Capabilities

- Book 1 to 20 tasks into free time with POST `/api/v1/schedule/plan`, each with a name, durationMinutes, and an exact start or an earliest and latest window
- Create, update, shift, reflect on, or delete up to 50 events in one atomic call, or allow partial success with partial true
- Address one occurrence of a recurring event with seriesId@YYYY-MM-DD, or that occurrence and every later one with scope future
- Capture, schedule, park, or remove Inbox items, sized in whole minutes from 5 to 1440
- Log a moment against a tracker, from a quick tap with only trackerId to an exact time, value, and note
- Turn a free-form line or braindump into events and Inbox items with POST `/api/v1/command`, previewing first with apply false
- Reverse up to 20 recent writes with the undoToken values they returned, before the tokens expire

## Use cases

### Day planning from an AI agent through Jentic

A planning agent can take 'fit in two hours of writing and a gym session tomorrow' and do it: read the day, book the work into free time, and report what moved. Through Jentic it searches for 'book work into free time', receives the schedule plan operation with its requests input, and calls it with a Personal Access Token injected by your self-hosted Jentic One instance. Writes return an undoToken, so a wrong placement can be reversed within 30 minutes.

Example prompt: Call GET `/api/v1/schedule` with from and to set to tomorrow, then POST `/api/v1/schedule/plan` with requests for 'Writing' with durationMinutes 120 and 'Gym' with durationMinutes 60, each with an earliest and latest window

### Batch event edits

Rescheduling usually means touching several events at once. POST `/api/v1/events` takes 1 to 50 ops, each naming its verb such as create, update, shift, or delete, and runs them atomically unless partial is true. A span is a start and end as local datetimes in the account's time zone, and recurring events are edited per occurrence or for the rest of the series.

Example prompt: POST `/api/v1/events` with an update op that sets start '2026-11-19T07:00' and end '2026-11-19T08:00' on the gym event's occurrence id

### Inbox capture and triage

Not every task has a time yet. The Inbox holds unplaced items: POST `/api/v1/backlog` captures items with a name, notes, and an estimated durationMinutes, and later schedules them at a local start or parks a placed event back into the Inbox. Each item takes a kind of blocking, non_blocking, or reference.

Example prompt: POST `/api/v1/backlog` with three capture ops named 'Reply to Sam', 'Draft Q1 plan', and 'Book dentist', each with durationMinutes 30

### Habit and mood tracking

Moment trackers record things like mood, water, or focus over the day. POST `/api/v1/trackers` creates a tracker with a name and scale, POST `/api/v1/moments` logs an entry with only a trackerId for a quick tap or with a time, value, and note, and GET `/api/v1/moments` reads a day range back for review.

Example prompt: Call GET `/api/v1/trackers` to find the mood tracker's id, then POST `/api/v1/moments` with that trackerId, value 7, and note 'after lunch walk'

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/api/v1/schedule` | Read a day or a range of days |
| POST | `/api/v1/schedule/plan` | Book work into free time |
| POST | `/api/v1/events` | Create, change, or delete events |
| GET | `/api/v1/events/search` | Find events by text |
| POST | `/api/v1/backlog` | Capture and schedule Inbox items |
| POST | `/api/v1/moments` | Log a moment |
| POST | `/api/v1/command` | Run an AI quick command |
| POST | `/api/v1/actions/undo` | Reverse a recent write |

## Key resources

- **Schedule** — Day and range reads, and booking work into free time
- **Events** — Batch create, update, shift, reflect, and delete, with recurring occurrences
- **Inbox** — Unplaced items to capture, schedule, park, or remove
- **Categories** — Areas and activity types used to classify events
- **Trackers and moments** — Moment trackers and the values logged against them
- **Calendars and sources** — Connected calendar sources, import rules, and sync
- **Tokens and grants** — Personal Access Tokens and authorized OAuth apps

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 60 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 73 / 100
  - Developer Experience & Jentic Compatibility: 70 / 100
  - AI-Readiness & Agent Experience: 41 / 100
  - Agent Usability: 87 / 100
  - Security: 55 / 100
  - AI Discoverability: 66 / 100
- **View full report:** https://jentic.com/apis/reassign.app/reassign/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring Reassign by hand means minting a Personal Access Token with the right events scope, formatting local datetimes without offsets, and building ops arrays with the correct verbs and occurrence ids. Through Jentic you install once, import the Reassign REST API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Reassign takes event targets and verbs inside the request body of its batch operations, so rules bound which operations your agent may call, such as reading the schedule and booking work, not which events. You choose the operations it may call, so destructive ones like clearing the schedule, factory-resetting or deleting the account, or minting tokens are not included unless you add them.
- **Credential handling:** Your Reassign Personal Access Token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'book work into free time' or 'move an event', and Jentic returns the matching Reassign operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Google Calendar API** — Calendars and events in Google Calendar
- **Calendly** — Booking links and scheduled meetings with other people
- **Cronofy** — Unified calendar API across Google, Microsoft, and Apple calendars

## FAQ

### What authentication does the Reassign REST API use?

Per its OpenAPI spec, public operations take a bearer token in the Authorization header: either a Personal Access Token starting rsk_live_ or an OAuth 2.1 access token minted for the Reassign API v1 resource. Reads need the events:read or events:write scope and writes need events:write. App-only operations instead require the appSession scheme, an apiKey-type cookie named better-auth.session_token from a signed-in browser. Through Jentic, your token is stored encrypted by your own Jentic One instance and injected at execution time.

### Is there a Reassign MCP server?

You don't need an MCP server to give your agent the Reassign REST API. Jentic connects it directly from the API Directory: import it, store your Personal Access Token once, and your agent calls it. Operations are discovered on demand, so the agent loads only the scheduling operation it needs instead of every tool definition.

### Can I limit what my agent is allowed to do with the Reassign REST API?

Yes. A planning agent could get a rule that allows GET `/api/v1/schedule`, POST `/api/v1/schedule/plan`, POST `/api/v1/backlog`, and POST `/api/v1/actions/undo`, so it can read your day, book work, capture Inbox items, and undo its own changes, but cannot mint tokens, disconnect calendar sources, clear your schedule, or delete the account. Every call it makes is logged.

### Does the Reassign REST API need a paid plan?

The spec states that public endpoints generally need Reassign Pro access, and that the 7-day free trial includes Reassign Pro. GET `/api/v1/me/access` reports the current access state for the token.

### How does Reassign handle time zones?

Spans are a start and end as local datetimes in the form YYYY-MM-DDTHH:MM, with no seconds, offset, or Z, in the account's time zone. Responses name that time zone once as the top-level timezone field, dates are YYYY-MM-DD, and instants are ISO 8601 UTC strings.

### What are the rate limits for the Reassign REST API?

The OpenAPI spec does not specify rate limits. Batch writes are bounded per call instead: POST `/api/v1/events` and POST `/api/v1/backlog` take 1 to 50 ops, and POST `/api/v1/schedule/plan` takes 1 to 20 requests. Check https://reassign.app for current usage limits.

### How do I book a task into free time through Jentic?

Install Jentic One with `curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh`, import the Reassign REST API from the API Directory, and store a Personal Access Token with the events:write scope. Your agent searches for 'book work into free time', receives POST `/api/v1/schedule/plan` with its input schema, and calls it with a name, durationMinutes, and a time window. To run it on your own infrastructure, install Jentic One from its GitHub repo.
