calendar_find_free_time
Find open slots of a required duration across iCloud calendars, with busy events and travel time accounted for. Ideal for proposing meeting times.
Instructions
Find open slots of at least duration_minutes within daily hours across the owner's calendars, with busy time and travel worked out for you.
Use when: proposing meeting times, or checking whether some days have room. Use it instead of reading events and computing gaps yourself. Not for listing what is booked (use calendar_list_events) or for booking a slot (use calendar_create_event once the owner picks one). Parameters:
The search range is at most 62 days and never starts before now.
day_start and day_end ('HH:MM', end later than start) bound each day.
weekdays takes names such as 'mon' or 'saturday' (the first three letters count).
timezone decides how day hours and offset-less times are read.
limit is capped at 100. Behavior:
Read-only.
Busy = timed events plus, with include_travel, their Apple travel time.
Events marked free, cancelled events and invitations the owner declined do not block time; unanswered invitations do.
All-day events never block slots: they are listed for you to judge (a trip blocks the day, a birthday does not). Returns: {free_slots, more_slots, all_day_events, not_counted_as_busy, busy_events_counted, timezone, range, now, complete}. Each slot is {start, end, minutes}: a whole opening, any part of which can be booked. Empty free_slots = no opening that long in those hours. complete=false with not_read means some calendars could not be read, so slots may not be free: tell the owner and run icloud_check_health. Errors: range in the past or too long, duration outside 5 to 1440, a malformed time or weekday.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Search until, same formats. A date end includes that whole day. Default start + 14 days; at most about two months. | |
| limit | No | Max slots to return (1-100). | |
| start | No | Search from: a date (2026-09-24), date-time, today, tomorrow or +3d. Default now; slots in the past are never offered. | |
| day_end | No | Latest time of day to consider, 'HH:MM' (default 18:00; '24:00' = midnight). | 18:00 |
| calendar | No | Calendar name (calendar_list_calendars); omit for all. | |
| timezone | No | IANA timezone for times without an offset, e.g. 'Europe/Berlin'; default the owner's. | |
| weekdays | No | Only these days, e.g. ['sat', 'sun'] or ['mon','tue','wed','thu','fri']. Omit for every day. | |
| day_start | No | Earliest time of day to consider, 'HH:MM' (default 09:00). | 09:00 |
| include_travel | No | true (default) = Apple travel time before an event also counts as busy. | |
| duration_minutes | Yes | How long the opening must be, in minutes (5 to 1440). |