openapi: 3.1.0 info: title: Calendly Scheduling Activity Log Organizations API description: The Calendly Scheduling API (v2) is a RESTful API that allows developers to programmatically manage scheduling workflows. It provides endpoints for managing users, organizations, event types, scheduled events, invitees, routing forms, availability schedules, and webhook subscriptions. The API uses JSON for request and response bodies, standard HTTP methods, and supports authentication via personal access tokens and OAuth 2.1. Developers can use it to create events on behalf of invitees, retrieve scheduling data, and integrate Calendly functionality directly into their applications. version: 2.0.0 contact: name: Calendly Developer Support url: https://developer.calendly.com/ termsOfService: https://calendly.com/pages/terms servers: - url: https://api.calendly.com description: Production Server security: - bearerAuth: [] tags: - name: Organizations description: Endpoints for managing organization memberships, invitations, and organization-level settings. paths: /organization_memberships: get: operationId: listOrganizationMemberships summary: List organization memberships description: Returns a paginated list of organization memberships. Each membership represents a users role and status within an organization. tags: - Organizations parameters: - name: organization in: query required: true description: The URI of the organization whose memberships to list. schema: type: string format: uri - name: user in: query description: Filter by user URI. schema: type: string format: uri - name: email in: query description: Filter by user email address. schema: type: string format: email - $ref: '#/components/parameters/Count' - $ref: '#/components/parameters/PageToken' responses: '200': description: Successfully retrieved organization memberships content: application/json: schema: type: object properties: collection: type: array items: $ref: '#/components/schemas/OrganizationMembership' pagination: $ref: '#/components/schemas/Pagination' '401': $ref: '#/components/responses/Unauthorized' /organization_memberships/{uuid}: get: operationId: getOrganizationMembership summary: Get organization membership description: Returns detailed information about a specific organization membership, including the users role and status within the organization. tags: - Organizations parameters: - name: uuid in: path required: true description: The UUID of the organization membership. schema: type: string responses: '200': description: Successfully retrieved the organization membership content: application/json: schema: type: object properties: resource: $ref: '#/components/schemas/OrganizationMembership' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' delete: operationId: deleteOrganizationMembership summary: Remove organization membership description: Removes a user from an organization by deleting their membership. This action cannot be undone. tags: - Organizations parameters: - name: uuid in: path required: true description: The UUID of the organization membership to remove. schema: type: string responses: '204': description: Successfully removed the organization membership '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /organizations/{uuid}/invitations: get: operationId: listOrganizationInvitations summary: List organization invitations description: Returns a paginated list of pending invitations for the specified organization. tags: - Organizations parameters: - name: uuid in: path required: true description: The UUID of the organization. schema: type: string - name: status in: query description: Filter invitations by status. schema: type: string enum: - pending - accepted - declined - $ref: '#/components/parameters/Count' - $ref: '#/components/parameters/PageToken' responses: '200': description: Successfully retrieved organization invitations content: application/json: schema: type: object properties: collection: type: array items: $ref: '#/components/schemas/OrganizationInvitation' pagination: $ref: '#/components/schemas/Pagination' '401': $ref: '#/components/responses/Unauthorized' post: operationId: inviteToOrganization summary: Invite user to organization description: Sends an invitation to a user to join the organization. The invitee will receive an email with instructions to accept the invitation. tags: - Organizations parameters: - name: uuid in: path required: true description: The UUID of the organization. schema: type: string requestBody: required: true content: application/json: schema: type: object required: - email properties: email: type: string format: email description: The email address of the person to invite. responses: '201': description: Successfully created the invitation content: application/json: schema: type: object properties: resource: $ref: '#/components/schemas/OrganizationInvitation' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /organizations/{org_uuid}/invitations/{invitation_uuid}: get: operationId: getOrganizationInvitation summary: Get organization invitation description: Returns detailed information about a specific organization invitation. tags: - Organizations parameters: - name: org_uuid in: path required: true description: The UUID of the organization. schema: type: string - name: invitation_uuid in: path required: true description: The UUID of the invitation. schema: type: string responses: '200': description: Successfully retrieved the invitation content: application/json: schema: type: object properties: resource: $ref: '#/components/schemas/OrganizationInvitation' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' delete: operationId: revokeOrganizationInvitation summary: Revoke organization invitation description: Revokes a pending organization invitation. The invitee will no longer be able to accept the invitation. tags: - Organizations parameters: - name: org_uuid in: path required: true description: The UUID of the organization. schema: type: string - name: invitation_uuid in: path required: true description: The UUID of the invitation to revoke. schema: type: string responses: '204': description: Successfully revoked the invitation '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' components: responses: Unauthorized: description: Authentication failed. Verify that a valid access token is provided in the Authorization header. content: application/json: schema: $ref: '#/components/schemas/Error' BadRequest: description: The request was invalid or malformed. Check the request body and parameters. content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: The requested resource was not found. Verify the UUID or URI is correct. content: application/json: schema: $ref: '#/components/schemas/Error' schemas: OrganizationInvitation: type: object description: An invitation for a user to join a Calendly organization. properties: uri: type: string format: uri description: The canonical URI of the invitation resource. email: type: string format: email description: The email address the invitation was sent to. status: type: string enum: - pending - accepted - declined description: The current status of the invitation. organization: type: string format: uri description: The URI of the organization. created_at: type: string format: date-time description: The timestamp when the invitation was created. updated_at: type: string format: date-time description: The timestamp when the invitation was last updated. last_sent_at: type: string format: date-time description: The timestamp when the invitation was last sent. OrganizationMembership: type: object description: A membership record representing a users role and status within a Calendly organization. properties: uri: type: string format: uri description: The canonical URI of the organization membership resource. role: type: string enum: - user - admin - owner description: The users role within the organization. user: $ref: '#/components/schemas/User' organization: type: string format: uri description: The URI of the organization. created_at: type: string format: date-time description: The timestamp when the membership was created. updated_at: type: string format: date-time description: The timestamp when the membership was last updated. Pagination: type: object description: Pagination information for paginated list responses. properties: count: type: integer description: The number of results in the current page. next_page: type: string format: uri description: The URL of the next page of results, if available. previous_page: type: string format: uri description: The URL of the previous page of results, if available. next_page_token: type: string description: The token to fetch the next page of results. previous_page_token: type: string description: The token to fetch the previous page of results. User: type: object description: A Calendly user account with scheduling and organization information. properties: uri: type: string format: uri description: The canonical URI of the user resource. name: type: string description: The full name of the user. slug: type: string description: The URL-friendly slug for the users scheduling page. email: type: string format: email description: The email address of the user. scheduling_url: type: string format: uri description: The URL of the users Calendly scheduling page. timezone: type: string description: The IANA timezone of the user. avatar_url: type: string format: uri description: The URL of the users avatar image. created_at: type: string format: date-time description: The timestamp when the user was created. updated_at: type: string format: date-time description: The timestamp when the user was last updated. current_organization: type: string format: uri description: The URI of the users current organization. Error: type: object description: An error response from the Calendly API. properties: title: type: string description: A short summary of the error. message: type: string description: A detailed description of the error. details: type: array items: type: object properties: parameter: type: string description: The parameter that caused the error. message: type: string description: A description of what was wrong with the parameter. description: Specific details about validation errors. parameters: Count: name: count in: query description: The number of results to return per page. schema: type: integer minimum: 1 maximum: 100 default: 20 PageToken: name: page_token in: query description: A token for fetching the next page of results from a previous paginated response. schema: type: string securitySchemes: bearerAuth: type: http scheme: bearer description: Personal access token or OAuth 2.1 access token. Include in the Authorization header as Bearer {token}. externalDocs: description: Calendly API Documentation url: https://developer.calendly.com/api-docs