Cal.com Orgs / Teams / Event Types / Private Links API
The Orgs / Teams / Event Types / Private Links API from Cal.com — 2 operation(s) for orgs / teams / event types / private links.
The Orgs / Teams / Event Types / Private Links API from Cal.com — 2 operation(s) for orgs / teams / event types / private links.
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-teams-event-types-private-links-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 / Teams / Event Types / Private Links…
description: ''
version: 1.0.0
contact: {}
servers: []
tags:
- name: Orgs / Teams / Event Types / Private Links
paths:
/v2/organizations/{orgId}/teams/{teamId}/event-types/{eventTypeId}/private-links:
post:
description: If accessed using an OAuth access token, the `TEAM_EVENT_TYPE_WRITE` scope is required.
operationId: OrganizationsEventTypesPrivateLinksController_2024_09_04_createPrivateLink
parameters:
- name: cal-api-version
in: header
description: Must be set to `2024-09-04`. Returns the full booking URL including org slug and event slug.
required: true
schema:
type: string
example: '2024-09-04'
default: '2024-09-04'
- 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: eventTypeId
required: true
in: path
schema:
type: number
- 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
- name: orgId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePrivateLinkInput'
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePrivateLinkOutput'
summary: Create a private link for a team event type
tags:
- Orgs / Teams / Event Types / Private Links
x-oauth-scopes:
- TEAM_EVENT_TYPE_WRITE
x-platform-plan: ESSENTIALS
get:
description: If accessed using an OAuth access token, the `TEAM_EVENT_TYPE_READ` scope is required.
operationId: OrganizationsEventTypesPrivateLinksController_2024_09_04_getPrivateLinks
parameters:
- name: cal-api-version
in: header
description: Must be set to `2024-09-04`. Returns the full booking URL including org slug and event slug.
required: true
schema:
type: string
example: '2024-09-04'
default: '2024-09-04'
- 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: eventTypeId
required: true
in: path
schema:
type: number
- 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
- name: orgId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/GetPrivateLinksOutput'
summary: Get all private links for a team event type
tags:
- Orgs / Teams / Event Types / Private Links
x-oauth-scopes:
- TEAM_EVENT_TYPE_READ
x-platform-plan: ESSENTIALS
/v2/organizations/{orgId}/teams/{teamId}/event-types/{eventTypeId}/private-links/{linkId}:
patch:
description: If accessed using an OAuth access token, the `TEAM_EVENT_TYPE_WRITE` scope is required.
operationId: OrganizationsEventTypesPrivateLinksController_2024_09_04_updatePrivateLink
parameters:
- name: cal-api-version
in: header
description: Must be set to `2024-09-04`. Returns the full booking URL including org slug and event slug.
required: true
schema:
type: string
example: '2024-09-04'
default: '2024-09-04'
- 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: eventTypeId
required: true
in: path
schema:
type: number
- name: linkId
required: true
in: path
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
- name: orgId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/UpdatePrivateLinkOutput'
summary: Update a private link for a team event type
tags:
- Orgs / Teams / Event Types / Private Links
x-oauth-scopes:
- TEAM_EVENT_TYPE_WRITE
x-platform-plan: ESSENTIALS
delete:
description: If accessed using an OAuth access token, the `TEAM_EVENT_TYPE_WRITE` scope is required.
operationId: OrganizationsEventTypesPrivateLinksController_2024_09_04_deletePrivateLink
parameters:
- name: cal-api-version
in: header
description: Must be set to `2024-09-04`. Returns the full booking URL including org slug and event slug.
required: true
schema:
type: string
example: '2024-09-04'
default: '2024-09-04'
- 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: eventTypeId
required: true
in: path
schema:
type: number
- name: linkId
required: true
in: path
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
- name: orgId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/DeletePrivateLinkOutput'
summary: Delete a private link for a team event type
tags:
- Orgs / Teams / Event Types / Private Links
x-oauth-scopes:
- TEAM_EVENT_TYPE_WRITE
x-platform-plan: ESSENTIALS
components:
schemas:
TimeBasedPrivateLinkOutput:
type: object
properties:
linkId:
type: string
description: The private link ID
example: abc123def456
eventTypeId:
type: number
description: Event type ID this link belongs to
example: 123
isExpired:
type: boolean
description: Whether the link is currently expired
example: false
bookingUrl:
type: string
description: Full booking URL for this private link (deprecated endpoints return hash-only URL without event slug)
format: uri
example: https://cal.com/d/abc123def456
expiresAt:
type: string
description: Expiration date for this time-based link
format: date-time
example: '2025-12-31T23:59:59.000Z'
required:
- linkId
- eventTypeId
- isExpired
- bookingUrl
- expiresAt
UpdatePrivateLinkOutput:
type: object
properties:
status:
type: string
description: Response status
example: success
data:
description: Updated private link data (either time-based or usage-based)
oneOf:
- title: Time-Based Link
$ref: '#/components/schemas/TimeBasedPrivateLinkOutput'
- title: Usage-Based Link
$ref: '#/components/schemas/UsageBasedPrivateLinkOutput'
required:
- status
- data
UsageBasedPrivateLinkOutput:
type: object
properties:
linkId:
type: string
description: The private link ID
example: abc123def456
eventTypeId:
type: number
description: Event type ID this link belongs to
example: 123
isExpired:
type: boolean
description: Whether the link is currently expired
example: false
bookingUrl:
type: string
description: Full booking URL for this private link (deprecated endpoints return hash-only URL without event slug)
format: uri
example: https://cal.com/d/abc123def456
maxUsageCount:
type: number
description: Maximum number of times this link can be used
example: 10
usageCount:
type: number
description: Current usage count for this link
example: 3
required:
- linkId
- eventTypeId
- isExpired
- bookingUrl
- maxUsageCount
- usageCount
CreatePrivateLinkInput:
type: object
properties:
expiresAt:
type: string
description: Expiration date for time-based links
format: date-time
example: '2024-12-31T23:59:59.000Z'
maxUsageCount:
type: number
description: Maximum number of times the link can be used. Pass `-1` to opt out of the count cap (the link is then gated only by `expiresAt`, or unbounded if that is also unset). If omitted and expiresAt is not provided, defaults to 1 (one time use).
example: 10
default: 1
DeletePrivateLinkOutput:
type: object
properties:
status:
type: string
description: Response status
example: success
data:
type: object
description: Deleted link information
properties:
linkId:
type: string
example: abc123def456
message:
type: string
example: Private link deleted successfully
required:
- status
- data
GetPrivateLinksOutput:
type: object
properties:
status:
type: string
description: Response status
example: success
data:
type: array
description: Array of private links for the event type (mix of time-based and usage-based)
items:
oneOf:
- title: Time-Based Link
$ref: '#/components/schemas/TimeBasedPrivateLinkOutput'
- title: Usage-Based Link
$ref: '#/components/schemas/UsageBasedPrivateLinkOutput'
required:
- status
- data
CreatePrivateLinkOutput:
type: object
properties:
status:
type: string
description: Response status
example: success
data:
description: Created private link data (either time-based or usage-based)
oneOf:
- title: Time-Based Link
$ref: '#/components/schemas/TimeBasedPrivateLinkOutput'
- title: Usage-Based Link
$ref: '#/components/schemas/UsageBasedPrivateLinkOutput'
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)