create_appointment_type
Behavior, inputs, outputs and permissions for create_appointment_type.
Reviewed · 2026-10-06 / Ridian
This reference is generated from the published tool contract.
Behavior and boundaries
Section titled “Behavior and boundaries”Creates a new appointment type (a booking page) as a draft, e.g. “Create a 30-minute intro call on Zoom”. It uses your connected calendars and your working hours, like a new appointment type in Ridian. Drafts cannot be booked: the user activates it in Ridian at console_url after checking it. Returns the planned booking page URL, which works once it is active; it is null until the workspace has a public name. Confirm title, duration and location with the user first.
Permissions
Section titled “Permissions”Granted scopes, accounts, calendars and visibility rules limit access. Workspace administrators do not automatically gain access to other users’ accounts.
bookings:write
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "title": { "type": "string", "minLength": 1, "maxLength": 120, "description": "Name bookers see, e.g. \"Intro call\"." }, "description": { "description": "Shown on the booking page.", "type": "string", "maxLength": 5000 }, "duration_minutes": { "description": "Default 30.", "type": "integer", "minimum": 5, "maximum": 720 }, "location": { "description": "Default none. google_meet needs a Google calendar, microsoft_teams a Microsoft calendar, zoom a Zoom connection in Ridian.", "type": "object", "properties": { "type": { "type": "string", "enum": [ "none", "address", "phone", "link", "google_meet", "microsoft_teams", "zoom" ] }, "value": { "description": "Required for address, phone and link (https).", "type": "string", "maxLength": 500 } }, "required": [ "type" ], "additionalProperties": false }, "questions": { "description": "Extra booking form questions. Name and email are always asked.", "maxItems": 20, "type": "array", "items": { "type": "object", "properties": { "label": { "type": "string", "minLength": 1, "maxLength": 200 }, "type": { "type": "string", "enum": [ "text", "multiline", "phone", "choice" ] }, "required": { "type": "boolean" }, "options": { "description": "Only for choice.", "minItems": 1, "maxItems": 30, "type": "array", "items": { "type": "string", "minLength": 1, "maxLength": 200 } } }, "required": [ "label", "type", "required" ], "additionalProperties": false } }, "confirmation": { "description": "manual: the host accepts each request first. Default instant.", "type": "string", "enum": [ "instant", "manual" ] } }, "required": [ "title" ], "additionalProperties": false}Output
Section titled “Output”{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "appointment_type": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "console_url": { "type": "string" }, "next_step": { "type": "string" } }, "required": [ "appointment_type", "console_url", "next_step" ], "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 current resource or send status first.