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

# Scheduling & Managing Calls

> Schedule a one-off outbound call from the New Call modal, understand the checks that run before a call is accepted, learn what is locked in at scheduling time versus dial time, and manage scheduled calls with reschedule, cancel, and retry.

## Overview

A scheduled call is a single outbound call to one contact, placed by one of your call scripts at a time you choose. This page covers the whole life of a scheduled call from the operator's side: creating it in the **New Call** modal, the pre-flight checks Voxworks runs before accepting it, what gets captured at scheduling time versus resolved when the call actually dials, and the rules for rescheduling, cancelling, and retrying calls in each status.

For calling whole lists of contacts on a managed schedule, use the [Batch Scheduler](/batches/overview) instead — batches add pacing, business-hours windows, screening gates, and automatic retries on top of the same call machinery.

***

## Scheduling a call

Open the **New Call** modal from either launch point:

* **Call Log** — click **New Call** at the top right of the Calls table.
* **Dashboard** — open the **Actions** dropdown and choose **New Call**.

The modal is titled **Schedule New Call** and has four fields:

| Field                          | Required | Description                                                                                                                                                                                                                                                                                |
| ------------------------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Contact**                    | Yes      | Click **Select contact...** and use the **Search contacts...** box to find the person by name or phone number. Calls always go to a saved [contact](/contacts/records) — create the contact first if they aren't in your list.                                                             |
| **Call Script**                | Yes      | The **Select Call Script** dropdown lists your scripts by name. Once you pick one, its description appears below the field so you can confirm it's the right script.                                                                                                                       |
| **Outbound Number (Optional)** | No       | The **Select Outbound Number** dropdown lists your account's phone numbers, with **Use Default** at the top. Leave it on **Use Default** to call from your account's default number. If your account has no numbers yet, the field shows *No phone numbers configured - will use default*. |
| **Scheduled Time**             | Yes      | Defaults to the current time — leave it unchanged to place the call straight away, or pick a future date and time. The time is rounded down to the whole minute when the call is saved.                                                                                                    |

Three buttons finish the modal:

* **Test Call** — opens the [Test Call](/calls/test-calls) flow for the selected script (disabled until a script is chosen), so you can hear the script yourself before committing to a real call.
* **Cancel** — closes the modal and clears the form.
* **Schedule Call** — submits the call. The button reads **Scheduling...** while the checks below run, and a *Call scheduled successfully* confirmation appears when the call is accepted.

***

## Pre-flight checks

Clicking **Schedule Call** doesn't just save a row — Voxworks runs a series of checks and only accepts the call if all of them pass.

### 1. Wallet balance

Your account must have credit available to place calls. If it doesn't, scheduling is blocked with a message showing your current balance: *Insufficient wallet balance (\$0.00). Please top up your account to place calls.* Top up under **Settings → Billing** with **Top Up Wallet**, or enable [Auto Top-up](/billing/wallet) so a low balance never blocks a call.

### 2. Do Not Call Register

Voxworks checks the contact's number against your recent DNCR wash results:

* If a wash from the **last 30 days** found the number **On DNC Register**, scheduling is stopped and a **Do Not Call Register Warning** dialog appears: *"The number \[contact's number] is on the Do Not Call Register. Only proceed if you have consent, an existing business relationship, or another valid exemption."*
* Click **Cancel** to abandon the call, or **OK** to schedule it anyway. Proceeding records a DNCR override against the call — including the reason — for your compliance records.
* Contacts that carry a **DNCR Override** badge (set from the Contacts page) skip this check entirely, as do [test calls](/calls/test-calls), which ring your own phone.

Note that this check works from wash results, not a live register lookup: a number that has never been washed, or whose last wash is older than 30 days, is not blocked here. Wash your contacts with **Wash DNCR Status** before calling — see [DNCR Washing](/contacts/dncr-washing). Batch calls get a stricter, fail-closed version of this screening through [screening gates](/batches/screening-gates).

### 3. Outbound number

Finally, Voxworks confirms the call has a number to dial from:

* If you picked a specific number that is no longer usable on your account, you'll see *Selected phone number is not available for this account*.
* If you chose **Use Default**, your account's default outbound number is resolved and attached to the call now, at scheduling time.
* If your account has no phone number at all, scheduling fails with *No phone number configured for this account. Reserve a number before placing a test call.* — add one under [Numbers & Routing](/numbers/overview) first.

***

## What's locked in at scheduling — and what isn't

A scheduled call is not a frozen copy of everything. Some things are captured the moment you click **Schedule Call**; others are resolved when the call actually dials.

**Captured at scheduling time:**

* **Call Objectives** — copied from the script onto the call record, so the call is measured against the objectives as they stood when you scheduled it.
* **Outbound number** — whether chosen explicitly or resolved from **Use Default**, the number is fixed on the call.
* **Scheduled time** — rounded down to the whole minute.

**Resolved at dial time:**

