Set scheduling preferences
set_preferencesUpdate and save scheduling preferences—timezone, working hours, buffer, focus blocks, lunch—without restating unchanged settings. Validation rejects invalid changes, leaving saved preferences intact.
Instructions
Update the user's scheduling preferences and save them. Returns the merged result.
Only the arguments you pass change; everything else keeps its current value, so a single correction ("I actually start at 8") does not have to restate the whole schedule. The merged result is validated before it is written, so a rejected change leaves the saved preferences untouched.
Args:
timezone: IANA timezone the working hours are expressed in, e.g.
'Europe/Berlin'. Must be a real zone name.
working_hours: Whole-schedule replacement, keyed by weekday
('mon'..'sun'), each value a list of ['HH:MM', 'HH:MM'] pairs. Days
you omit become non-working, so pass every working day at once, e.g.
{"mon": [["09:00", "12:00"], ["13:00", "18:00"]], "fri": [["09:00", "15:00"]]}.
buffer_minutes: Minimum gap to leave before and after each meeting when
proposing times. 0 disables it.
min_focus_block_minutes: Shortest free stretch that still counts as
usable focus time.
lunch: Daily lunch break as ['HH:MM', 'HH:MM'], carved out of the
working hours.
focus_calendar_id: Calendar that focus blocks are booked on; 'primary'
for the user's own.
clear_lunch: Set true to remove an existing lunch break (pass this
instead of lunch when the user says they no longer want one).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| lunch | No | ||
| timezone | No | ||
| clear_lunch | No | ||
| working_hours | No | ||
| buffer_minutes | No | ||
| focus_calendar_id | No | ||
| min_focus_block_minutes | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| lunch | No | Daily lunch break as ['HH:MM', 'HH:MM'], carved out of the working hours. Omit for no lunch break. | |
| timezone | No | IANA timezone the working hours are expressed in, e.g. 'Europe/Berlin'. Omit to use the calendar's own timezone. | |
| working_hours | No | Per-weekday working spans, keyed 'mon'..'sun', each a list of ['HH:MM', 'HH:MM'] pairs. An empty list means the day is off. | |
| buffer_minutes | No | Minimum gap to leave before and after each meeting when scheduling. | |
| focus_calendar_id | No | Calendar that focus blocks are booked on. | primary |
| min_focus_block_minutes | No | Shortest free stretch that still counts as usable focus time. |