Cal.com Teams API

The Teams API from Cal.com — 2 operation(s) for teams.

Operations 4

GET /v2/teams/{teamId} Get a team #
PATCH /v2/teams/{teamId} Update a team #
DELETE /v2/teams/{teamId} Delete a team #
GET /v2/teams Get teams #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cal-com:cal-com-teams-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

cal-com-teams-api-openapi.yml Raw ↑
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)