curl --request POST \
--url https://api.cal.com/v2/organizations/{orgId}/teams/{teamId}/roles \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"color": "<string>",
"description": "<string>",
"permissions": [
"eventType.read",
"eventType.create",
"booking.read"
]
}
'{
"status": "success",
"data": {
"id": "<string>",
"name": "<string>",
"type": "SYSTEM",
"permissions": [
"booking.read",
"eventType.create"
],
"createdAt": "<string>",
"updatedAt": "<string>",
"color": "<string>",
"description": "<string>",
"teamId": 123
}
}curl --request POST \
--url https://api.cal.com/v2/organizations/{orgId}/teams/{teamId}/roles \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"color": "<string>",
"description": "<string>",
"permissions": [
"eventType.read",
"eventType.create",
"booking.read"
]
}
'{
"status": "success",
"data": {
"id": "<string>",
"name": "<string>",
"type": "SYSTEM",
"permissions": [
"booking.read",
"eventType.create"
],
"createdAt": "<string>",
"updatedAt": "<string>",
"color": "<string>",
"description": "<string>",
"teamId": 123
}
}For non-platform customers - value must be Bearer <token> where <token> is api key prefixed with cal_
For platform customers - OAuth client secret key
For platform customers - OAuth client ID
Name of the role
1Color for the role (hex code)
Description of the role
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.
role.create, role.read, role.update, role.delete, eventType.create, eventType.read, eventType.update, eventType.delete, team.read, team.update, team.delete, team.invite, team.remove, team.listMembers, team.listMembersPrivate, team.changeMemberRole, team.impersonate, booking.read, booking.readTeamBookings, booking.readRecordings, booking.update, insights.read, workflow.create, workflow.read, workflow.update, workflow.delete, routingForm.create, routingForm.read, routingForm.update, routingForm.delete, webhook.create, webhook.read, webhook.update, webhook.delete [
"eventType.read",
"eventType.create",
"booking.read"
]Was this page helpful?