> ## Documentation Index
> Fetch the complete documentation index at: https://x-preview-smedina-x-calls-api.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Schedule a call

> Puts an X call on the authenticated user's X Calls calendar, with them as its organizer, and invites people to it. The call exists right away: share its join_url, or put an agent in it at start time with POST /2/calls/:id/join. A recurrence (an RFC 5545 RRULE) repeats it. Invitees get an email unless notify_invitees is false.



## OpenAPI

````yaml xcalls/openapi.json POST /2/calls/scheduled
openapi: 3.0.0
info:
  title: X Calls API
  version: '2'
  description: >-
    Start, join and schedule X calls as your app's user, and put a voice agent
    in them. In development: endpoints and payloads may change.
servers:
  - description: X API
    url: https://api.x.com
security: []
tags:
  - name: Calls
paths:
  /2/calls/scheduled:
    post:
      tags:
        - Calls
      summary: Schedule a call
      description: >-
        Puts an X call on the authenticated user's X Calls calendar, with them
        as its organizer, and invites people to it. The call exists right away:
        share its join_url, or put an agent in it at start time with POST
        /2/calls/:id/join. A recurrence (an RFC 5545 RRULE) repeats it. Invitees
        get an email unless notify_invitees is false.
      operationId: scheduleCall
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScheduleCallRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduleCallResponse'
          description: The request has succeeded.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: The request has failed.
      security:
        - OAuth2UserToken:
            - users.read
            - tweet.read
            - dm.write
        - UserToken: []
