find_free_time
Locate available time blocks of a required duration across one or more calendars within working hours, returning maximal free gaps instead of splitting them into smaller slots.
Instructions
Find free slots of at least duration_minutes inside working hours, across one or several calendars at once. Returns every maximal free block (not chopped into duration-sized pieces), so a 3h gap is reported as one 3h block.
start/end/tz: as in agenda (date-only end includes the whole day). working_hours: local wall-clock ranges in tz, e.g. '09:00-17:00' or '09:00-12:00,13:00-17:00' (so DST days keep their wall hours). days: working weekdays, e.g. 'Mon-Fri' or 'Mon,Wed,Fri'. buffer_minutes: padding kept clear before AND after every busy event. Busy means an uncancelled event; all-day events and events marked TRANSP:TRANSPARENT ('free') do not block unless include_all_day / include_transparent is true.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tz | No | UTC | |
| end | Yes | ||
| days | No | Mon-Fri | |
| limit | No | ||
| start | Yes | ||
| calendars | No | ||
| working_hours | No | 09:00-17:00 | |
| buffer_minutes | No | ||
| include_all_day | No | ||
| duration_minutes | Yes | ||
| include_transparent | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |