Find a mutual slot and schedule
schedule_mutualFind the earliest overlapping free slot across attendees' calendars and book a meeting with everyone invited. Respects working hours and buffers; errors if no common slot exists.
Instructions
Find the first slot where everyone is free, then book the meeting there.
Reads each attendee's free/busy inside the window, picks the earliest gap
that fits duration_minutes, and creates the event with all of them invited.
Fails with an error if no common slot exists -- widen the window or shorten
the meeting and try again.
By default the search obeys the user's own settings from get_preferences:
their working hours per weekday (so nothing lands on a day off), their lunch
break, and the buffer they want around meetings. working_hours_start and
working_hours_end narrow that further; they never widen it.
Args: attendee_calendar_ids: Attendee email addresses whose availability matters. time_min: Earliest the meeting may start, ISO 8601 with a UTC offset. time_max: Latest the meeting may end, ISO 8601 with a UTC offset. duration_minutes: Length of the meeting in minutes. summary: Title for the meeting. description: Optional agenda or notes. location: Optional location or meeting link. organizer_calendar_id: Calendar the meeting is created on. working_hours_start: Optional daily earliest start, 'HH:MM' local to the calendar, e.g. '09:00'. working_hours_end: Optional daily latest end, 'HH:MM', e.g. '17:00'. send_notifications: Whether Google emails the attendees. Default true. respect_preferences: Obey the user's saved working hours, lunch and buffer. Set false to search the whole window instead. account: Account name from 'calendar-mcp accounts'; omit for the default.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | ||
| summary | Yes | ||
| location | No | ||
| time_max | Yes | ||
| time_min | Yes | ||
| description | No | ||
| duration_minutes | Yes | ||
| working_hours_end | No | ||
| send_notifications | No | ||
| respect_preferences | No | ||
| working_hours_start | No | ||
| attendee_calendar_ids | Yes | ||
| organizer_calendar_id | No | primary |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| event | Yes | The event after the operation. | |
| message | No | One-line human-readable summary of what happened. | |
| calendar_id | Yes | Calendar the event lives on. |