components:
  schemas:
    ScheduleCallRequest:
      additionalProperties: false
      properties:
        description:
          description: What the call is about.
          maxLength: 1000
          type: string
        duration_minutes:
          description: >-
            How long the call lasts, in minutes. Defaults to 30; at most 31
            days.
          maximum: 44640
          minimum: 1
          type: integer
        invitee_ids:
          description: X user ids of the people to invite.
          items:
            pattern: ^[0-9]{1,19}$
            type: string
          maxItems: 100
          type: array
        notify_invitees:
          description: Whether invitees get an email about the call. Defaults to true.
          type: boolean
        recurrence:
          description: >-
            RFC 5545 RRULE to repeat the call by, such as FREQ=WEEKLY;BYDAY=MO;
            the RRULE: prefix is optional.
          maxLength: 500
          type: string
        start_time:
          description: When the call starts (RFC 3339); not in the past.
          pattern: >-
            ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])T([01]\d|2[0-3]):[0-5]\d:[0-5]\d(\.\d{1,9})?(Z|[+-]([01]\d|2[0-3]):[0-5]\d)$
          type: string
        time_zone:
          description: IANA time zone the recurrence follows, such as America/Los_Angeles.
          maxLength: 64
          type: string
        title:
          description: Title invitees see.
          maxLength: 100
          type: string
      required:
        - start_time
      type: object
    ScheduleCallResponse:
      properties:
        data:
          $ref: '#/components/schemas/ScheduleCallResponseData'
        errors:
          items:
            $ref: '#/components/schemas/Problem'
          type: array
      type: object
    Error:
      properties:
        code:
          format: int32
          type: integer
        message:
          type: string
      required:
        - code
        - message
      type: object
    Problem:
      discriminator:
        mapping:
          https://api.twitter.com/2/problems/duplicate-rules: '#/components/schemas/DuplicateRuleProblem'
          https://api.twitter.com/2/problems/invalid-rules: '#/components/schemas/InvalidRuleProblem'
          https://api.x.com/2/problems/disallowed-resource: '#/components/schemas/DisallowedResourceProblem'
          https://api.x.com/2/problems/field-hydration-failure: '#/components/schemas/FieldHydrationFailureProblem'
          https://api.x.com/2/problems/field-unauthorized: '#/components/schemas/FieldUnauthorizedProblem'
          https://api.x.com/2/problems/internal-error: '#/components/schemas/InternalErrorProblem'
          https://api.x.com/2/problems/invalid-request: '#/components/schemas/InvalidRequestProblem'
          https://api.x.com/2/problems/not-authorized-for-field: '#/components/schemas/NotAuthorizedForFieldProblem'
          https://api.x.com/2/problems/not-authorized-for-resource: '#/components/schemas/NotAuthorizedForResourceProblem'
          https://api.x.com/2/problems/recipient-not-messageable: '#/components/schemas/RecipientNotMessageableProblem'
          https://api.x.com/2/problems/resource-not-found: '#/components/schemas/ResourceNotFoundProblem'
          https://api.x.com/2/problems/resource-unavailable: '#/components/schemas/ResourceUnavailableProblem'
        propertyName: type
      oneOf:
        - $ref: '#/components/schemas/ResourceNotFoundProblem'
        - $ref: '#/components/schemas/InvalidRequestProblem'
        - $ref: '#/components/schemas/NotAuthorizedForResourceProblem'
        - $ref: '#/components/schemas/NotAuthorizedForFieldProblem'
        - $ref: '#/components/schemas/FieldUnauthorizedProblem'
        - $ref: '#/components/schemas/FieldHydrationFailureProblem'
        - $ref: '#/components/schemas/ResourceUnavailableProblem'
        - $ref: '#/components/schemas/DisallowedResourceProblem'
        - $ref: '#/components/schemas/RecipientNotMessageableProblem'
        - $ref: '#/components/schemas/InternalErrorProblem'
        - $ref: '#/components/schemas/DuplicateRuleProblem'
        - $ref: '#/components/schemas/InvalidRuleProblem'
    ScheduleCallResponseData:
      additionalProperties: false
      properties:
        calendar:
          description: >-
            Where the call lives: x (X Calls), or outlook for a Microsoft
            Outlook calendar the user linked to X, whose calls are changed
            there.
          type: string
        call_id:
          description: The X call people join; also its join secret.
          type: string
        description:
          description: What the call is about.
          type: string
        end_time:
          description: End of this occurrence (RFC 3339).
          type: string
        id:
          description: >-
            Unique identifier of the scheduled call: what PUT, DELETE and rsvp
            take. Calls on linked calendars have none.
          type: string
        invitees:
          description: >-
            Everyone invited, except the organizer. Not set for linked
            calendars.
          items:
            $ref: '#/components/schemas/ScheduleCallResponseDataInvitees'
          type: array
        join_url:
          description: Link people open to join the call on X.
          type: string
        occurrence_start_time:
          description: >-
            For a recurring call, this occurrence's original start (RFC 3339):
            pass it as occurrence_start_time to change, cancel or answer just
            this occurrence.
          type: string
        organizer_id:
          description: X user id of the call's organizer.
          type: string
        recurrence:
          description: RFC 5545 RRULE the call repeats by, such as FREQ=WEEKLY;BYDAY=MO.
          type: string
        start_time:
          description: Start of this occurrence (RFC 3339).
          type: string
        status:
          description: scheduled, or cancelled for a cancelled occurrence.
          type: string
        time_zone:
          description: IANA time zone the recurrence follows.
          type: string
        title:
          description: Title of the call.
          type: string
      type: object
    DuplicateRuleProblem:
      properties:
        detail:
          type: string
        id:
          type: string
        title:
          type: string
        type:
          enum:
            - https://api.twitter.com/2/problems/duplicate-rules
          type: string
        value:
          type: string
      required:
        - type
        - title
        - value
      type: object
    InvalidRuleProblem:
      properties:
        detail:
          type: string
        details:
          items:
            type: string
          type: array
        title:
          type: string
        type:
          enum:
            - https://api.twitter.com/2/problems/invalid-rules
          type: string
        value:
          type: string
      required:
        - type
        - title
        - details
      type: object
    DisallowedResourceProblem:
      properties:
        detail:
          type: string
        resource_id:
          type: string
        resource_type:
          type: string
        section:
          type: string
        status:
          type: integer
        title:
          type: string
        type:
          enum:
            - https://api.x.com/2/problems/disallowed-resource
          type: string
      required:
        - type
        - title
        - detail
      type: object
    FieldHydrationFailureProblem:
      properties:
        detail:
          type: string
        field:
          type: string
        resource_type:
          type: string
        section:
          type: string
        status:
          type: integer
        title:
          type: string
        type:
          enum:
            - https://api.x.com/2/problems/field-hydration-failure
          type: string
      required:
        - type
        - title
        - detail
        - field
      type: object
    FieldUnauthorizedProblem:
      properties:
        detail:
          type: string
        field:
          type: string
        resource_type:
          type: string
        section:
          type: string
        status:
          type: integer
        title:
          type: string
        type:
          enum:
            - https://api.x.com/2/problems/field-unauthorized
          type: string
      required:
        - type
        - title
        - detail
        - field
      type: object
    InternalErrorProblem:
      properties:
        detail:
          type: string
        status:
          type: integer
        title:
          type: string
        type:
          enum:
            - https://api.x.com/2/problems/internal-error
          type: string
      required:
        - type
        - title
        - detail
      type: object
    InvalidRequestProblem:
      properties:
        detail:
          type: string
        parameter:
          type: string
        status:
          type: integer
        title:
          type: string
        type:
          enum:
            - https://api.x.com/2/problems/invalid-request
          type: string
        value:
          type: string
      required:
        - type
        - title
        - detail
      type: object
    NotAuthorizedForFieldProblem:
      properties:
        detail:
          type: string
        field:
          type: string
        parameter:
          type: string
        resource_id:
          type: string
        resource_type:
          type: string
        section:
          type: string
        status:
          type: integer
        title:
          type: string
        type:
          enum:
            - https://api.x.com/2/problems/not-authorized-for-field
          type: string
        value:
          type: string
      required:
        - type
        - title
        - detail
        - field
      type: object
    NotAuthorizedForResourceProblem:
      properties:
        detail:
          type: string
        parameter:
          type: string
        resource_id:
          type: string
        resource_type:
          type: string
        section:
          type: string
        status:
          type: integer
        title:
          type: string
        type:
          enum:
            - https://api.x.com/2/problems/not-authorized-for-resource
          type: string
        value:
          type: string
      required:
        - type
        - title
        - detail
        - resource_type
      type: object
    RecipientNotMessageableProblem:
      properties:
        detail:
          type: string
        status:
          type: integer
        title:
          type: string
        type:
          enum:
            - https://api.x.com/2/problems/recipient-not-messageable
          type: string
      required:
        - type
        - title
        - detail
      type: object
    ResourceNotFoundProblem:
      properties:
        detail:
          type: string
        parameter:
          type: string
        resource_id:
          type: string
        resource_type:
          type: string
        status:
          type: integer
        title:
          type: string
        type:
          enum:
            - https://api.x.com/2/problems/resource-not-found
          type: string
        value:
          type: string
      required:
        - type
        - title
        - detail
        - resource_type
      type: object
    ResourceUnavailableProblem:
      properties:
        detail:
          type: string
        resource_id:
          type: string
        resource_type:
          type: string
        status:
          type: integer
        title:
          type: string
        type:
          enum:
            - https://api.x.com/2/problems/resource-unavailable
          type: string
      required:
        - type
        - title
        - detail
        - resource_type
      type: object
    ScheduleCallResponseDataInvitees:
      additionalProperties: false
      properties:
        id:
          description: X user id of the invitee.
          type: string
        response:
          description: accepted, declined, tentative, or none for no answer yet.
          type: string
      type: object
  securitySchemes:
    OAuth2UserToken:
      flows:
        authorizationCode:
          authorizationUrl: https://api.x.com/2/oauth2/authorize
          scopes:
            block.read: View accounts you have blocked.
            block.write: Block and unblock accounts on your behalf.
            bookmark.read: Read your bookmarked Posts.
            bookmark.write: Create and delete your bookmarks.
            broadcast.read: View your live broadcasts and their chat.
            broadcast.write: Manage your live broadcasts and send chat messages on your behalf.
            developer.read: View your developer accounts, apps, and settings.
            developer.write: Create and manage your X Developer Platform account.
            dm.read: Read all your Direct Messages.
            dm.write: Send and manage your Direct Messages.
            follows.read: View accounts you follow and accounts following you.
            follows.write: Follow and unfollow accounts on your behalf.
            like.read: View Posts you have liked and likes you can see.
            like.write: Like and unlike Posts on your behalf.
            list.read: >-
              View Lists, members, and followers of Lists you created or are a
              member of, including private Lists.
            list.write: Create and manage Lists on your behalf.
            media.write: Upload media, such as photos and videos, on your behalf.
            mute.read: View accounts you have muted.
            mute.write: Mute and unmute accounts on your behalf.
            offline.access: Request a refresh token for the app.
            space.read: View all Spaces you have access to.
            timeline.read: View all Custom Timelines you can see.
            tweet.moderate.write: Hide and unhide replies to your posts.
            tweet.read: >-
              View all posts you can see, including those from protected
              accounts.
            tweet.write: Create and repost on your behalf.
            users.read: View any account you can see, including protected accounts.
          tokenUrl: https://api.x.com/2/oauth2/token
      type: oauth2
    UserToken:
      scheme: OAuth
      type: http

````