Syndai Docs

Update a schedule

PATCH
/api/v1/external/coding/schedules/{schedule_id}

Patch a schedule's prompt, trigger, policy, or budget; omitted fields are left unchanged. policy_config replaces the stored object; send the full object from GET. Saving policy_config makes the caller the consent for merging. Setting schedule_paid_on needs a workspace owner or admin (403) and a per-run occurrence_budget_usd (400). Invalid fields return 400 INVALID_POLICY.

Authorization

CustomerApiKey
headerAuthorizationBearer <API Key>

Customer API key sent as a bearer token

Path Parameters

schedule_id*string
Formatuuid

Query Parameters

customer_id?|null

Request Body

application/json
  1. body
occurrence_budget_usd?number|null
policy_config?|null
prompt?string|null
schedule_paid_on?boolean|null
skip_if_no_new_commits?boolean|null
trigger?|null

Response Body

Request fulfilled, document follows

application/json
  1. response
cadence_label*string
coding_repository_id*string
Formatuuid
consecutive_failures*integer
created_at*string
Formatdate-time
id*string
Formatuuid
last_occurrence?|null
last_run_at?|null
next_fire_at?|null
occurrence_budget_usd?number|null
pause_reason?string|null
policy_config?
prompt*string
repo_name?string|null
schedule_paid_on?boolean
Defaultfalse
skip_if_no_new_commits*boolean
status*string
trigger*
upcoming?array<>
Example Request
curl -X PATCH 'https://api.syndai.ai/api/v1/external/coding/schedules/497f6eca-6276-4993-bfeb-53cbbbba6f08' \  -H 'Content-Type: application/json' \  -d '{}'
Example Response
{  "cadence_label": "Weekly on Monday at 9:00 AM",  "coding_repository_id": "8a1d4e2f-5b6c-4d7e-8f9a-0b1c2d3e4f50",  "consecutive_failures": 0,  "created_at": "2026-10-27T09:00:00Z",  "id": "7d6c5b4a-3928-4f17-8e6d-5c4b3a291807",  "next_fire_at": "2026-11-02T09:00:00Z",  "prompt": "Update dependencies and fix anything the upgrade breaks.",  "repo_name": "storefront",  "schedule_paid_on": false,  "skip_if_no_new_commits": true,  "status": "active",  "trigger": {    "expr": "0 9 * * 1",    "kind": "cron",    "timezone": "Europe/London"  }}