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

# Reschedule Call Attempt

> Reschedules an existing call attempt to a future time. Only call attempts in SCHEDULED status can be rescheduled. Blocked for ONLINE conversations.

<Info>
  `PATCH /interviews/{id}/call-attempts/{attemptId}` is a permanent alias of this endpoint and keeps working unchanged, with the same scopes and the same response. See [Resource names](/api-reference/introduction#resource-names).
</Info>

Updates the scheduled time for an existing call attempt that hasn't started yet.

<Warning>
  **ONLINE conversations**: managing individual call attempts is forbidden on an `ONLINE` conversation.
</Warning>

## Overview

Use this endpoint to move a scheduled call attempt to a different time — most often because the contact asked for a particular slot.

## Restrictions

* **Status Restriction**: You can only reschedule call attempts that are in `SCHEDULED` status. Attempts that are in any other state (e.g., `IN_PROGRESS`, `COMPLETED`, `FAILED`, `CANCELLED`) cannot be rescheduled.
* **In-Progress Protection**: If the attempt is currently being processed (status `IN_PROGRESS`), the request will be blocked with a `400 Bad Request` error to prevent race conditions.
* **Future Time**: The `scheduledAt` time must be in the future.
* **Calling window**: the time you send is used exactly as given, including when it falls outside the agent's [calling window](/api-reference/agents/create-agent#retries-and-calling-hours). Rescheduling is you naming a time, which is usually a slot the contact asked for, so it overrides the agent's hours rather than being moved into them.

## Effect on the conversation

Moving an attempt also moves the conversation it belongs to: `status` becomes `SCHEDULED`, because an attempt is queued and waiting again. If the conversation had already settled on a terminal status, rescheduling reopens it — the status returns to `SCHEDULED` and `finishedDate` is cleared, under the same id. See [Reopening a terminal conversation](/guides/resources/conversations#reopening-a-terminal-conversation).

## Webhooks

A successful reschedule emits [`conversation.rescheduled`](/guides/webhooks#conversation-rescheduled-payload) with `reason: "API_REQUEST"`, once the change is committed. A webhook still on the `LEGACY` [vocabulary](/guides/webhooks#event-name-vocabulary) receives the same payload as `interview.rescheduled`.

Because this endpoint **moves an existing attempt** rather than ending one and creating another, the same `callAttemptId` appears in both `previousAttempt` and `nextAttempt`, and `previousAttempt.status` is `SCHEDULED` — no call took place. This is the only case where the two IDs match; for every other reason they differ.

```json theme={null}
{
  "event": "conversation.rescheduled",
  "data": {
    "reason": "API_REQUEST",
    "previousAttempt": {
      "callAttemptId": "call-attempt-uuid",
      "status": "SCHEDULED",
      "attemptNumber": 1
    },
    "nextAttempt": {
      "callAttemptId": "call-attempt-uuid",
      "scheduledAt": "2026-05-01T14:30:00.000Z",
      "attemptNumber": 1
    }
  }
}
```

<Info>
  A `reason` of `ADMIN` on this event means InstaView staff moved the attempt
  from the internal admin panel rather than you moving it through the API —
  worth surfacing differently in your system.
</Info>

## Example

```json theme={null}
{
  "scheduledAt": "2026-05-01T14:30:00Z"
}
```

<Info>
  **Queue Sync**: The system automatically synchronizes with the internal processing queue when an attempt is rescheduled, ensuring it runs at the new specified time.
</Info>


## OpenAPI

````yaml PATCH /conversations/{id}/call-attempts/{attemptId}
openapi: 3.0.0
info:
  title: InstaView API
  description: |-
    InstaView API Documentation

    ## Authentication

    All endpoints require API key authentication using Bearer token:
    ```
    Authorization: Bearer sk_your_api_key_here
    ```

    ## API Key Management

    The API Key module provides comprehensive key management for:
    - **Direct Client Keys**: Company-scoped keys for your applications
    - **ATS Partner Keys**: Resource-scoped keys for ATS integrations

    ### Key Features
    - HMAC-SHA256 hashing for API key storage
    - Configurable rate limiting
    - Comprehensive audit logging
    - Company-level isolation
    - Resource scoping for ATS partners
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.instaview.sk
    description: Production API Gateway
security: []
tags: []
paths:
  /conversations/{id}/call-attempts/{attemptId}:
    patch:
      tags:
        - Conversations
      summary: Reschedule call attempt
      description: >-
        Reschedules an existing call attempt to a future time. Only call
        attempts in SCHEDULED status can be rescheduled. Blocked for ONLINE
        conversations.
      operationId: PublicInterviewsController_rescheduleCallAttempt_v1
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: string
            format: uuid
        - name: attemptId
          required: true
          in: path
          schema:
            type: string
            format: uuid
        - name: companyId
          required: false
          in: query
          description: >-
            Required for ATS API keys to specify which company to access.
            Ignored for standard company API keys.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicRescheduleCallAttemptDto'
      responses:
        '204':
          description: Call attempt rescheduled successfully
      security:
        - bearer: []
components:
  schemas:
    PublicRescheduleCallAttemptDto:
      type: object
      properties:
        scheduledAt:
          type: string
          description: >-
            New scheduled time for the call attempt (ISO string). Must be in the
            future. Used exactly as sent, including when it falls outside the
            agent's calling window.
          example: '2026-05-01T12:00:00Z'
          format: date-time
      required:
        - scheduledAt
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: API key for authentication using Bearer scheme

````