# create_absence Behavior, inputs, outputs and permissions for create_absence. Source: https://docs.getridian.com/developers/tools/create_absence/ Language: en Reviewed: 2026-10-06 This reference is generated from the published tool contract. ## Behavior and boundaries Records an absence for yourself, or as owner or admin for another member, e.g. "I'm on vacation next week". All-day absences use first_day and last_day (inclusive dates); others use start and end with offset. While absent the member gets no booking slots, round robin skips them and collective appointment types offer no time. Existing bookings stay with the member; the result lists them so you can offer reassign_booking. Confirm the period with the user first. ## Permissions Granted scopes, accounts, calendars and visibility rules limit access. Workspace administrators do not automatically gain access to other users’ accounts. `bookings:write` [Consent and boundaries](https://docs.getridian.com/developers/authentication/) ## Input ```json { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "user_id": { "description": "Member who is absent. Default: you.", "type": "string", "minLength": 1, "maxLength": 64 }, "all_day": { "type": "boolean" }, "first_day": { "description": "All-day: first day.", "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$" }, "last_day": { "description": "All-day: last day, inclusive.", "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$" }, "start": { "description": "Not all-day: start with offset.", "type": "string", "maxLength": 40 }, "end": { "description": "Not all-day: end with offset.", "type": "string", "maxLength": 40 }, "time_zone": { "description": "IANA time zone for all-day dates. Default: the member's availability time zone.", "type": "string", "maxLength": 64 }, "reason": { "type": "string", "enum": [ "vacation", "sick", "training", "other" ] }, "substitute_user_id": { "description": "Member who covers. From list_absences members.", "type": "string", "minLength": 1, "maxLength": 64 }, "link_substitute_on_profile": { "description": "Show a link to the substitute's booking page on the member's profile page. Default false.", "type": "boolean" } }, "required": [ "all_day", "reason" ], "additionalProperties": false } ``` ## Output ```json { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "absence": { "type": "object", "properties": { "absence_id": { "type": "string" }, "user_id": { "type": "string" }, "name": { "type": "string" }, "start": { "type": "string" }, "end": { "type": "string" }, "all_day": { "type": "boolean" }, "first_day": { "type": [ "string", "null" ] }, "last_day": { "type": [ "string", "null" ] }, "time_zone": { "type": "string" }, "reason": { "anyOf": [ { "type": "string", "enum": [ "vacation", "sick", "training", "other" ] }, { "type": "null" } ] }, "substitute": { "anyOf": [ { "type": "object", "properties": { "user_id": { "type": "string" }, "name": { "type": "string" } }, "required": [ "user_id", "name" ], "additionalProperties": false }, { "type": "null" } ] } }, "required": [ "absence_id", "user_id", "name", "start", "end", "all_day", "first_day", "last_day", "time_zone", "reason", "substitute" ], "additionalProperties": false }, "affected_bookings": { "type": "array", "items": { "type": "object", "properties": { "booking_id": { "type": "string" }, "start": { "type": "string" }, "appointment_type": { "type": [ "string", "null" ] }, "can_reassign": { "type": "boolean" } }, "required": [ "booking_id", "start", "appointment_type", "can_reassign" ], "additionalProperties": false } }, "console_url": { "type": "string" } }, "required": [ "absence", "affected_bookings", "console_url" ], "additionalProperties": false } ``` ## 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. [Error handling](https://docs.getridian.com/developers/errors/)