Alias Grammar
A schedule may carry an optionalalias — a short, stable name usable anywhere the schedule’s
id is accepted.
The 6-character floor rejects the names most people try first:
main, dev, prod and ci are
all too short and are refused. primary, default, staging, daily_report and
nightly-build all clear it. The alias is optional — a schedule without one simply omits alias
from responses, rather than carrying it as null.
The grammar is enforced when an alias is set — at create and at rename. Reads normalize case
and surrounding whitespace before resolving, so a lookup does not have to match the stored value
byte-for-byte.
A schedule’s own alias is not the only “alias” in view here. It sits in the same payload as
invocation_target.workflow_alias, and create_execution takes a separate alias parameter
meaning the workflow definition’s alias. When a schedule’s alias and its
invocation_target.workflow_alias appear side by side — as they do on every schedule response —
they name two different things: the schedule itself, and the workflow it invokes when it fires.
Read alias at the top level of a schedule as the schedule’s own name; read workflow_alias
inside invocation_target as the target it runs.
Workflow sessions support the same optional alias, with the same grammar. get_session,
update_session, close_session, reopen_session, delete_session, get_schedule,
update_schedule and delete_schedule all accept an id or an alias in their session_id /
schedule_id parameter — every command that addresses the object itself. Everything else is id
only, including create_execution, list_executions, list_session_events, and every
session-object, thread and graph command: these address content inside a session or schedule
rather than the object itself, so a caller resolves the alias once — on the command that returns
the object — and holds the id from there on.
This is the session’s or schedule’s own alias, not to be confused with a session object’s
alias — the path-style name given to individual objects stored inside a session, documented in
Session Objects.
The two grammars are deliberately incompatible: that one allows slashes, dots and uppercase that
this one forbids, so a value valid under one can never be mistaken for the other.
Alias resolution reads a secondary index and is eventually consistent: creating an object with an
alias and immediately addressing it by that alias can fail briefly. Hold the id the create call
returns rather than re-resolving by alias on every call.
Schedule Types
A schedule fires either once or on a recurring cadence. Therepeat field controls which:
one_time— fires once at a specifiedinvocation_time. After firing, the schedule transitions to thecompletedstate.recurring_cron— fires repeatedly based on acron_expression. Staysactiveuntil deleted, or untilend_dateis reached (if provided).
Cron Expressions
Recurring schedules use the AWS EventBridge Scheduler six-field cron format:cron_expression. A few common examples:
Either
day-of-month or day-of-week must be ? (AWS cron does not allow both to be specified).
Timezones
Every schedule requires an IANA timezone string in thetimezone field (for example, America/New_York, Europe/London, or UTC). Both cron expressions and one-time invocation times are evaluated in this timezone.
Date Windowing
Schedules accept optionalstart_date and end_date fields (ISO 8601, UTC) that constrain when the schedule is active:
- Before
start_date, the schedule does not fire. - After
end_date, the schedule does not fire. A recurring schedule automatically transitions to thecompletedstate onceend_dateis passed.
Invocation Targets
A schedule invokes a target each time it fires. The currently supported target type isworkflow, which creates a workflow execution on a target blob revision.
The invocation_target object has the following fields:
org_id and blob_id for the target blob are derived by the server from revision_id. They appear on the persisted schedule and in all responses, but they must not be supplied in create_schedule or update_schedule request bodies.Authorization
Schedules execute on behalf of the auth entity (user or organization) that created them. At the time of invocation, that auth entity must still have access to the target blob. If access has been revoked, the execution fails withinvocation_error and no workflow is started.
Execution History
Every time a schedule fires it creates an execution record. Executions are fire-and-forget: the execution result captures the immediate outcome of creating the workflow execution, not the final outcome of the workflow itself. Each execution has astatus field with one of two values:
Schedule States
A schedule is always in one of two states, stored in itsstate field:
active— the schedule can be updated or deleted. One-time schedules remain active until they fire; recurring schedules remain active indefinitely or until theirend_dateis reached.completed— the schedule is read-only. Completed schedules cannot be updated but can still be deleted.

