calendar_free_busy
Find merged busy blocks and free gaps across phone calendars for a date range, with options to include hidden, all-day, tentative, or unsynced events.
Instructions
Busy blocks (merged) and the free gaps between them in a time range.
Counts events marked busy (and tentative, unless disabled), skipping canceled events and
events you declined. All-day events are ignored unless include_all_day. Every calendar
synced to the phone counts (hidden ones too, unless include_hidden=false); calendars with
sync off are listed in unsynced_calendars, or synced for the call with include_unsynced.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Range end. | |
| days | No | Number of days from start. | |
| start | No | Range start (same formats as calendar.events). | |
| period | No | today, tomorrow, week, this_week, next_week or month. | |
| calendar | No | Calendar id or name (default: all calendars on the phone). | |
| include_hidden | No | Count calendars hidden in the Calendar app. | |
| include_all_day | No | Treat busy all-day events as busy for the whole day. | |
| include_unsynced | No | Temporarily sync calendars whose sync is off and count them (slow). | |
| min_free_minutes | No | Only report free gaps at least this long. | |
| unsynced_timeout | No | Max seconds to wait for that temporary sync. | |
| include_tentative | No | Treat events with availability 'tentative' as busy. |