---
title: "Moves a scheduled job to a new start time (and optionally a new end)."
method: POST
path: "/api/v1/jobs/{id}/reschedule"
tags: ["Jobs"]
---

# Moves a scheduled job to a new start time (and optionally a new end).

`POST /api/v1/jobs/{id}/reschedule`

## Request

- Base URL: `https://app.flexonthejob.com`
- URL: `https://app.flexonthejob.com/api/v1/jobs/{id}/reschedule`
- Auth: HTTP bearer

Requires the Scheduling module. Only jobs in `Scheduled` status — or draft /
estimated jobs that already carry a scheduled date — can be rescheduled; use
`POST /jobs/{id}/status` to schedule an unscheduled job first. Times are the
organization's local wall clock (`yyyy-MM-ddTHH:mm:ss`); a trailing `Z`
is converted to local time. Requires an `Idempotency-Key` header.

## Path parameters

- `id` integer, required

## Request body

- RescheduleJobRequest: Body of `POST /api/v1/jobs/{id}/reschedule`.
  - `start` string, date-time, required: New start as the organization's local wall clock, `yyyy-MM-ddTHH:mm:ss` with no UTC offset (the `date-time` format here is a local time, not RFC 3339 with zone); a trailing `Z` is converted to local time. Example: `2026-09-08T08:30:00`.
  - `end` string, date-time, nullable: Optional new end, same local wall-clock format as `start`; when given it must be after `start` and sets the job's duration. Omit to keep the current duration.
  - `note` string, nullable: Optional reason recorded on the job.

## Response `200`

Job id and confirmation message.

- ApiOperationResponse: Body of a successful workflow-style write that has no richer resource to return (assign, start, complete, void…). Id is the affected resource's id; Warning carries a non-fatal note from the service (e.g. an email that could not be sent).
  - `id` integer: Id of the resource the operation acted on (e.g. the job id).
  - `message` string, nullable: Human-readable confirmation from the service (e.g. "Job started."). May be null.
  - `warning` string, nullable: Non-fatal problem encountered while completing the operation (e.g. a notification email that could not be sent). Null when there was none.

## Other responses

- `400`: `start` missing, `end` not after `start`, or missing `Idempotency-Key`.
- `401`: Unauthorized
- `403`: Scheduling module not active for this organization.
- `404`: No such job in this organization.
- `409`: The job's status does not allow rescheduling, or the key's creator is unknown on this server.
- `429`: Too Many Requests

---

[API](https://skmtc.dev/flexonthejob/apis/flex-api.md) · [All operations](https://skmtc.dev/flexonthejob/apis/flex-api/llms.txt) · [OpenAPI document](https://skmtc.dev/flexonthejob/apis/flex-api/revisions/19c8f4d27acf?raw)
