> ## Documentation Index
> Fetch the complete documentation index at: https://developers.telnyx.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List calendar meetings

> List tracked meetings in a window. Defaults from now through seven days from now. from must not exceed to and the window must not exceed 31 days. bot_will_join is the effective policy decision; check session_id and the linked session status for actual attendance.



## OpenAPI

````yaml /openapi/source/external/meeting-sessions/meeting-sessions.json get /calendar_connections/{id}/meetings
openapi: 3.1.0
info:
  title: Telnyx Meeting Sessions API
  version: 2.0.0
  description: >-
    Programmatically create, control, and inspect Telnyx Meeting Sessions,
    including real-time actions, events, transcripts, and artifacts.
  x-latency-category: interactive
  x-endpoint-cost: light
servers:
  - url: https://api.telnyx.com/v2
security:
  - bearerAuth: []
tags:
  - name: Meeting Sessions
    description: Create, list, retrieve, update, and stop meeting sessions.
  - name: Meeting Session Actions
    description: Send real-time speech and chat actions to an active meeting session.
  - name: Meeting Session Data
    description: >-
      Read lifecycle events and transcript segments for a meeting session, and
      delete its recording media.
  - name: Meeting Session Artifacts
    description: Create and retrieve asynchronous summaries and action-item artifacts.
  - name: Meeting Session Webhooks
    description: Outbound webhook deliveries for meeting session events.
  - name: Meeting Calendar Connections
    description: Connect calendars and manage automatic meeting joins.
paths:
  /calendar_connections/{id}/meetings:
    get:
      tags:
        - Meeting Calendar Connections
      summary: List calendar meetings
      description: >-
        List tracked meetings in a window. Defaults from now through seven days
        from now. from must not exceed to and the window must not exceed 31
        days. bot_will_join is the effective policy decision; check session_id
        and the linked session status for actual attendance.
      operationId: listMeetingCalendarMeetings
      parameters:
        - name: id
          in: path
          required: true
          description: Calendar connection ID.
          schema:
            type: string
        - name: from
          in: query
          description: Window start; defaults to now.
          schema:
            type: string
            format: date-time
        - name: to
          in: query
          description: Window end; defaults to seven days from now.
          schema:
            type: string
            format: date-time
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalendarMeetingListResponse'
              example:
                data:
                  - id: calmtg_example
                    platform: google_meet
                    start_time: '2026-12-05T09:00:00Z'
                    end_time: '2026-12-05T09:30:00Z'
                    organizer:
                      email: organizer@example.com
                      display_name: Organizer
                      self: true
                    attendees: []
                    is_external_organizer: false
                    bot_will_join: true
                    bot_will_join_override: null
                    decision: scheduled
                    session_id: mtgsess_example
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      security:
        - bearerAuth: []
components:
  schemas:
    CalendarMeetingListResponse:
      type: object
      additionalProperties: false
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CalendarMeeting'
      required:
        - data
    CalendarMeeting:
      type: object
      additionalProperties: false
      properties:
        id:
          type: string
          description: Tracked calendar meeting ID.
        platform:
          type: string
          enum:
            - zoom
            - google_meet
            - teams
            - webex
            - unknown
          description: Detected meeting platform.
        start_time:
          type: string
          description: Event start time.
          format: date-time
        end_time:
          anyOf:
            - type: string
              description: Event end time.
              format: date-time
            - type: 'null'
        organizer:
          anyOf:
            - $ref: '#/components/schemas/CalendarPerson'
            - type: 'null'
        attendees:
          type: array
          items:
            $ref: '#/components/schemas/CalendarAttendee'
          description: >-
            Calendar attendees; identity fields are cleared after the retention
            window.
        is_external_organizer:
          anyOf:
            - type: boolean
              description: Whether the connected calendar user is not the organizer.
            - type: 'null'
        bot_will_join:
          type: boolean
          description: Effective policy decision, not proof that the bot has joined.
        bot_will_join_override:
          anyOf:
            - type: boolean
              description: Explicit override; null follows the connection policy.
            - type: 'null'
        decision:
          type: string
          description: Scheduling decision.
          enum:
            - pending
            - scheduled
            - skipped_policy
            - skipped_no_url
            - skipped_duplicate
            - skipped_unsupported
            - cancelled
        session_id:
          anyOf:
            - type: string
              description: Linked meeting session ID, or null until one exists.
            - type: 'null'
      required:
        - id
        - platform
        - start_time
        - end_time
        - organizer
        - attendees
        - is_external_organizer
        - bot_will_join
        - bot_will_join_override
        - decision
        - session_id
    ErrorResponse:
      type: object
      additionalProperties: false
      required:
        - error
      properties:
        error:
          type: object
          additionalProperties: false
          required:
            - code
            - message
          properties:
            code:
              type: string
            message:
              type: string
      examples:
        - error:
            code: invalid_request
            message: webhook_url is disabled
        - error:
            code: not_found
            message: meeting session not found
        - error:
            code: unsupported_capability
            message: avatar video is not supported on platform 'unknown'
        - error:
            code: internal_error
            message: internal server error
    CalendarPerson:
      type: object
      additionalProperties: false
      properties:
        email:
          anyOf:
            - type: string
              description: Email address.
            - type: 'null'
        display_name:
          anyOf:
            - type: string
              description: Display name.
            - type: 'null'
        self:
          anyOf:
            - type: boolean
              description: Whether this is the connected calendar user.
            - type: 'null'
      required:
        - email
        - display_name
        - self
    CalendarAttendee:
      type: object
      additionalProperties: false
      properties:
        email:
          anyOf:
            - type: string
              description: Email address.
            - type: 'null'
        display_name:
          anyOf:
            - type: string
              description: Display name.
            - type: 'null'
        self:
          anyOf:
            - type: boolean
              description: Whether this is the connected calendar user.
            - type: 'null'
        response_status:
          anyOf:
            - type: string
              description: Calendar RSVP status.
            - type: 'null'
        optional:
          anyOf:
            - type: boolean
              description: Whether attendance is optional.
            - type: 'null'
      required:
        - email
        - display_name
        - self
        - response_status
        - optional
  responses:
    BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: invalid_request
              message: request is invalid
    Unauthorized:
      description: >-
        Unauthorized. On api.telnyx.com, authentication is enforced by the API
        gateway before the request reaches the Meeting service, so a missing or
        invalid API key returns the standard Telnyx error envelope (`{"errors":
        [{"code": "10009", ...}]}`) rather than the single-`error` shape below.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: unauthorized
              message: invalid or missing credentials
    Forbidden:
      description: The authenticated credential is not permitted to perform this operation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: forbidden
              message: credential is not permitted
    NotFound:
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: not_found
              message: meeting session not found
    TooManyRequests:
      description: >-
        Authentication is temporarily overloaded. Retry after the number of
        seconds in `Retry-After`.
      headers:
        Retry-After:
          required: true
          description: Seconds to wait before retrying.
          schema:
            type: integer
            minimum: 1
            maximum: 5
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: auth_overloaded
              message: authentication temporarily overloaded
    InternalServerError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: internal_error
              message: internal server error
    ServiceUnavailable:
      description: >-
        A required feature or dependency is not configured, authentication is
        unavailable, or (`assistant_lookup_unavailable`) the assistant could not
        be read to check its avatar.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: not_configured
              message: required feature is not configured
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````