Skip to main content
Scheduled agents — called ScheduledAmbientAgents internally — let you configure an Oz agent to run automatically on a cron schedule. Instead of manually triggering a run each time, you define a prompt, an environment, and a cron expression, and Oz takes care of the rest. Every scheduled execution produces a normal run that you can inspect with oz task list.

Creating a schedule

Use oz schedule create to define a new scheduled agent. The two required pieces are --name, --cron, and either --prompt or --skill (at least one is required).
oz schedule alone is a shorthand for oz schedule create, so the following is equivalent:
oz schedule create flags:
You must provide at least one of --prompt or --skill. You can provide both: the skill supplies the base context and the prompt provides the specific task for each run.

Cron syntax

Oz uses standard five-field cron syntax: minute hour day-of-month month day-of-week. All times are evaluated in UTC.

Use cases

Nightly code health checks

Run the test suite, type checker, or linter every night and open a PR with any fixes found.

Automated dependency updates

Check for outdated packages on a weekly schedule and open PRs to update them.

Scheduled PR triage

Every Monday morning, review open PRs and post a summary comment with next steps.

Recurring report generation

Generate a code quality or test coverage report and post it to a Slack channel or file.

Listing schedules

Getting a schedule’s configuration

Updating a schedule

You can change a schedule’s name, cron expression, prompt, environment, model, or MCP servers without deleting and recreating it.
oz schedule update flags:

Pausing and unpausing schedules

A paused schedule still exists and retains its configuration, but does not fire. Unpause it to resume normal execution.

Deleting a schedule

Deleting a schedule prevents any future runs. Runs that have already completed are not affected and remain accessible via oz task list.

Viewing scheduled run history

Each time a scheduled agent fires, it creates a normal run. Use oz task list with the --schedule filter to see only runs from a particular schedule:
You can also filter by state to find failures quickly:

Using skills with scheduled agents

Skills are reusable agent prompts stored in your repository (in .agents/skills/, .warp/skills/, .claude/skills/, or .codex/skills/). Referencing a skill rather than a hard-coded prompt means the agent’s instructions live in version control and can evolve alongside your codebase.
The skill is resolved at runtime inside the agent’s cloud environment, so it always reflects the latest version in the repo.