* **Script content** — the agent loads the script's current **Live** version when the call dials, not when it was scheduled. If you [publish](/scripts/versions-and-publishing) an improved version before a scheduled call goes out, the call runs the new version. The exception is [test calls](/calls/test-calls), which pin the exact script version you were testing; pinned calls show their version (for example **v1.3**) in the [Call Log](/calls/history).
* **Contact's phone number** — read from the contact record as the call dials, so correcting a contact's number before the scheduled time means the call goes to the right place.

Post-call automations aren't locked in at scheduling time either: any Post-Call Automations configured on the script run with their current configuration when the call finishes, so edits you make to them after scheduling still apply.

***

## After scheduling

The call appears in the [Call Log](/calls/history) with status **Scheduled**, and its dispatch note counts down as the time approaches (for example *Will enter dispatch queue in \~15 min*). Calls are picked up for dialling within a couple of minutes of their scheduled time; if your team is at its calling capacity the note shows why the call is waiting, and it dials automatically as capacity frees. See [Dispatch, Concurrency & Delays](/calls/dispatch-and-concurrency) for the full set of dispatch notes, and [Live Calls & Real-Time Monitoring](/calls/live-monitoring) for watching calls as they run.

Automations with the **Call Scheduled** [trigger](/automations/triggers) fire for calls created through the API — including calls placed with `Retry Call` — not for calls scheduled from this modal or moved with `Reschedule Call`.

***

## Reschedule, cancel, and retry

What you can do with a call depends on its status. In brief: a call that hasn't dialled yet can be moved or cancelled; a call that's dialling can't be touched; a call that has ended can be sent again.

| Status      | Reschedule / re-dial  | Cancel | Retry (API) |
| ----------- | --------------------- | ------ | ----------- |
| Scheduled   | Yes                   | Yes    | No          |
| Queued      | No — being dispatched | No     | No          |
| In Progress | No                    | No     | No          |
| Completed   | Yes                   | No     | No          |
| Voicemail   | Yes                   | No     | Yes         |
| Dropout     | Yes                   | No     | Yes         |
| Hang Up     | No                    | No     | Yes         |
| Rang Out    | Yes                   | No     | Yes         |
| Failed      | Yes                   | No     | Yes         |
| Cancelled   | Yes                   | No     | Yes         |

See the [statuses reference](/calls/statuses) for what each status means and the full per-status eligibility rules.

### Rescheduling

Rescheduling moves the **same call record** to a new time and returns it to **Scheduled** status — history, objectives, and number stay attached. In the app, open a batch's **Summary** tab, find the call in the **All Calls** table, and use the **Re-dial** action on its row: the **Reschedule Call** dialog asks you to *"Select a new date and time to reschedule the call"*, and **Reschedule** confirms with *Call rescheduled successfully*. Because a call that has already ended can be rescheduled (any status in the table above except Queued, In Progress, and Hang Up), Re-dial doubles as the way to send a finished call again from the app. The new time is rounded down to the whole minute, just like scheduling.

The API's `Reschedule Call` endpoint is stricter than the app: it only moves calls that are still **Scheduled** — for ended calls, use `Retry Call` instead. See the [API endpoints reference](/api-reference/overview).

### Cancelling

Only **Scheduled** calls can be cancelled. Once a call has been claimed for dispatch (**Queued**) or is **In Progress**, it can no longer be stopped from the platform — the dispatcher guarantees that a cancel and a dial never race: whichever lands first wins cleanly.

* **Single calls** are cancelled through the API's `Cancel Call` endpoint; the call moves to **Cancelled** with a *Cancelled* dispatch note. There is currently no per-call cancel button in the app.
* **Batch calls** are cancelled in bulk with **Cancel Batch** on the batch, or held temporarily with **Pause Scheduler** — paused batches keep their calls in **Scheduled** status without dialling. Any stray scheduled call belonging to a cancelled batch is caught at dispatch time and cancelled rather than dialled.

A cancelled call isn't dead — reschedule it (or retry it via the API) whenever you're ready.

### Retrying

The API's `Retry Call` endpoint creates a **new** call from an ended one, reusing the original's contact, script, outbound number, and objectives, and linking back to the original with a retry counter. It dials immediately unless you pass a new scheduled time, and it works for calls that ended as Voicemail, Dropout, Hang Up, Rang Out, Failed, or Cancelled — plus calls the person rejected or didn't answer. [Web calls](/calls/web-calls) can't be retried.

Batch calls also retry **automatically** on a per-outcome policy (voicemail, no-answer, busy, and transient errors each get their own attempt schedule), and pending retries are cancelled by default if the contact rings you back first — see [Calling Rules](/batches/calling-rules).

***

## Next Steps

* [Call Statuses, End Reasons & Outcomes](/calls/statuses) — the canonical reference for every status a call moves through.
* [Dispatch, Concurrency & Delays](/calls/dispatch-and-concurrency) — how scheduled calls are picked up, queued, and delayed under load.
* [Test Calls](/calls/test-calls) — ring yourself first: My Phone and browser test calls, version pinning, and test billing.
* [Batch Scheduler](/batches/overview) — schedule hundreds of calls with pacing, screening, and automatic retries.
