Sume schedule cron field: expr, IANA timezone and next_run_at
A Sume schedule's cron object holds expr, timezone and next_run_at, or null for an API-only schedule. How to read when the next run is due over the API.

Your schedule should fire at 09:00 in Seoul, and you want to confirm it from code. GET /v1/actions/{action_id} returns a cron object with three values: expr, timezone and next_run_at. For an API-only schedule, cron is null.
What sets those values
You author a schedule in the dashboard, not the API: the Developer API can list and read schedules and start and watch runs, but cannot create or edit them (Scheduled). The cadence is a 5-field cron expression plus an IANA timezone; hourly, daily and weekly presets write the expression for you, and the custom option takes a raw one (Create a schedule).
| Field | Value | Note |
|---|---|---|
| cron.expr | 5-field expression | Example: 0 9 * * 1 for Mondays at 09:00 |
| cron.timezone | IANA name | Example: Asia/Seoul |
| cron.next_run_at | Timestamp | Read it to confirm the cadence |
| cron | null | API-only schedule, trigger_type api |
| status | active or inactive | An inactive schedule rejects API runs |
A check you can script
List your schedules, filter to the active ones, and compare next_run_at to what you expect. A schedule whose next_run_at is missing is either API-only or not what you meant to create, and trigger_type is fixed at create time, so the fix is a new schedule, not an edit.
Run history labels each run Cron or API, so after the first expected fire you can confirm in the dashboard that the run came from the clock. If the previous run is still active at the next fire, the default on_active_run is skip, which yields a receipt with status skipped rather than a second overlapping run.
curl -sS "https://api.sume.com/v1/actions" \
-H "Authorization: Bearer $SUME_API_KEY"Sources
Related posts
More in Agents
- Sume schedule cap null or 0: what a per-run override can do
A per-run generation_spend_cap_usd lowers a Sume schedule's cap but never raises it; null drops that ceiling, 0 is rejected, and wallet limits still apply.
- tts_create dry_run will not warn about a voice-language mismatch
A cost-only dry_run on Sume's tts_create stays a preview; the language double-check runs on submission. How to preflight voice, language and cost together.
- tts_source_get and verify_spine: check a voiceover vs its script
Sume's hosted MCP has two free read tools for voiceover work. One returns the accepted script for tts_create, the other compares chosen TTS jobs to it.
- Weekly new-model watcher as a Sume schedule: schema without links
A scheduled watcher that lists new AI models fails if its output schema holds vendor page URLs. Use host-only fields and read each run with the actions API.
Written by Sume