Cal.com Orgs / Roles API
The Orgs / Roles API from Cal.com — 2 operation(s) for orgs / roles.
The Orgs / Roles API from Cal.com — 2 operation(s) for orgs / roles.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/cal-com:cal-com-orgs-roles-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Cal.com API v2 Orgs / Roles API
description: ''
version: 1.0.0
contact: {}
servers: []
tags:
- name: Orgs / Roles
paths:
/v2/organizations/{orgId}/roles:
post:
description: 'Required membership role: `org admin`. PBAC permission: `role.create`. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control'
operationId: OrganizationsRolesController_createRole
parameters:
- name: Authorization
in: header
description: For non-platform customers - value must be `Bearer <token>` where `<token>` is api key prefixed with cal_
required: false
schema:
type: string
- name: x-cal-secret-key
in: header
description: For platform customers - OAuth client secret key
required: false
schema:
type: string
- name: x-cal-client-id
in: header
description: For platform customers - OAuth client ID
required: false
schema:
type: string
- name: orgId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateOrgRoleInput'
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/CreateOrgRoleOutput'
summary: Create a new organization role
tags:
- Orgs / Roles
x-platform-plan: SCALE
get:
description: 'Required membership role: `org admin`. PBAC permission: `role.readOrgRoles`. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control'
operationId: OrganizationsRolesController_getAllRoles
parameters:
- name: Authorization
in: header
description: For non-platform customers - value must be `Bearer <token>` where `<token>` is api key prefixed with cal_
required: false
schema:
type: string
- name: x-cal-secret-key
in: header
description: For platform customers - OAuth client secret key
required: false
schema:
type: string
- name: x-cal-client-id
in: header
description: For platform customers - OAuth client ID
required: false
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/GetAllOrgRolesOutput'
summary: Get all organization roles
tags:
- Orgs / Roles
x-platform-plan: SCALE
/v2/organizations/{orgId}/roles/{roleId}:
get:
description: 'Required membership role: `org admin`. PBAC permission: `role.readOrgRoles`. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control'
operationId: OrganizationsRolesController_getRole
parameters:
- name: Authorization
in: header
description: For non-platform customers - value must be `Bearer <token>` where `<token>` is api key prefixed with cal_
required: false
schema:
type: string
- name: x-cal-secret-key
in: header
description: For platform customers - OAuth client secret key
required: false
schema:
type: string
- name: x-cal-client-id
in: header
description: For platform customers - OAuth client ID
required: false
schema:
type: string
- name: orgId
required: true
in: path
schema:
type: number
- name: roleId
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/GetOrgRoleOutput'
summary: Get a specific organization role
tags:
- Orgs / Roles
x-platform-plan: SCALE
patch:
description: 'Required membership role: `org admin`. PBAC permission: `role.update`. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control'
operationId: OrganizationsRolesController_updateRole
parameters:
- name: Authorization
in: header
description: For non-platform customers - value must be `Bearer <token>` where `<token>` is api key prefixed with cal_
required: false
schema:
type: string
- name: x-cal-secret-key
in: header
description: For platform customers - OAuth client secret key
required: false
schema:
type: string
- name: x-cal-client-id
in: header
description: For platform customers - OAuth client ID
required: false
schema:
type: string
- name: orgId
required: true
in: path
schema:
type: number
- name: roleId
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateOrgRoleInput'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateOrgRoleOutput'
summary: Update an organization role
tags:
- Orgs / Roles
x-platform-plan: SCALE
delete:
description: 'Required membership role: `org admin`. PBAC permission: `role.delete`. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control'
operationId: OrganizationsRolesController_deleteRole
parameters:
- name: Authorization
in: header
description: For non-platform customers - value must be `Bearer <token>` where `<token>` is api key prefixed with cal_
required: false
schema:
type: string
- name: x-cal-secret-key
in: header
description: For platform customers - OAuth client secret key
required: false
schema:
type: string
- name: x-cal-client-id
in: header
description: For platform customers - OAuth client ID
required: false
schema:
type: string
- name: orgId
required: true
in: path
schema:
type: number
- name: roleId
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteOrgRoleOutput'
summary: Delete an organization role
tags:
- Orgs / Roles
x-platform-plan: SCALE
components:
schemas:
DeleteOrgRoleOutput:
type: object
properties:
status:
enum:
- success
- error
type: string
example: success
data:
$ref: '#/components/schemas/OrgRoleOutput'
required:
- status
- data
OrgRoleOutput:
type: object
properties:
id:
type: string
description: Unique identifier for the role
name:
type: string
description: Name of the role
color:
type:
- string
- 'null'
description: Color for the role (hex code)
description:
type:
- string
- 'null'
description: Description of the role
organizationId:
type:
- number
- 'null'
description: Organization ID this role belongs to
type:
enum:
- SYSTEM
- CUSTOM
type: string
description: Type of role
permissions:
type: array
description: Permissions assigned to this role in 'resource.action' format.
example:
- booking.read
- eventType.create
items:
type: string
enum:
- '*.*'
- role.create
- role.read
- role.readTeamRoles
- role.readOrgRoles
- role.update
- role.delete
- eventType.create
- eventType.read
- eventType.readTeamEventTypes
- eventType.readOrgEventTypes
- eventType.update
- eventType.delete
- calEvent.create
- calEvent.read
- calEvent.update
- calEvent.delete
- team.create
- team.read
- team.readOrgTeams
- team.readTeamSettings
- team.readConferencing
- team.readVerifiedResources
- team.readMemberships
- team.update
- team.delete
- team.invite
- team.remove
- team.listMembers
- team.listMembersPrivate
- team.changeMemberRole
- team.impersonate
- organization.create
- organization.read
- organization.readMemberships
- organization.readManagedOrganizations
- organization.readDelegationCredentials
- organization.listMembers
- organization.listMembersPrivate
- organization.readMemberAuditLogs
- organization.invite
- organization.remove
- organization.manageBilling
- organization.changeMemberRole
- organization.impersonate
- organization.passwordReset
- organization.editUsers
- organization.update
- organization.delete
- booking.read
- booking.readOrgBookings
- booking.readRecordings
- booking.update
- booking.updateOrgBookings
- booking.reassignOrgPastBookings
- booking.readOrgAuditLogs
- insights.read
- workflow.create
- workflow.read
- workflow.readTeamWorkflows
- workflow.update
- workflow.delete
- organization.attributes.read
- organization.attributes.update
- organization.attributes.delete
- organization.attributes.create
- organization.attributes.readSyncHistory
- organization.attributes.editUsers
- organization.attributes.readAuditLogs
- routingForm.create
- routingForm.read
- routingForm.readTeamRoutingForms
- routingForm.readOrgRoutingForms
- routingForm.update
- routingForm.delete
- routingForm.readOrgAuditLogs
- routingForm.readResponsePii
- webhook.create
- webhook.read
- webhook.readOrgWebhooks
- webhook.update
- webhook.delete
- availability.readTeamAvailability
- availability.readOrgAvailability
- availability.updateOrgAvailability
- availability.readOrgAuditLogs
- ooo.readOrgOoo
- watchlist.create
- watchlist.read
- watchlist.update
- watchlist.delete
- featureOptIn.read
- featureOptIn.update
- organization.customDomain.create
- organization.customDomain.read
- organization.customDomain.update
- organization.customDomain.delete
- tag.create
- tag.update
- tag.delete
createdAt:
type: string
description: When the role was created
updatedAt:
type: string
description: When the role was last updated
required:
- id
- name
- type
- permissions
- createdAt
- updatedAt
CreateOrgRoleOutput:
type: object
properties:
status:
enum:
- success
- error
type: string
example: success
data:
$ref: '#/components/schemas/OrgRoleOutput'
required:
- status
- data
CreateOrgRoleInput:
type: object
properties:
color:
type: string
description: Color for the role (hex code)
description:
type: string
description: Description of the role
permissions:
type: array
items:
type: string
enum:
- '*.*'
- role.create
- role.read
- role.readTeamRoles
- role.readOrgRoles
- role.update
- role.delete
- eventType.create
- eventType.read
- eventType.readTeamEventTypes
- eventType.readOrgEventTypes
- eventType.update
- eventType.delete
- calEvent.create
- calEvent.read
- calEvent.update
- calEvent.delete
- team.create
- team.read
- team.readOrgTeams
- team.readTeamSettings
- team.readConferencing
- team.readVerifiedResources
- team.readMemberships
- team.update
- team.delete
- team.invite
- team.remove
- team.listMembers
- team.listMembersPrivate
- team.changeMemberRole
- team.impersonate
- organization.create
- organization.read
- organization.readMemberships
- organization.readManagedOrganizations
- organization.readDelegationCredentials
- organization.listMembers
- organization.listMembersPrivate
- organization.readMemberAuditLogs
- organization.invite
- organization.remove
- organization.manageBilling
- organization.changeMemberRole
- organization.impersonate
- organization.passwordReset
- organization.editUsers
- organization.update
- organization.delete
- booking.read
- booking.readOrgBookings
- booking.readRecordings
- booking.update
- booking.updateOrgBookings
- booking.reassignOrgPastBookings
- booking.readOrgAuditLogs
- insights.read
- workflow.create
- workflow.read
- workflow.readTeamWorkflows
- workflow.update
- workflow.delete
- organization.attributes.read
- organization.attributes.update
- organization.attributes.delete
- organization.attributes.create
- organization.attributes.readSyncHistory
- organization.attributes.editUsers
- organization.attributes.readAuditLogs
- routingForm.create
- routingForm.read
- routingForm.readTeamRoutingForms
- routingForm.readOrgRoutingForms
- routingForm.update
- routingForm.delete
- routingForm.readOrgAuditLogs
- routingForm.readResponsePii
- webhook.create
- webhook.read
- webhook.readOrgWebhooks
- webhook.update
- webhook.delete
- availability.readTeamAvailability
- availability.readOrgAvailability
- availability.updateOrgAvailability
- availability.readOrgAuditLogs
- ooo.readOrgOoo
- watchlist.create
- watchlist.read
- watchlist.update
- watchlist.delete
- featureOptIn.read
- featureOptIn.update
- organization.customDomain.create
- organization.customDomain.read
- organization.customDomain.update
- organization.customDomain.delete
- tag.create
- tag.update
- tag.delete
description: 'Permissions for this role (format: resource.action). On update, this field replaces the entire permission set for the role (full replace). Use granular permission endpoints for one-by-one changes.'
example:
- eventType.read
- eventType.create
- booking.read
name:
type: string
minLength: 1
description: Name of the role
required:
- name
GetOrgRoleOutput:
type: object
properties:
status:
enum:
- success
- error
type: string
example: success
data:
$ref: '#/components/schemas/OrgRoleOutput'
required:
- status
- data
GetAllOrgRolesOutput:
type: object
properties:
status:
enum:
- success
- error
type: string
example: success
data:
type: array
items:
$ref: '#/components/schemas/OrgRoleOutput'
required:
- status
- data
UpdateOrgRoleOutput:
type: object
properties:
status:
enum:
- success
- error
type: string
example: success
data:
$ref: '#/components/schemas/OrgRoleOutput'
required:
- status
- data
UpdateOrgRoleInput:
type: object
properties:
color:
type: string
description: Color for the role (hex code)
description:
type: string
description: Description of the role
permissions:
type: array
items:
type: string
enum:
- '*.*'
- role.create
- role.read
- role.readTeamRoles
- role.readOrgRoles
- role.update
- role.delete
- eventType.create
- eventType.read
- eventType.readTeamEventTypes
- eventType.readOrgEventTypes
- eventType.update
- eventType.delete
- calEvent.create
- calEvent.read
- calEvent.update
- calEvent.delete
- team.create
- team.read
- team.readOrgTeams
- team.readTeamSettings
- team.readConferencing
- team.readVerifiedResources
- team.readMemberships
- team.update
- team.delete
- team.invite
- team.remove
- team.listMembers
- team.listMembersPrivate
- team.changeMemberRole
- team.impersonate
- organization.create
- organization.read
- organization.readMemberships
- organization.readManagedOrganizations
- organization.readDelegationCredentials
- organization.listMembers
- organization.listMembersPrivate
- organization.readMemberAuditLogs
- organization.invite
- organization.remove
- organization.manageBilling
- organization.changeMemberRole
- organization.impersonate
- organization.passwordReset
- organization.editUsers
- organization.update
- organization.delete
- booking.read
- booking.readOrgBookings
- booking.readRecordings
- booking.update
- booking.updateOrgBookings
- booking.reassignOrgPastBookings
- booking.readOrgAuditLogs
- insights.read
- workflow.create
- workflow.read
- workflow.readTeamWorkflows
- workflow.update
- workflow.delete
- organization.attributes.read
- organization.attributes.update
- organization.attributes.delete
- organization.attributes.create
- organization.attributes.readSyncHistory
- organization.attributes.editUsers
- organization.attributes.readAuditLogs
- routingForm.create
- routingForm.read
- routingForm.readTeamRoutingForms
- routingForm.readOrgRoutingForms
- routingForm.update
- routingForm.delete
- routingForm.readOrgAuditLogs
- routingForm.readResponsePii
- webhook.create
- webhook.read
- webhook.readOrgWebhooks
- webhook.update
- webhook.delete
- availability.readTeamAvailability
- availability.readOrgAvailability
- availability.updateOrgAvailability
- availability.readOrgAuditLogs
- ooo.readOrgOoo
- watchlist.create
- watchlist.read
- watchlist.update
- watchlist.delete
- featureOptIn.read
- featureOptIn.update
- organization.customDomain.create
- organization.customDomain.read
- organization.customDomain.update
- organization.customDomain.delete
- tag.create
- tag.update
- tag.delete
description: 'Permissions for this role (format: resource.action). On update, this field replaces the entire permission set for the role (full replace). Use granular permission endpoints for one-by-one changes.'
example:
- eventType.read
- eventType.create
- booking.read
name:
type: string
minLength: 1
description: Name of the role
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)