{"openapi":"3.1.0","info":{"title":"Calendly Availability (BYOK) API","version":"0.1.0","description":"Calendly Availability (BYOK) lets an AI assistant read your own Calendly Availability data through the Calendly Availability API with a key you supply (Calendly personal access token). Read-only: 6 tools (list_user_availability_schedules, get_user_availability_schedule, list_event_type_availability_schedules, list_user_busy_times, list_event_type_hosts, list_group_relationships). The BYOK key...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-calendly-availability.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-calendly-availability/docs"},"termsOfService":"https://connectorbay.com/byok-calendly-availability/terms"},"servers":[{"url":"https://byok-calendly-availability.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-calendly-availability/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/list_user_availability_schedules":{"post":{"operationId":"list_user_availability_schedules","summary":"List a user's availability schedules with name, default flag, time zone and rules (weekday or date intervals). Use for \"","description":"List a user's availability schedules with name, default flag, time zone and rules (weekday or date intervals). Use for \"What availability schedules does my Calendly user have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user":{"description":"Calendly user URI, for example https://api.calendly.com/users/AAAAAAAAAAAAAAAA (the uri field of the current user).","maxLength":200,"title":"User","type":"string"}},"required":["user"],"title":"list_user_availability_schedulesArguments","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_user_availability_schedule":{"post":{"operationId":"get_user_availability_schedule","summary":"Get one availability schedule by uuid with its time zone and weekday or date rules. Use for \"Show the Calendly availabil","description":"Get one availability schedule by uuid with its time zone and weekday or date rules. Use for \"Show the Calendly availability schedule CCCCCCCC\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"uuid":{"description":"Schedule uuid: the last part of the schedule uri from list_user_availability_schedules.","maxLength":100,"title":"Uuid","type":"string"}},"required":["uuid"],"title":"get_user_availability_scheduleArguments","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_availability_schedules":{"post":{"operationId":"list_event_type_availability_schedules","summary":"Show which availability schedule an event type uses (the host's own, or a fixed schedule) with its rules. Use for \"Which","description":"Show which availability schedule an event type uses (the host's own, or a fixed schedule) with its rules. Use for \"Which availability does my Calendly event type BBBBBBBBBBBBBBBB use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"event_type":{"description":"Event type URI, for example https://api.calendly.com/event_types/BBBBBBBBBBBBBBBB.","maxLength":200,"title":"Event Type","type":"string"}},"required":["event_type"],"title":"list_event_type_availability_schedulesArguments","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_busy_times":{"post":{"operationId":"list_user_busy_times","summary":"List a user's busy windows (Calendly, reserved and external calendar events) between two times: type, start and end only","description":"List a user's busy windows (Calendly, reserved and external calendar events) between two times: type, start and end only, without event details. Use for \"When am I busy next week according to Calendly\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user":{"description":"Calendly user URI, for example https://api.calendly.com/users/AAAAAAAAAAAAAAAA (the uri field of the current user).","maxLength":200,"title":"User","type":"string"},"start_time":{"description":"Start of the range as ISO 8601 UTC time in the future, for example 2026-11-02T00:00:00Z.","maxLength":40,"title":"Start Time","type":"string"},"end_time":{"description":"End of the range as ISO 8601 UTC time after start_time, at most 7 days later, for example 2026-11-08T00:00:00Z.","maxLength":40,"title":"End Time","type":"string"}},"required":["user","start_time","end_time"],"title":"list_user_busy_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_event_type_hosts":{"post":{"operationId":"list_event_type_hosts","summary":"List the hosts of an event type (team or round-robin members) with name, scheduling page URL and time zone; e-mail addre","description":"List the hosts of an event type (team or round-robin members) with name, scheduling page URL and time zone; e-mail addresses are not returned. Use for \"Who hosts my Calendly team event type BBBBBBBBBBBBBBBB\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"event_type":{"description":"Event type URI, for example https://api.calendly.com/event_types/BBBBBBBBBBBBBBBB.","maxLength":200,"title":"Event Type","type":"string"},"count":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Count"},"page_token":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Paging token: pagination.next_page_token from the previous answer. Leave out for the first page.","title":"Page Token"}},"required":["event_type"],"title":"list_event_type_hostsArguments","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_group_relationships":{"post":{"operationId":"list_group_relationships","summary":"List group membership relationships (owner, group, role member or admin) of an organization, optionally for one group or","description":"List group membership relationships (owner, group, role member or admin) of an organization, optionally for one group or owner. Use for \"Who are the admins of my Calendly groups\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Organization URI to filter by.","title":"Organization"},"group":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Group URI to filter by.","title":"Group"},"owner":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Owner URI (organization membership) to filter by.","title":"Owner"},"count":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Count"},"page_token":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Paging token: pagination.next_page_token from the previous answer. Leave out for the first page.","title":"Page Token"}},"title":"list_group_relationshipsArguments","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}}}}