Audit where time went
time_auditReport where your time went by analyzing calendar events for meeting hours, attendees, and remaining focus time.
Instructions
Report where the user's time went: meeting hours, who with, and what focus time is left.
Answers "how much of my week is meetings?", "who am I spending my time with?" and "where did my focus time go?" in one pass. Working hours, lunch, buffer and the minimum focus block come from the saved preferences (see get_preferences), so the percentages reflect this user's actual day.
Declined meetings, events marked 'free', and all-day entries are excluded by default; the 'excluded' field says how many were skipped.
Args: time_min: Start of the window to audit, ISO 8601. time_max: End of the window to audit, ISO 8601. calendar_ids: Calendars to include. Defaults to ['primary']. group_by: Break the window down by 'day' or by ISO 'week'. include_all_day: Count all-day events as meeting time. include_declined: Count meetings the user declined. account: Account name from 'calendar-mcp accounts'; omit for the default.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | ||
| group_by | No | week | |
| time_max | Yes | ||
| time_min | Yes | ||
| calendar_ids | No | ||
| include_all_day | No | ||
| include_declined | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| by_size | No | Meeting time by headcount: 'solo', '1:1', 'small' (<=4), 'large'. | |
| periods | No | Per-day or per-week breakdown, earliest first. | |
| excluded | No | What was skipped and why. | |
| group_by | No | Period grouping used: 'day' or 'week'. | week |
| insights | No | Three to five plain-English takeaways. | |
| time_max | Yes | Exclusive end of the audited window, ISO 8601. | |
| time_min | Yes | Inclusive start of the audited window, ISO 8601. | |
| timezone | Yes | Timezone the days, weeks and working hours are expressed in. | |
| by_domain | No | Meeting time by attendee email domain. A meeting with two domains counts in both. | |
| top_people | No | People the user shared the most meeting hours with, most first. | |
| calendar_ids | No | Calendars the events came from. | |
| by_recurrence | No | Meeting time split into 'recurring' and 'one-off'. | |
| busiest_period | No | The heaviest entry of 'periods'. None when nothing was booked. | |
| focus_block_count | No | Number of such blocks. | |
| back_to_back_count | No | Runs of three or more meetings with no usable gap. | |
| back_to_back_hours | No | Total wall-clock hours those runs cover. | |
| longest_meeting_day | No | The single heaviest day, regardless of group_by. None when nothing was booked. | |
| total_meeting_count | No | Meetings counted. | |
| total_meeting_hours | No | Total meeting hours in the window; overlaps counted twice. | |
| largest_focus_blocks | No | The five longest free blocks, longest first. | |
| focus_hours_available | No | Unbooked working hours in blocks at least min_focus_block_minutes long. | |
| back_to_back_stretches | No | The individual back-to-back runs, earliest first. | |
| share_of_working_hours | No | Fraction of the working hours spent in meetings, 0..1. | |
| working_hours_available | No | Working hours in the window, lunch removed. | |
| meeting_hours_in_working_hours | No | Meeting hours inside the working hours, overlaps merged. |