Schedule
A Schedule is a persistent resource that automatically creates tasks for an agent on a recurring cadence.
kind: "commonagents.info/v1/schedule"
namespace: str
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.namespace— Identifies the namespace this schedule belongs to.name— Identifies the schedule uniquely within its namespace.agent— Identifies the agent that tasks are created for. The referenced agent exists in the same namespace.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 fields on the schedule, not set by the caller:
status:
last_triggered_at: str | None # UTC ISO 8601
last_task_id: str | None
next_trigger_at: str | None # UTC ISO 8601
consecutive_failures: int
last_error: str | None
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"
namespace: "engineering"
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