DEVELOPERS / DEVELOPERS
find_available_rooms
Behavior, inputs, outputs and permissions for find_available_rooms.
Reviewed · 2026-09-20 / Ridian
This reference is generated from the published tool contract.
Behavior and boundaries
Section titled “Behavior and boundaries”Checks live free/busy for up to 20 Microsoft 365 or Google Workspace rooms returned by search_rooms. It never returns event titles, attendees, or organizer data.
Permissions
Section titled “Permissions”Granted scopes, accounts, calendars and visibility rules limit access. Workspace administrators do not automatically gain access to other users’ accounts.
rooms:read
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "accountId": { "type": "string", "minLength": 1 }, "roomIds": { "minItems": 1, "maxItems": 20, "type": "array", "items": { "type": "string", "minLength": 1, "maxLength": 512 } }, "start": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", "description": "ISO 8601 timestamp with an explicit UTC offset, for example 2026-09-14T09:00:00+02:00 or 2026-09-14T07:00:00Z. A timeZone field does not replace the offset." }, "end": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", "description": "ISO 8601 timestamp with an explicit UTC offset, for example 2026-09-14T09:00:00+02:00 or 2026-09-14T07:00:00Z. A timeZone field does not replace the offset." } }, "required": [ "accountId", "roomIds", "start", "end" ], "additionalProperties": false}Output
Section titled “Output”{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "accountId": { "type": "string" }, "provider": { "type": "string" }, "start": { "type": "string" }, "end": { "type": "string" }, "rooms": { "type": "array", "items": { "type": "object", "properties": { "roomId": { "type": "string" }, "name": { "type": "string" }, "capacity": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "building": { "type": "string" }, "floor": { "type": "string" }, "features": { "type": "array", "items": { "type": "string" } }, "available": { "type": "boolean" } }, "required": [ "roomId", "name", "available" ], "additionalProperties": false } } }, "required": [ "accountId", "provider", "start", "end", "rooms" ], "additionalProperties": false}Errors and retries
Section titled “Errors and retries”Check the tool result for errors. Do not blindly retry writes after a timeout. Check the calendar state first.