openapi: 3.2.0 info: title: Cal.com API v2 Orgs / Attributes API description: '' version: 1.0.0 contact: {} servers: [] tags: - name: Orgs / Attributes paths: /v2/organizations/{orgId}/attributes: get: description: 'Required membership role: `org member`. PBAC permission: `organization.attributes.read`. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control' operationId: OrganizationsAttributesController_getOrganizationAttributes parameters: - name: Authorization in: header description: value must be `Bearer ` where `` is api key prefixed with cal_ required: true schema: type: string - name: orgId required: true in: path schema: type: number - name: take required: false in: query description: Maximum number of items to return schema: minimum: 1 maximum: 250 default: 250 example: 25 type: number - name: skip required: false in: query description: Number of items to skip schema: minimum: 0 default: 0 example: 0 type: number responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/GetOrganizationAttributesOutput' summary: Get all attributes tags: - Orgs / Attributes x-mcp: name: get_org_attributes guidance: List all attributes defined for an organization. Attributes are custom fields (TEXT, NUMBER, SINGLE_SELECT, MULTI_SELECT) used to tag members for routing and round-robin. Supports pagination with skip/take. x-oauth-scopes: - ORG_ATTRIBUTES_READ x-platform-plan: ESSENTIALS post: description: 'Required membership role: `org admin`. PBAC permission: `organization.attributes.create`. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control' operationId: OrganizationsAttributesController_createOrganizationAttribute parameters: - name: Authorization in: header description: value must be `Bearer ` where `` is api key prefixed with cal_ required: true schema: type: string - name: orgId required: true in: path schema: type: number requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateOrganizationAttributeInput' responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/CreateOrganizationAttributesOutput' summary: Create an attribute tags: - Orgs / Attributes x-platform-plan: ESSENTIALS /v2/organizations/{orgId}/attributes/{attributeId}: get: description: 'Required membership role: `org member`. PBAC permission: `organization.attributes.read`. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control' operationId: OrganizationsAttributesController_getOrganizationAttribute parameters: - name: Authorization in: header description: value must be `Bearer ` where `` is api key prefixed with cal_ required: true schema: type: string - name: orgId required: true in: path schema: type: number - name: attributeId required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/GetSingleAttributeOutput' summary: Get an attribute tags: - Orgs / Attributes x-mcp: name: get_org_attribute guidance: Get a single organization attribute by ID. Use get_org_attributes to find attribute IDs and get_attribute_options to list available options. x-oauth-scopes: - ORG_ATTRIBUTES_READ x-platform-plan: ESSENTIALS patch: description: 'Required membership role: `org admin`. PBAC permission: `organization.attributes.update`. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control' operationId: OrganizationsAttributesController_updateOrganizationAttribute parameters: - name: Authorization in: header description: value must be `Bearer ` where `` is api key prefixed with cal_ required: true schema: type: string - name: orgId required: true in: path schema: type: number - name: attributeId required: true in: path schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateOrganizationAttributeInput' responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/UpdateOrganizationAttributesOutput' summary: Update an attribute tags: - Orgs / Attributes x-platform-plan: ESSENTIALS delete: description: 'Required membership role: `org admin`. PBAC permission: `organization.attributes.delete`. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control' operationId: OrganizationsAttributesController_deleteOrganizationAttribute parameters: - name: Authorization in: header description: value must be `Bearer ` where `` is api key prefixed with cal_ required: true schema: type: string - name: orgId required: true in: path schema: type: number - name: attributeId required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/DeleteOrganizationAttributesOutput' summary: Delete an attribute tags: - Orgs / Attributes x-platform-plan: ESSENTIALS components: schemas: UpdateOrganizationAttributeInput: type: object properties: name: type: string slug: type: string type: enum: - TEXT - NUMBER - DATE - SINGLE_SELECT - MULTI_SELECT - USER_RELATIONSHIP type: string enabled: type: boolean Attribute: type: object properties: id: type: string description: The ID of the attribute example: attr_123 teamId: type: number description: The team ID associated with the attribute example: 1 type: enum: - TEXT - NUMBER - DATE - SINGLE_SELECT - MULTI_SELECT - USER_RELATIONSHIP type: string description: The type of the attribute name: type: string description: The name of the attribute example: Attribute Name slug: type: string description: The slug of the attribute example: attribute-name enabled: type: boolean description: Whether the attribute is enabled and displayed on their profile example: true usersCanEditRelation: type: boolean description: Whether users can edit the relation example: true required: - id - teamId - type - name - slug - enabled GetSingleAttributeOutput: type: object properties: status: enum: - success - error type: string example: success data: type: - object - 'null' allOf: - $ref: '#/components/schemas/Attribute' required: - status - data UpdateOrganizationAttributesOutput: type: object properties: status: enum: - success - error type: string example: success data: $ref: '#/components/schemas/Attribute' required: - status - data DeleteOrganizationAttributesOutput: type: object properties: status: enum: - success - error type: string example: success data: $ref: '#/components/schemas/Attribute' required: - status - data CreateOrganizationAttributeOptionInput: type: object properties: value: type: string slug: type: string required: - value - slug CreateOrganizationAttributeInput: type: object properties: name: type: string slug: type: string type: enum: - TEXT - NUMBER - DATE - SINGLE_SELECT - MULTI_SELECT - USER_RELATIONSHIP type: string options: type: array items: $ref: '#/components/schemas/CreateOrganizationAttributeOptionInput' enabled: type: boolean required: - name - slug - type - options CreateOrganizationAttributesOutput: type: object properties: status: enum: - success - error type: string example: success data: $ref: '#/components/schemas/Attribute' required: - status - data GetOrganizationAttributesOutput: type: object properties: status: enum: - success - error type: string example: success data: type: array items: $ref: '#/components/schemas/Attribute' required: - status - data x-provenance: method: harvested publisher: Cal.com source: https://cal.com/docs/api-reference/v2/openapi.json note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json); stamped by stamp-openapi-provenance.py (roadmap#793)