Schedules
A schedule is a cron trigger on a deployed agent. Every time it fires, the platform opens a fresh agent session and sends it the prompt you configured. Nobody has to be at a keyboard, and the agent starts each run with a clean context.
One fire, one fresh session
A schedule carries a cron expression, a timezone and a prompt. On each fire the platform starts a new agent session and sends that prompt as the first message. There is no carry-over from the previous run, so the prompt has to be the whole task: state the job, not a follow-up.
The expression is the standard five field form (minute, hour, day-of-month, month, day-of-week) and is read in the schedule’s IANA timezone, which defaults to UTC. Minute resolution is as fine as it goes: anything sub-minute is rejected, and so is * * * * *.
every fire is billed
From the dashboard or from an MCP client
Schedules are authored on the agent, not on the workspace list. Open the agent in the dashboard and use its Schedules card, or call agnt_schedules_create from a connected MCP client.
- 01
Pick a cadence
The card offers a frequency builder (every hour, every day, every weekday, weekly, monthly) and a custom-cron escape hatch for anything the builder cannot express. Whatever you pick, it renders the resulting expression back in plain English so you can check it, and flags an invalid expression instead of saving it. - 02
Set the timezone
Pick the IANA zone the expression should be read in. The form defaults to your browser’s zone; the stored default is UTC. Daylight saving is handled by the zone, so “9am local” stays 9am local. - 03
Write the prompt
This is the whole task. Capped at 8 KB. Write it as an instruction to an agent that has just woken up and knows nothing about why. - 04
Decide whether it starts live
A new schedule is live the moment it is saved unless you create it disabled. Creating it dormant is the safe move when you want to read the first run’s prompt back before it fires.
agnt_schedules_create({
agent_id: "<deployed agent uuid>",
name: "Morning pipeline review",
cron_expression: "0 9 * * 1-5",
timezone: "Europe/Berlin",
input_text: "Review every deal that moved yesterday and post a summary."
})Toggle it, or fire it by hand
The workspace Schedules page lists every schedule in the workspace with its next run, a calendar view of what fired when, and two controls per row: an enabled toggle and a run-now button that dispatches immediately without touching the timetable. Pausing leaves the schedule and its history intact, so it is the right way to stop something temporarily.
Deleting is not reversible from the MCP surface. When you only want it to stop, disable it instead.
Every fire lands in the run log
Each fire writes one trigger run, recorded as dispatched, failed or skipped, and the agent’s Runs view lists them with the schedule name attached. Each row deep-links to the read-only transcript of the session that ran, which is where you go when a scheduled job produced the wrong answer.
A scheduled run has no interactive caller, so anything the agent needs a human for goes out of band: approvals and questions are delivered to the agent’s configured chat reach, fall back to the workspace’s default Slack channel, and are always visible in the dashboard’s approvals panel even when no channel is configured.
Four tools
| Tool | What it does |
|---|---|
agnt_schedules_list | Every schedule on one agent: expression, timezone, prompt, enabled state and next run. Read-only. |
agnt_schedules_create | Applies directly, with no approval card. Live immediately unless you pass an explicit disabled flag. |
agnt_schedules_update | Rename, re-time, rewrite the prompt, or flip it on and off. The next run time is recomputed. |
agnt_schedules_delete | Permanent from this surface. Prefer an update that disables it when you only want a pause. |
Whether a past run actually fired is a separate question from what the schedule says, so check the trigger runs rather than the schedule row when something looks missing.
Schedules ship with the Automation module
Schedules, queues, and inbound/outbound webhooks. It comes in 3 rungs, each with a 7-day trial. The quantities below are the published allowances for each rung.
| Tier | Price | Includes |
|---|---|---|
| starter | $19/mo | 10 schedules · 3 queues · 25,000 webhook events / mo |
| growth | $39/mo | 50 schedules · 15 queues · 150,000 webhook events / mo |
| scale | $79/mo | 250 schedules · 50 queues · 750,000 webhook events / mo |
allowances, not caps
Queues
Hand an agent a backlog and let it drain one item at a time instead of waking on a clock.
Receiving webhooks
Let a third party wake an agent the moment something happens, instead of polling on a schedule.
Data pipelines
Thousands of rows, one cheap structured call each. The right shape when a schedule would loop.