# send_mail Behavior, inputs, outputs and permissions for send_mail. Source: https://docs.getridian.com/developers/tools/send_mail/ Language: en Reviewed: 2026-09-20 This reference is generated from the published tool contract. ## Behavior and boundaries Sends one plain-text email from an explicitly enabled Google or Microsoft account to external recipients. No drafts, HTML, attachments, mailbox reads, or delivery tracking. requestId must be unique for this intended email and reused unchanged on retries. ## Permissions Granted scopes, accounts, calendars and visibility rules limit access. Workspace administrators do not automatically gain access to other users’ accounts. `mail:send` [Consent and boundaries](https://docs.getridian.com/developers/authentication/) ## Input ```json { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "accountId": { "type": "string", "minLength": 1 }, "requestId": { "type": "string", "minLength": 1, "maxLength": 128 }, "to": { "minItems": 1, "maxItems": 20, "type": "array", "items": { "type": "string", "maxLength": 320, "format": "email", "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" } }, "cc": { "maxItems": 20, "type": "array", "items": { "type": "string", "maxLength": 320, "format": "email", "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" } }, "bcc": { "maxItems": 20, "type": "array", "items": { "type": "string", "maxLength": 320, "format": "email", "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" } }, "subject": { "type": "string", "minLength": 1, "maxLength": 256 }, "textBody": { "type": "string", "minLength": 1, "maxLength": 20000 } }, "required": [ "accountId", "requestId", "to", "subject", "textBody" ], "additionalProperties": false } ``` ## Output ```json { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "ok": { "type": "boolean", "const": true }, "accepted": { "type": "boolean", "const": true }, "idempotentReplay": { "type": "boolean" } }, "required": [ "ok", "accepted", "idempotentReplay" ], "additionalProperties": false } ``` ## Errors and retries Check the tool result for errors. Do not blindly retry writes after a timeout. Check the calendar state first. [Error handling](https://docs.getridian.com/developers/errors/)