Detect calendar conflicts
detect_conflictsIdentify double-booked events and tight scheduling transitions across all connected accounts in a specified time window, flagging genuine overlaps and buffer violations to prevent impossible days.
Instructions
Find double-booked events in a window, across every signed-in account.
Reports two things. conflicts are genuine overlaps -- the user cannot be
in both places. tight transitions do not overlap but leave less than the
buffer from get_preferences, which is what makes a day feel impossible.
Events the user declined, events marked free, cancelled events and (unless
include_all_day is set) all-day events are ignored, because none of them
actually occupy the user.
Args: time_min: Start of the window to check, ISO 8601. time_max: End of the window to check, ISO 8601. accounts: Account names to check. Omit for every signed-in account, which is the point of the tool -- a work meeting clashing with a personal one is invisible from either calendar alone. calendar_ids: Restrict to these calendars (in every account checked). Omit for each account's selected calendars. include_all_day: True to let all-day events clash with timed ones. max_events_per_calendar: Safety limit per calendar. Default 250.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| accounts | No | ||
| time_max | Yes | ||
| time_min | Yes | ||
| calendar_ids | No | ||
| include_all_day | No | ||
| max_events_per_calendar | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tight | No | Back-to-back pairs that violate the buffer, earliest first. | |
| message | No | One-line human-readable summary. | |
| skipped | No | Calendars or accounts that could not be read in full, with the reason. | |
| accounts | No | Accounts that were read. | |
| time_max | Yes | End of the checked window, ISO 8601. | |
| time_min | Yes | Start of the checked window, ISO 8601. | |
| timezone | Yes | Timezone the times are expressed in. | |
| conflicts | No | Overlapping pairs, earliest first. | |
| event_count | No | Events considered after filtering. | |
| tight_count | No | Number of too-tight transitions. | |
| calendar_ids | No | Calendars that were read, as 'account:calendar_id'. | |
| buffer_minutes | No | Buffer the tight transitions were judged against. | |
| conflict_count | No | Number of overlapping pairs. | |
| include_all_day | No | Whether all-day events were considered. |