---
title: "PATCH /experimental/schedules/{id}"
method: PATCH
path: "/experimental/schedules/{id}"
tags: ["Schedules"]
---

# PATCH /experimental/schedules/{id}

`PATCH /experimental/schedules/{id}`

Pauses/resumes a schedule (`status`) and/or updates its `cron`, `timezone`, or `label`. Cron and timezone changes apply to the next scheduled occurrence; status and label changes apply immediately.

## Path parameters

- `id` string, uuid, required

## Headers

- `Authorization` string

## Request body

- object
  - `status` union
    - 'active'
    - 'paused'
  - `cron` string — New cron expression the schedule fires on, interpreted in `timezone`. Rejected if unparseable or if its tightest interval is under the minimum allowed.
  - `timezone` string — New IANA timezone the cron is interpreted in. When supplied without `cron`, re-interprets the existing cron in the new zone.
  - `label` string
  - `description` string
  - `timeoutMs` integer, nullable — Per-run override, in milliseconds, for how long each fired run may work before it is timed out. Extends the default 50-minute timeout (3000000) up to 6 hours (21600000). Must be a whole number of minutes (a multiple of 60000). Omitted keeps the default.

## Response `200`

Default Response

- object
  - `links` object, required
    - `self` string, uri, required
  - `data` object, required
    - `id` string, uuid, required
    - `type` 'schedule', required
    - `attributes` object, required
      - `status` union, required
        - 'active'
        - 'paused'
      - `cron` string, required
      - `timezone` string, required
      - `config` object, required
        - `skillRef` string, required
        - `repoUrl` string, required
        - `baseBranch` string, required
        - `snapshot` string
        - `sandboxSnapshot` string
        - `workdir` string
        - `agent` string, required
        - `model` string, required
        - `effort` union — Explicit reasoning effort for the selected agent. Omitted keeps the agent default. Unsupported agent and effort combinations are rejected before the run is created.
          - 'low'
          - 'medium'
          - 'high'
          - 'xhigh'
          - 'max'
        - `triggerSource` union, required
          - 'manual'
          - 'api'
          - 'webhook'
          - 'scheduled'
        - `mcpServers` string[]
        - `timeoutMs` integer
      - `resolvedSkill` object
        - `kind` union, required
          - 'registry'
          - 'local'
        - `name` string, nullable, required
        - `registry` object, nullable, required
          - `workspace` string, required
          - `tile` string, required
          - `version` string, nullable, required
        - `path` string, nullable, required
        - `description` string, nullable, required
      - `label` string, nullable, required
      - `description` string, nullable, required
      - `metadata` object, required
      - `authorizationDigest` string, required — Server-derived SHA-256 over the immutable launch authorization projection, including hidden launch inputs and operator binding metadata but excluding server-owned runtime observation and failure markers. Use an independently retained operator approval artifact to compare this value before triggering; hidden values are never returned.
      - `workspaceId` string, uuid, required
      - `projectId` string, uuid, nullable, required
      - `createdBy` object, nullable, required
        - `id` string, uuid, required
        - `firstName` string, nullable, required
        - `lastName` string, nullable, required
      - `environment` object, nullable, required
        - `id` string, uuid, required
        - `name` string, required
      - `nextRunAt` string, date-time, nullable, required
      - `lastRunAt` string, date-time, nullable, required
      - `definitionSource` union
        - 'app'
        - 'repo'
      - `sourceCommit` object
        - `sha` string, required
        - `repoFullName` string, required
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time, required

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `500` — Internal Server Error

## Changes

- **2026-09-23** `288d28ba107c` — 1 info
  - the `timeoutMs/anyOf[subschema #1]/` request property's max was increased from `14400000.00` to `21600000.00`
- **2026-09-15** `d50a02b79ad3` — 2 info
  - added the optional property `error/code` to the response with the `403` status
  - added the optional property `error/url` to the response with the `403` status
- **2026-09-12** `ff4456b002cc` — 1 info
  - added the optional property `data/attributes/sourceCommit` to the response with the `200` status
- **2026-09-11** `04f88c57328e` — 1 info
  - added the required property `data/attributes/projectId` to the response with the `200` status
- **2026-09-10** `e57a144d1cab` — 1 info
  - added the optional property `data/attributes/config/effort` to the response with the `200` status

[Full history](https://skmtc.dev/tessl/apis/tessl-api/changes/experimental/schedules/:id/patch.md)

---

[API](https://skmtc.dev/tessl/apis/tessl-api.md) · [All operations](https://skmtc.dev/tessl/apis/tessl-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tessl/apis/tessl-api/revisions/6941f1403761?raw)
