# create_contact Behavior, inputs, outputs and permissions for create_contact. Source: https://docs.getridian.com/developers/tools/create_contact/ Language: en Reviewed: 2026-09-20 This reference is generated from the published tool contract. ## Behavior and boundaries Creates one personal contact in an enabled Google or Microsoft account. requestId must be unique for this intended contact 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. `contacts:read`, `contacts:write` [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 }, "givenName": { "type": "string", "minLength": 1, "maxLength": 256 }, "familyName": { "type": "string", "minLength": 1, "maxLength": 256 }, "emailAddresses": { "maxItems": 10, "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,}$" } }, "phoneNumbers": { "maxItems": 10, "type": "array", "items": { "type": "string", "minLength": 1, "maxLength": 64 } }, "organization": { "type": "string", "minLength": 1, "maxLength": 256 }, "jobTitle": { "type": "string", "minLength": 1, "maxLength": 256 } }, "required": [ "accountId", "requestId" ], "additionalProperties": false } ``` ## Output ```json { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "ok": { "type": "boolean", "const": true }, "contactId": { "type": "string" }, "idempotentReplay": { "type": "boolean" } }, "required": [ "ok", "contactId", "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/)