{"openapi":"3.1.0","info":{"title":"Calendly Organization Admin (BYOK) API","version":"0.1.0","description":"Calendly Organization Admin (BYOK) lets an AI assistant read your own Calendly Organization Admin data through the Calendly Organization Admin API with a key you supply (Calendly personal access token). Read-only: 11 tools (get_organization, list_routing_forms, get_routing_form, list_groups, get_group, list_teams, get_team, list_webhook_subscriptions, list_contact_custom_field_definitions,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-calendly-org-admin.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-calendly-org-admin/docs"},"termsOfService":"https://connectorbay.com/byok-calendly-org-admin/terms"},"servers":[{"url":"https://byok-calendly-org-admin.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-calendly-org-admin/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_organization":{"post":{"operationId":"get_organization","summary":"Get the Calendly organization by id: name, plan, stage (trial, free, paid) and dates. Use for \"What Calendly plan is my ","description":"Get the Calendly organization by id: name, plan, stage (trial, free, paid) and dates. Use for \"What Calendly plan is my organization on\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"uuid":{"description":"Organization id: the last segment of its URI, for example 'BBBB' for https://api.calendly.com/organizations/BBBB.","maxLength":200,"title":"Uuid","type":"string"}},"required":["uuid"],"title":"get_organizationArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_routing_forms":{"post":{"operationId":"list_routing_forms","summary":"List the organization's routing forms: name, status (draft or published) and the questions with type, required flag and ","description":"List the organization's routing forms: name, status (draft or published) and the questions with type, required flag and answer choices. Definitions only, no submissions. Use for \"What Calendly routing forms do we have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization":{"description":"Organization URI, for example https://api.calendly.com/organizations/BBBB (shown by Calendly in your account API settings).","maxLength":200,"title":"Organization","type":"string"},"sort":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Order as created_at:asc or created_at:desc.","title":"Sort"},"count":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100, default 20).","title":"Count"},"page_token":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Token from pagination.next_page_token of the previous answer, to fetch the next page.","title":"Page Token"}},"required":["organization"],"title":"list_routing_formsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_routing_form":{"post":{"operationId":"get_routing_form","summary":"Get one routing form by id with its name, status and question definitions. Use for \"Show Calendly routing form DDDD\".","description":"Get one routing form by id with its name, status and question definitions. Use for \"Show Calendly routing form DDDD\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"uuid":{"description":"Routing form id: the last segment of its URI.","maxLength":200,"title":"Uuid","type":"string"}},"required":["uuid"],"title":"get_routing_formArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_groups":{"post":{"operationId":"list_groups","summary":"List the groups of the organization with name and member count (member identities are not returned). Use for \"What Calen","description":"List the groups of the organization with name and member count (member identities are not returned). Use for \"What Calendly groups exist in my organization\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization":{"description":"Organization URI, for example https://api.calendly.com/organizations/BBBB (shown by Calendly in your account API settings).","maxLength":200,"title":"Organization","type":"string"},"count":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100, default 20).","title":"Count"},"page_token":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Token from pagination.next_page_token of the previous answer, to fetch the next page.","title":"Page Token"}},"required":["organization"],"title":"list_groupsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_group":{"post":{"operationId":"get_group","summary":"Get one group by id with its name and member count. Use for \"Show Calendly group EEEE\".","description":"Get one group by id with its name and member count. Use for \"Show Calendly group EEEE\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"uuid":{"description":"Group id: the last segment of its URI.","maxLength":200,"title":"Uuid","type":"string"}},"required":["uuid"],"title":"get_groupArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_teams":{"post":{"operationId":"list_teams","summary":"List the Calendly teams the given user belongs to, with name and team scheduling link. Use for \"What Calendly teams am I","description":"List the Calendly teams the given user belongs to, with name and team scheduling link. Use for \"What Calendly teams am I part of\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"User URI to list teams for, for example https://api.calendly.com/users/AAAA.","title":"User"},"count":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100, default 20).","title":"Count"},"page_token":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Token from pagination.next_page_token of the previous answer, to fetch the next page.","title":"Page Token"}},"title":"list_teamsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_team":{"post":{"operationId":"get_team","summary":"Get one Calendly team by id with its name and scheduling link. Use for \"Show Calendly team FFFF\".","description":"Get one Calendly team by id with its name and scheduling link. Use for \"Show Calendly team FFFF\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"team_uuid":{"description":"Team id: the last segment of its URI.","maxLength":200,"title":"Team Uuid","type":"string"}},"required":["team_uuid"],"title":"get_teamArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_webhook_subscriptions":{"post":{"operationId":"list_webhook_subscriptions","summary":"List webhook subscriptions of an organization, user or group: callback URL, subscribed events, state and scope. Use for ","description":"List webhook subscriptions of an organization, user or group: callback URL, subscribed events, state and scope. Use for \"Which Calendly webhooks are set up for my organization\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization":{"description":"Organization URI, for example https://api.calendly.com/organizations/BBBB (shown by Calendly in your account API settings).","maxLength":200,"title":"Organization","type":"string"},"scope":{"description":"Which subscriptions: organization, user or group.","enum":["organization","user","group"],"title":"Scope","type":"string"},"user":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"User URI; required when scope is user.","title":"User"},"group":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Group URI; required when scope is group.","title":"Group"},"count":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100, default 20).","title":"Count"},"page_token":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Token from pagination.next_page_token of the previous answer, to fetch the next page.","title":"Page Token"}},"required":["organization","scope"],"title":"list_webhook_subscriptionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_contact_custom_field_definitions":{"post":{"operationId":"list_contact_custom_field_definitions","summary":"List the custom field definitions available for Calendly contacts: label, type, selectable options and source. Definitio","description":"List the custom field definitions available for Calendly contacts: label, type, selectable options and source. Definitions only. Use for \"What custom contact fields are defined in Calendly\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_contact_custom_field_definitionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_event_type_available_times":{"post":{"operationId":"list_event_type_available_times","summary":"List open booking slots of an event type within a window of at most 31 days (start must be in the future): slot start ti","description":"List open booking slots of an event type within a window of at most 31 days (start must be in the future): slot start time, remaining invitee seats and booking link. Use for \"What open slots does my Calendly event type have next week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"event_type":{"description":"Event type URI, for example https://api.calendly.com/event_types/CCCC.","maxLength":200,"title":"Event Type","type":"string"},"start_time":{"description":"Window start, ISO 8601 UTC, must not be in the past, for example 2030-01-01T00:00:00Z.","maxLength":40,"title":"Start Time","type":"string"},"end_time":{"description":"Window end, ISO 8601 UTC, at most 31 days after start_time.","maxLength":40,"title":"End Time","type":"string"}},"required":["event_type","start_time","end_time"],"title":"list_event_type_available_timesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_user_meeting_locations":{"post":{"operationId":"list_user_meeting_locations","summary":"List the meeting location kinds configured for a user (for example zoom_conference, physical, inbound_call) and whether ","description":"List the meeting location kinds configured for a user (for example zoom_conference, physical, inbound_call) and whether each is connected. Use for \"Which meeting locations do I have set up in Calendly\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user":{"description":"User URI, for example https://api.calendly.com/users/AAAA.","maxLength":200,"title":"User","type":"string"}},"required":["user"],"title":"list_user_meeting_locationsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}