Automation
Run workspaces on a cron cadence so the agent picks up open issues unattended and writes results back as files and inbox items.
Scheduled workspaces let Qoc run the agent on a cron cadence — every morning, every hour, or after market close — without you having to invoke qoc run manually.
How scheduled runs work
A schedule is a TOML file in schedules/ (or a [schedule] block in desk.toml) that tells qoc when to start a run and which task or issue set to work on.
At the scheduled time the qoc daemon wakes the workspace, injects context, launches the agent, and waits for it to finish. Results — research notes, draft orders, inbox items — are written back to the workspace directory as plain files, exactly as they would be after a manual run.
If the agent produces nothing actionable it writes a brief run-summary to snapshots/. Silence is never silent: you can always inspect what the agent looked at.
Declaring a schedule in desk.toml
[schedule]
# Run the agent at 07:30 local time on weekdays.
cron = "30 7 * * 1-5"
task = "morning-review" # matches issues/morning-review.md
timezone = "America/Chicago"
# Optional: cap how long a single run may take.
timeout_minutes = 20Declaring a schedule as a standalone file
name = "End-of-day snapshot"
cron = "55 15 * * 1-5"
timezone = "America/Chicago"
task = "eod-snapshot"
enabled = true
# Run only when the workspace has unresolved issues.
skip_if_no_open_issues = falseInspecting run logs
Each scheduled run appends a structured entry to the workspace run log. You can tail it with qoc logs or open the file directly.
Run summaries are also written to snapshots/YYYYMMDD-HHMM-<task>.md so you have a point-in-time record of what the agent found and proposed.
Sample run log output
2026-07-05 07:30:01 INFO workspace=equity-desk run=morning-review status=started
2026-07-05 07:30:03 INFO context injected: 4 entities, 2 house-rule files, risk config loaded
2026-07-05 07:30:03 INFO open issues: 3 (morning-review, trim-tech, review-macro)
2026-07-05 07:31:44 INFO research note written: research/2026-07-05-macro-update.md
2026-07-05 07:33:12 INFO draft order written: orders/pending/20260705-msft-add.yaml
2026-07-05 07:33:15 INFO inbox item created: inbox/20260705-trim-tech-followup.md
2026-07-05 07:33:16 INFO snapshot written: snapshots/20260705-0733-morning-review.md
2026-07-05 07:33:16 INFO run=morning-review status=completed duration=135s outputs=3Scheduled runs do not execute orders
Draft orders land in orders/pending/ and require your explicit approval before Qoc routes them to a venue. Automation speeds up research and proposal — it does not bypass the approval step.
Use skip_if_no_open_issues to reduce noise
Set skip_if_no_open_issues = true on housekeeping schedules that only make sense when there is something to review. The run is skipped cleanly and logged, so you know it was evaluated.