Get schedule
get_scheduleRead the calendar — the day's agenda, what's on, how busy you are, your availability, an overview of a day or week, where your time goes. Returns, in one call, everything needed to reason about the plan: the current time (now), the user's areas and activityTypes, userPreferences, and a days array (each day's events, free slots, and how its time splits across areas/types — blocking load and any non-blocking overlay load reported separately). Call it before scheduling to anchor relative times ('this afternoon'). Defaults to today; pass date for another single day, from+to for an inclusive range, or dates for a specific set (ISO YYYY-MM-DD). Pass compact: true to shrink events for wide ranges, or includeSeries: true to also get recurring masters as series. Each event carries its source ("reassign", else a provider like "google") and, when calendar-linked, its calendar name; an event with readOnly: true is on a calendar the user doesn't own — don't edit or delete it (tell them to change it there). kind is omitted for a normal blocking event; "non-blocking" is an overlay that may overlap others (fasting, an away marker); "reference" is see-only — its hours stay free, don't move/delete/schedule work into it unless asked. A confirmed past day carries a review adherence rollup plus per-event reflect actuals (an unreviewed day has neither) — use it for how a day or week actually went. When a calendar is connected, integrations describes it (connected sources + their calendars, classification fallbacks, and the default sync target); omitted otherwise. For a single day, a one-line weather headline is included when the user has a city — call get_weather only for hourly detail. backlogCount reports how many Inbox blocks (the Inbox of un-timed intentions) the user has; pass includeBacklog: true for the items (top of tray first, up to 50) or backlogQuery to find one by name — place/manage them with manage_backlog. Times are in the user's timezone; an untitled event shows as "(untitled)".
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ||
| date | No | ||
| from | No | ||
| dates | No | ||
| compact | No | ||
| backlogQuery | No | Filter the Inbox blocks by name (fuzzy, case/accent-insensitive) — e.g. "dentist". Implies includeBacklog; use it to FIND a specific Inbox block by name instead of paging the whole Inbox. | |
| includeSeries | No | ||
| includeBacklog | No | Include the Inbox items (the `backlog` array), not just `backlogCount`. Pass true when the user wants to see, schedule, or manage their Inbox. | |
| backlogPlannedOn | No | Filter the Inbox blocks to those PLANNED for this day (a block's planned day, or a planned window covering it) — e.g. today's date to answer "what did I plan to get to today?". Implies includeBacklog; composes with backlogQuery. Overdue blocks carry `overdue: true` on the unfiltered read instead. |