Cal.com Teams API
The Teams API from Cal.com — 2 operation(s) for teams.
The Teams API from Cal.com — 2 operation(s) for teams.
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-teams-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 Teams API
description: ''
version: 1.0.0
contact: {}
servers: []
tags:
- name: Teams
paths:
/v2/teams/{teamId}:
get:
description: If accessed using an OAuth access token, the `TEAM_PROFILE_READ` scope is required.
operationId: TeamsController_getTeam
parameters:
- name: Authorization
in: header
description: value must be `Bearer <token>` where `<token>` is api key prefixed with cal_
required: true
schema:
type: string
- name: teamId
required: true
in: path
description: The team's uuid (preferred), its short-uuid (Flickr Base58) form, or its numeric id.
schema:
anyOf:
- type: string
- type: number
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/GetTeamOutput'
summary: Get a team
tags:
- Teams
x-oauth-scopes:
- TEAM_PROFILE_READ
patch:
description: If accessed using an OAuth access token, the `TEAM_PROFILE_WRITE` scope is required.
operationId: TeamsController_updateTeam
parameters:
- name: Authorization
in: header
description: value must be `Bearer <token>` where `<token>` is api key prefixed with cal_
required: true
schema:
type: string
- name: teamId
required: true
in: path
description: The team's uuid (preferred), its short-uuid (Flickr Base58) form, or its numeric id.
schema:
anyOf:
- type: string
- type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateOrgTeamDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateTeamOutput'
summary: Update a team
tags:
- Teams
x-oauth-scopes:
- TEAM_PROFILE_WRITE
delete:
description: If accessed using an OAuth access token, the `TEAM_PROFILE_WRITE` scope is required.
operationId: TeamsController_deleteTeam
parameters:
- name: Authorization
in: header
description: value must be `Bearer <token>` where `<token>` is api key prefixed with cal_
required: true
schema:
type: string
- name: teamId
required: true
in: path
description: The team's uuid (preferred), its short-uuid (Flickr Base58) form, or its numeric id.
schema:
anyOf:
- type: string
- type: number
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/OrgTeamOutputResponseDto'
summary: Delete a team
tags:
- Teams
x-oauth-scopes:
- TEAM_PROFILE_WRITE
/v2/teams:
get:
description: If accessed using an OAuth access token, the `TEAM_PROFILE_READ` scope is required.
operationId: TeamsController_getTeams
parameters:
- name: Authorization
in: header
description: value must be `Bearer <token>` where `<token>` is api key prefixed with cal_
required: true
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/GetTeamsOutput'
summary: Get teams
tags:
- Teams
x-oauth-scopes:
- TEAM_PROFILE_READ
components:
schemas:
OrgTeamOutputResponseDto:
type: object
properties:
status:
enum:
- success
- error
type: string
example: success
data:
$ref: '#/components/schemas/OrgTeamOutputDto'
required:
- status
- data
TeamOutputDto:
type: object
properties:
id:
type: number
parentId:
type: number
name:
type: string
minLength: 1
slug:
type: string
logoUrl:
type: string
format: uri
calVideoLogo:
type: string
format: uri
appLogo:
type: string
format: uri
appIconLogo:
type: string
format: uri
bio:
type: string
hideBranding:
type: boolean
isOrganization:
type: boolean
isPrivate:
type: boolean
hideBookATeamMember:
type: boolean
default: false
metadata:
type: object
additionalProperties: true
example:
key: value
theme:
type: string
brandColor:
type: string
darkBrandColor:
type: string
bannerUrl:
type: string
format: uri
timeFormat:
type: number
timeZone:
type: string
default: Europe/London
weekStart:
type: string
default: Sunday
required:
- id
- name
- isOrganization
UpdateTeamOutput:
type: object
properties:
status:
enum:
- success
- error
type: string
example: success
data:
$ref: '#/components/schemas/TeamOutputDto'
required:
- status
- data
UpdateOrgTeamDto:
type: object
properties:
name:
type: string
minLength: 1
maxLength: 155
description: Name of the team. Maximum 155 characters. Cannot contain links or URLs.
example: CalTeam
slug:
type: string
description: Team slug
example: caltel
logoUrl:
type: string
example: https://i.cal.com/api/avatar/b0b58752-68ad-4c0d-8024-4fa382a77752.png
description: URL of the teams logo image
calVideoLogo:
type: string
appLogo:
type: string
appIconLogo:
type: string
bio:
type: string
hideBranding:
type: boolean
isPrivate:
type: boolean
hideBookATeamMember:
type: boolean
metadata:
type: object
additionalProperties: true
description: 'You can store any additional data you want here.
Metadata must have at most 50 keys, each key up to 40 characters.
Values can be strings (up to 500 characters), numbers, or booleans.'
example:
key: value
theme:
type: string
brandColor:
type: string
darkBrandColor:
type: string
bannerUrl:
type: string
example: https://i.cal.com/api/avatar/949be534-7a88-4185-967c-c020b0c0bef3.png
description: URL of the teams banner image which is shown on booker
timeFormat:
type: number
timeZone:
type: string
example: America/New_York
description: Timezone is used to create teams's default schedule from Monday to Friday from 9AM to 5PM. It will default to Europe/London if not passed.
weekStart:
type: string
example: Monday
bookingLimits:
type: string
includeManagedEventsInLimits:
type: boolean
GetTeamsOutput:
type: object
properties:
status:
enum:
- success
- error
type: string
example: success
data:
type: array
items:
$ref: '#/components/schemas/TeamOutputDto'
required:
- status
- data
GetTeamOutput:
type: object
properties:
status:
enum:
- success
- error
type: string
example: success
data:
$ref: '#/components/schemas/TeamOutputDto'
required:
- status
- data
OrgTeamOutputDto:
type: object
properties:
id:
type: number
parentId:
type: number
name:
type: string
minLength: 1
slug:
type: string
logoUrl:
type: string
format: uri
calVideoLogo:
type: string
format: uri
appLogo:
type: string
format: uri
appIconLogo:
type: string
format: uri
bio:
type: string
hideBranding:
type: boolean
isOrganization:
type: boolean
isPrivate:
type: boolean
hideBookATeamMember:
type: boolean
default: false
metadata:
type: object
additionalProperties: true
example:
key: value
theme:
type: string
brandColor:
type: string
darkBrandColor:
type: string
bannerUrl:
type: string
format: uri
timeFormat:
type: number
timeZone:
type: string
default: Europe/London
weekStart:
type: string
default: Sunday
required:
- id
- name
- isOrganization
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)