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

# Update an existing schedule.

> Update an existing schedule.

### Path parameters

<ParamField path="tenant_id" type="string" required>
  Tenant identifier
</ParamField>

<ParamField path="schedule_id" type="string (uuid)" required>
  Schedule identifier
</ParamField>

### Request body

`object`

<ParamField body="enabled" type="boolean" />

<ParamField body="everySeconds" type="integer" />

<ParamField body="runNow" type="boolean">
  When true, forces `next_run_at` to `now()` (and enables the schedule if `enabled` is unset)
</ParamField>

### Response

`object`

<ResponseField name="scheduleId" type="string (uuid)" required />

<ResponseField name="tenantId" type="string" required />

<ResponseField name="jobType" type="string" required />

<ResponseField name="everySeconds" type="integer" required />

<ResponseField name="enabled" type="boolean" required />

<ResponseField name="nextRunAt" type="string (date-time)" required />

<ResponseField name="lastRunAt" type="string (date-time)" />

<ResponseField name="lastError" type="string" />

<ResponseField name="consecutiveFailures" type="integer" required />

<ResponseField name="createdAt" type="string (date-time)" required />

<ResponseField name="updatedAt" type="string (date-time)" required />

<ResponseField name="cronExpression" type="string" />

<ResponseField name="triggerType" type="string" required />

<ResponseField name="maxConsecutiveFailures" type="integer" required />

### Status codes

| Code  | Meaning                 |
| ----- | ----------------------- |
| `200` | Schedule updated        |
| `401` | Unauthorized            |
| `404` | Schedule not found      |
| `422` | Validation error        |
| `424` | Database not configured |

<RequestExample>
  ```bash cURL theme={null}
  curl --request PATCH \
    --url 'https://api.sync.stateset.com/v1/tenants/{tenant_id}/schedules/{schedule_id}' \
    --header 'x-stateset-api-key: YOUR_API_KEY' \
    --header 'Content-Type: application/json' \
    --data '{
    "enabled": true,
    "everySeconds": 250,
    "runNow": true
  }'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "scheduleId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "tenantId": "acme-outdoors",
    "jobType": "string",
    "everySeconds": 250,
    "enabled": true,
    "nextRunAt": "2026-08-31T14:22:05Z",
    "lastRunAt": "2026-08-31T14:22:05Z",
    "lastError": "string",
    "consecutiveFailures": 1,
    "createdAt": "2026-08-31T14:22:05Z",
    "updatedAt": "2026-08-31T14:22:05Z",
    "cronExpression": "string",
    "triggerType": "string",
    "maxConsecutiveFailures": 1
  }
  ```
</ResponseExample>
