{
"name": "update_preferences",
"description": "Update a user's scheduling preferences including work hours, buffer time, energy patterns, and focus blocks. These preferences influence how meeting times are scored and selected.",
"inputSchema": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"description": "Email address of the user"
},
"preferences": {
"type": "object",
"description": "Scheduling preferences to update",
"properties": {
"work_hours": {
"type": "object",
"description": "Work hours for each day of the week",
"properties": {
"monday": { "$ref": "#/definitions/DaySchedule" },
"tuesday": { "$ref": "#/definitions/DaySchedule" },
"wednesday": { "$ref": "#/definitions/DaySchedule" },
"thursday": { "$ref": "#/definitions/DaySchedule" },
"friday": { "$ref": "#/definitions/DaySchedule" },
"saturday": { "$ref": "#/definitions/DaySchedule" },
"sunday": { "$ref": "#/definitions/DaySchedule" }
}
},
"timezone": {
"type": "string",
"description": "IANA timezone (e.g., 'America/New_York')",
"examples": ["America/New_York", "Europe/London", "Asia/Tokyo"]
},
"buffer_minutes": {
"type": "integer",
"description": "Minutes of buffer time between meetings",
"enum": [0, 15, 30],
"default": 15
},
"availability_window_days": {
"type": "integer",
"description": "How many days ahead to search for availability",
"minimum": 7,
"maximum": 90,
"default": 14
},
"max_meetings_per_day": {
"type": "integer",
"description": "Maximum meetings allowed per day",
"minimum": 1,
"maximum": 10,
"default": 5
},
"energy_pattern": {
"type": "string",
"description": "When user is most productive",
"enum": ["flexible", "morning_person", "afternoon_person", "evening_person"],
"default": "flexible"
},
"scheduling_context": {
"type": "string",
"description": "Free-form text about scheduling preferences for AI to learn from",
"maxLength": 1000
},
"focus_blocks": {
"type": "array",
"description": "Protected time blocks for deep work",
"items": {
"type": "object",
"properties": {
"day": {
"type": "string",
"enum": ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"]
},
"start": {
"type": "string",
"description": "Start time in HH:MM format (e.g., '09:00')"
},
"end": {
"type": "string",
"description": "End time in HH:MM format (e.g., '12:00')"
},
"reason": {
"type": "string",
"description": "Why this time is protected (e.g., 'Deep work')"
}
},
"required": ["day", "start", "end"]
}
}
}
}
},
"required": ["email", "preferences"]
},
"definitions": {
"DaySchedule": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether this day is a work day"
},
"start": {
"type": "string",
"description": "Start time in HH:MM format (e.g., '09:00')"
},
"end": {
"type": "string",
"description": "End time in HH:MM format (e.g., '17:00')"
}
},
"required": ["enabled", "start", "end"]
}
}
}