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

# Reschedule appointment

> This endpoint is used to reschedule a patient’s appointment across both TeamCare and the Practice PMS.

The workflow begins when a patient contacts the dental office to request an appointment reschedule. First, the patient’s information is retrieved using the `patients/search` API. It is required to identify and match the patient within the TeamCare database, as the corresponding patient ID will be used in subsequent steps. Patient found from patient search api call should be of type Patient and not Patient Request. If patient found in Patient Request or not found at all it means patient is new and it don't have any appointment already scheduled.

Next, the `appointments/search` API is used to locate the patient’s upcoming appointments. From the response, the relevant appointment ID is obtained. This appointment ID is then passed as a URL parameter to the rescheduling endpoint.

The appointment is rescheduled by providing a new `appointment_at` value in UTC format. TeamCare will automatically handle timezone conversion based on the associated practice settings, ensuring the correct local time is applied.

- Ai Agent will just have to hit on reschedule end point as above to reschedule the appointment.
- Organization id in url will be the id for practice in teamcare database.
- Response
- Content-Type: application/json
- Data attribute returned just to give you insights, it has nothing to do with patient.



## OpenAPI

````yaml https://app.teamcaredental.com/openapi-ai-voice.json post /organizations/{organization_id}/appointments/{appointment_id}/reschedule
openapi: 3.1.0
info:
  title: TeamCare AI Voice API
  version: 1.0.0
  description: AI Agent APIs for appointment scheduling, patient lookup and availability.
servers:
  - url: https://app.teamcaredental.com/api/v1/ai_voice
security:
  - bearerAuth: []
paths:
  /organizations/{organization_id}/appointments/{appointment_id}/reschedule:
    post:
      tags:
        - Appointment
      summary: Reschedule appointment
      description: >-
        This endpoint is used to reschedule a patient’s appointment across both
        TeamCare and the Practice PMS.


        The workflow begins when a patient contacts the dental office to request
        an appointment reschedule. First, the patient’s information is retrieved
        using the `patients/search` API. It is required to identify and match
        the patient within the TeamCare database, as the corresponding patient
        ID will be used in subsequent steps. Patient found from patient search
        api call should be of type Patient and not Patient Request. If patient
        found in Patient Request or not found at all it means patient is new and
        it don't have any appointment already scheduled.


        Next, the `appointments/search` API is used to locate the patient’s
        upcoming appointments. From the response, the relevant appointment ID is
        obtained. This appointment ID is then passed as a URL parameter to the
        rescheduling endpoint.


        The appointment is rescheduled by providing a new `appointment_at` value
        in UTC format. TeamCare will automatically handle timezone conversion
        based on the associated practice settings, ensuring the correct local
        time is applied.


        - Ai Agent will just have to hit on reschedule end point as above to
        reschedule the appointment.

        - Organization id in url will be the id for practice in teamcare
        database.

        - Response

        - Content-Type: application/json

        - Data attribute returned just to give you insights, it has nothing to
        do with patient.
      operationId: organization_appointment_reschedule
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
        - name: appointment_id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                appointment:
                  type: object
                  properties:
                    appointment_at:
                      type: string
                      format: date-time
                      example: '2028-07-11T11:00:00Z'
            example:
              appointment:
                appointment_at: '2028-07-11T11:00:00Z'
      responses:
        '201':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Missing, invalid or expired token.
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: string
              example:
                errors: not authorized
        '403':
          description: The credential may not access this resource.
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: string
              example:
                errors: access Denied
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
              example:
                error: Appointment not found
        '422':
          description: The request could not be processed.
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: string
              example:
                errors: ...
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT returned by POST /auth/token. Valid for six hours.

````