publishSchedule
const url = 'https://api.katara.com/katara/v1/orgs/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/environments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/schedules';const options = { method: 'POST', headers: { 'Idempotency-Key': 'example', 'X-Katara-CSRF': '1', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '{"schedule_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","expected_revision":1,"expected_environment_epoch":1,"expected_reset_generation":1,"configuration":{"name":"example","calendar":{"calendars":"example","intervals":"example"},"policy":{"overlap":"skip","catchup_window_seconds":1,"pause_on_failure":true},"run":"example"}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.katara.com/katara/v1/orgs/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/environments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/schedules \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: example' \ --header 'X-Katara-CSRF: 1' \ --data '{ "schedule_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "expected_revision": 1, "expected_environment_epoch": 1, "expected_reset_generation": 1, "configuration": { "name": "example", "calendar": { "calendars": "example", "intervals": "example" }, "policy": { "overlap": "skip", "catchup_window_seconds": 1, "pause_on_failure": true }, "run": "example" } }'Requires synapse:schedules:write and current scope. Publication records an immutable version and does not activate execution. Activation and retirement require a human session; enabling also requires an available scheduler. Preserve exact reviewed body and Idempotency-Key after an unknown mutation result. No automatic retry. No raw paths or query parameters except the list filters. Replies expose execution_ready; false refuses enabling. The scheduler controls timing; Test and Live activation are separate.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Header Parameters
Section titled “Header Parameters”Browser cookie mutations require value 1 and an allowed Origin. Session bearer clients may omit this header.
Required for cookie-authenticated changes. Use the UUID of the account that loaded the application. A different current cookie account returns account_changed before the handler runs. Session bearer and API key clients do not require this header.
Request Bodyrequired
Section titled “Request Bodyrequired”object
object
Pinned IANA timezone names; no Local/process timezone. At most32 total rules. UTC start/end inclusive, start<=end. Ordered disjoint field ranges with explicit positive steps; intervals sorted unique by every/offset, offset<every. The scheduler evaluates timing and daylight saving changes.
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
Model, tools, schemas and limits come from the immutable agent version. Paid Test Compute requires the exact consent funding the grant budget; the API checks it against current payer authority.
object
object
object
Explicit destination for run artifacts. Store and key versions must still be active at admission and byte access. Choose retention from 60 seconds to 365 days; no silent default or destination substitution.
object
object
Responses
Section titled “Responses”Schedule metadata or completed operation; no execution implied.
object
Examplegenerated
{ "operation_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "resource_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "completed": true}Headers
Section titled “Headers”default
Section titled “default”Request error
object
object
Stable; branch on it. Any operation can answer invalid_request, with param naming the refused field when there is one; human_session_required, when an API key, service account or workload calls an operation only a signed-in person may perform; reauthentication_required, when a person’s sign-in is too old for the operation; permission_denied; route_not_found and method_not_allowed, when no operation matches the path or method; and feature_unavailable, when the operation’s service is not enabled on this deployment.
The request field a refusal is about, such as the agent_id or run_id query parameter; null when the refusal is not about one field.
Example
{ "error": { "action": "sign_in" }}