Replace a schedule

Replaces a schedule's definition, starting a new generation. Takes the same four ways of saying when as a create, so a one-shot can be replaced by a recurring definition and the other way round. An omitted callback endpoint/data pair preserves the stored callback; sending data alone replaces the encrypted data for the current endpoint, and sending endpoint selects a verified endpoint in the same authority tuple. Sending url instead selects the endpoint at that address in the same tuple, creating one silently when there is none; creating needs endpoints:write as well, and the response's endpointSigningSecret says where its signing secret is revealed. Omitted http preserves HTTP settings. Its headers are a patch: set replaces a value, keep retains a configured value, suppress omits an endpoint default, and remove resumes inheritance. Explicit GET with no body clears a saved custom template; POST/PUT with body: { mode: 'envelope' } restores the structured callback. The occurrence planned under the old definition is settled skipped_stale and can never fire unless it was already in flight, in which case its immutable attempt is allowed to settle honestly; a fresh occurrence is planned under the new definition, and the old definition's series stops advancing. lateness is resolved afresh against the replacement recurrence: omit it for that kind's default, or state skipAhead, catchUp, and an optional maxStalenessSeconds override. The policy applies only before an occurrence's first attempt; a retry already in progress remains on its retry and give-up ladder. Send If-Match with the version you read to make this conditional; without it the replace is unconditional and the last writer wins. A cancelled or completed schedule cannot be replaced. partitionKey is fixed when the schedule is created: omit it to preserve the stored value or echo that exact value in a GET → modify → PUT flow. Adding, changing, or clearing it is refused as invalid_request with /partitionKey identified. latencyClass remains derived from the replacement recurrence when the caller omits it. Some calls need more: endpoints:write is required as well when the request names a url this project and environment has no endpoint at yet, and the call is refused scope_missing without it.

put/v1/schedules/{scheduleId}

Request

  • Base URL: https://docs.greatwait.dev (the document declares no server; this is the origin it was published from)
  • URL: https://docs.greatwait.dev/v1/schedules/{scheduleId}
  • Auth: one of:
    • HTTP bearer
    • HTTP bearer and API key in header Greatwait-Environment and API key in header Greatwait-Project

Path parameters

scheduleIdstring required

Headers

If-Matchstring

Request body

atstring
cronstring
dataSchema1 (unresolved $ref)
delaySecondsinteger
everySecondsinteger
endpointstring
urlstring uri
latencyClass'realtime' | 'bulk'
partitionKeystring
namestring
external_identifierstring

Host application identifier, matched exactly and case-sensitively; at most 256 UTF-8 bytes. Readable by schedule readers; do not include secrets.

tagsstring[]

Up to 16 distinct searchable tags. Omission preserves tags on replacement; [] clears them.

timeZonestring

Response

Replace a schedule

Changes

No recorded changes to this operation across all 1 revision of this API.