Schedule
A Schedule is a persistent resource that automatically creates tasks for an agent on a recurring cadence.
kind: "commonagents.info/v1/schedule"
name: str
agent: str
cron: str
timezone: str | None
owner: str
inputs: object | None
enabled: bool
Fields
kind— Identifies this manifest as a Schedule. A manifest with a differentkindvalue is not defined by this specification.name— Identifies the schedule. A name identifies one resource (see Concepts).agent— Identifies the agent that tasks are created for.cron— Defines the trigger cadence as a standard 5-field cron expression (minute hour day-of-month month day-of-week). Extended 6-field (seconds) expressions are not defined by this specification.timezone— When present, the cron expression is evaluated in this IANA timezone. When absent, UTC applies.owner— Identifies the user associated with all tasks created by this schedule, used for identity and access control purposes.inputs— When present, passed as the unified input for each scheduled task. The well-knownmessagekey (typelist[ContentPart]) provides the conversational input. Additional keys satisfy the agent'sparametersschema. Required agent parameters must be present.messageMUST be present either ininputsor via adefaultin the agent'sparametersschema; if neither exists, the schedule MUST be rejected.enabled— Whentrue, the schedule is active and the runtime evaluates it. Whenfalse, the schedule is inactive.
Status
The runtime maintains the following read-only status field on the schedule, not set by the caller:
status:
next_trigger_at: str | None # UTC ISO 8601
Status describes what is true of the schedule now. next_trigger_at is derived from cron, timezone and enabled, so a schedule whose next run disagrees with its cadence cannot exist.
What a schedule has done — when it last fired, which task that produced, why an attempt failed — is deliberately not here. Those accumulate without the schedule changing, so a status carrying them would be a field whose value moves when nothing about the resource has. How an implementation records execution history, and whether it exposes one at all, is outside this specification.
Overlapping Execution
Schedules are time-driven, not completion-driven. A new task is created at each cron tick regardless of whether a previously-triggered task is still running.
Example
kind: "commonagents.info/v1/schedule"
name: "daily_standup_summary"
agent: "standup-agent"
cron: "0 9 * * 1-5"
timezone: "Australia/Sydney"
inputs:
message:
- mimeType: text/plain
text: "Generate today's standup summary from the ticket backlog."
enabled: true