---
title: "Update a schedule"
method: PUT
path: "/api/schedules/{id}"
tags: ["Schedules"]
---

# Update a schedule

`PUT /api/schedules/{id}`

## Path parameters

- `id` string, required

## Request body

- object
  - `key` string — Non-unique asset directory namespace (for example shared/ or personal/<user-id>/drafts/). Runtime write boundaries normalize and validate the canonical form.
  - `name` string
  - `description` string
  - `cronExpression` string, nullable
  - `intervalMs` integer, nullable
  - `taskTemplate` string
  - `taskType` string
  - `tags` string[]
  - `priority` integer
  - `targetAgentId` string, nullable
  - `enabled` boolean
  - `timezone` string
  - `model` string, nullable
  - `modelTier` 'smol' | 'regular' | 'smart' | 'ultra' | 'null', nullable
  - `nextRunAt` string, nullable
  - `targetType` 'agent-task' | 'workflow' | 'script'
  - `workflowId` string, uuid, nullable
  - `scriptName` string, nullable
  - `scriptArgs` object, nullable

## Response `200`

Schedule updated

- object, nullable
  - `id` string, uuid, required
  - `key` string, required — Non-unique asset directory namespace (for example shared/ or personal/<user-id>/drafts/). Runtime write boundaries normalize and validate the canonical form.
  - `name` string, required
  - `description` string
  - `cronExpression` string
  - `intervalMs` integer
  - `taskTemplate` string
  - `taskType` string
  - `tags` string[]
  - `priority` integer
  - `targetAgentId` string
  - `enabled` boolean
  - `lastRunAt` string, date-time
  - `nextRunAt` string, date-time
  - `createdByAgentId` string
  - `timezone` string
  - `consecutiveErrors` integer
  - `lastErrorAt` string, date-time
  - `lastErrorMessage` string
  - `model` string
  - `modelTier` 'smol' | 'regular' | 'smart' | 'ultra'
  - `scheduleType` 'recurring' | 'one_time'
  - `targetType` 'agent-task' | 'workflow' | 'script'
  - `workflowId` string, uuid
  - `scriptName` string
  - `scriptArgs` object
  - `createdAt` string, date-time, required
  - `lastUpdatedAt` string, date-time, required
  - `createdBy` string
  - `updatedBy` string
  - `favorite` boolean

## Other responses

- `400` — Validation error
- `404` — Schedule not found
- `409` — Duplicate name

## Changes

- **2026-08-19** `5657aaae1bab` — 2 warning
  - the `priority` request property's max was set to `100.00`
  - the `priority` request property's min was set to `0.00`
- **2026-08-07** `06cac6a7c5bc` — 4 info
  - added the media type `application/json` for the response with the status `200`
  - added the media type `application/json` for the response with the status `400`
  - added the media type `application/json` for the response with the status `404`
  - added the media type `application/json` for the response with the status `409`
- **2026-07-28** `cf533d6b49b0` — 1 breaking
  - the `targetAgentId` request property format changed from `uuid` to no format
- **2026-07-11** `f1022d5edb0d` — 1 info
  - added the new optional request property `key`
- **2026-07-08** `13bd92bf5f04` — 2 info
  - the request property `model` became nullable
  - the request property `targetAgentId` became nullable

[Full history](https://skmtc.dev/desplega-ai/apis/agent-swarm-api/changes/api/schedules/:id/put.md)

---

[API](https://skmtc.dev/desplega-ai/apis/agent-swarm-api.md) · [All operations](https://skmtc.dev/desplega-ai/apis/agent-swarm-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/desplega-ai/agent-swarm-api/revisions/e0acd2155cad/schema)
