> ## 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 interviews.

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

<Warning>
  **ONLINE Interviews**: Individual call attempt management is strictly forbidden for ONLINE interviews.
</Warning>

## Overview

Use this endpoint to move a scheduled call attempt to a different time. This is common when a candidate requests a specific time for a follow-up call.

## 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.

## Webhooks

A successful reschedule emits [`interview.rescheduled`](/guides/webhooks#interview-rescheduled-payload) with `reason: "API_REQUEST"`, once the change is committed.

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": "interview.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 /interviews/{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:
  /interviews/{id}/call-attempts/{attemptId}:
    patch:
      tags:
        - Interviews
      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
        interviews.
      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.
          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

````