Skip to the content.

Scheduled Cron Tasks

The oracle schedule command group uses the Runtime Scheduler service — define, list, update, run, and remove persistent cron tasks. While oracle daemon is running, commands go through its local API so the live engine reschedules immediately.

Data Storage

Tasks and run history are stored in ~/.oracle/runtime/oracle.db. Existing JSON tasks under ~/.oracle/scheduler/ are imported idempotently on daemon startup and are not deleted.

CLI Commands

oracle schedule list

List all scheduled tasks with their status, cron expression, and last run result.

oracle schedule list

oracle schedule add <name> <cron> <command>

Add a new scheduled task.

oracle schedule add "daily backup" "0 2 * * *" "pg_dump mydb > /tmp/backup.sql"
oracle schedule add -d "Run tests every 5 minutes" "tests" "*/5 * * * *" "npm test"

oracle schedule remove <id>

Remove a scheduled task by its ID (shown in list output).

oracle schedule remove abc1234-5678-...

oracle schedule update <id>

Update fields or pause/resume a task. Active cron registrations are replaced immediately when Runtime is running.

oracle schedule update <id> --cron "*/10 * * * *"
oracle schedule update <id> --status paused
oracle schedule update <id> --status active

oracle schedule run <id>

Run a scheduled task immediately (one-shot execution).

oracle schedule run abc1234-5678-...

Exit code matches the task result: 0 for success, 1 for error.

oracle schedule watch

Compatibility alias for running the full Oracle Runtime in the foreground.

oracle schedule watch

Runs until interrupted (SIGINT/SIGTERM). Runtime events are available through oracle daemon events.

oracle schedule watch --once

Run all active tasks once and exit (for one-shot execution or testing).

Cron Expressions

Uses standard 5-field cron syntax via node-cron:

Expression Meaning
* * * * * Every minute
*/5 * * * * Every 5 minutes
0 * * * * Every hour, on the hour
0 2 * * * Every day at 2:00 AM
0 0 * * 0 Every Sunday at midnight
30 14 1 1 * January 1st at 2:30 PM

Configuration

Runtime state is stored under ~/.oracle/runtime/. See runtime.md for the API, WebSocket, security, and daemon lifecycle.

Examples

Run a build on every push detected by a file watcher:

oracle schedule add "build on change" "* * * * *" "npm run build"

Nightly report generation:

oracle schedule add "nightly report" "0 6 * * *" "node scripts/report.js"

One-off test run:

oracle schedule run abc1234...

Oracle — A persistent coordination layer for AI coding agents https://github.com/OraclePersonal/Oracle