OpenClaw Cron Jobs: The Complete Automation Scheduling Guide
OpenClaw Cron Jobs: The Complete Automation Scheduling Guide
Why OpenClaw Cron Is Unique
Most task schedulers just run a script at a time. OpenClaw's cron system runs a full AI agent session on a schedule — complete with web search, tool use, memory access, and multi-channel delivery. Your morning brief isn't a static template — it's a live AI session that fetches today's news, checks your calendar, and writes something new every morning.
Recent updates (v2026.2.17) significantly expanded what cron jobs can do. This guide covers both the basics and the new features.
Adding a Basic Cron Job
# Daily morning brief at 7:30 AM
openclaw cron add "Send me a morning brief with today's news and my task list" --schedule "30 7 * * *" --deliver telegram
# Weekly report every Monday at 9 AM
openclaw cron add "Generate last week's performance summary and email it" --schedule "0 9 * * 1" --deliver email
The --deliver flag sets where output goes. OpenClaw supports any configured channel — Telegram, Discord, Slack, WhatsApp, email, and more.
New: Per-Job Webhook Delivery
v2026.2.17 added dedicated per-job webhook delivery, separate from announce delivery:
openclaw cron add "Process daily sales data" --schedule "0 18 * * *" --deliver webhook --webhook-url "https://your-api.com/openclaw-results"
The cron job's output is now POSTed to your webhook URL after each run, letting you feed AI-generated results into your own systems — dashboards, databases, other APIs — without polling OpenClaw.
New: Auto-Stagger Scheduling
A common problem with cron jobs: if you have 5 jobs all set to run at 9:00 AM, they all hit your LLM provider simultaneously, causing rate-limit errors. OpenClaw v2026.2.17 added deterministic auto-stagger:
# Add exact timing control
openclaw cron add "Daily digest" --schedule "0 9 * * *" --stagger 5m
# Or use --exact to disable staggering
openclaw cron add "Time-sensitive task" --schedule "0 9 * * *" --exact
By default, recurring top-of-hour cron schedules now automatically get a small stagger to spread load. The stagger is deterministic per-job (not random), so it stays consistent across restarts.
New: Token Usage Telemetry Per Run
v2026.2.17 added per-run model/provider usage telemetry to cron run logs and webhooks. Each cron run now records which model ran, how many tokens were used, and what the approximate cost was:
# View usage report for all cron jobs
openclaw cron usage --report
# Aggregate token usage by job over the past 30 days
# (uses the local usage report script added in v2026.2.17)
This is especially useful for cost management — you can now see which cron jobs are the most expensive and optimize accordingly (e.g., switch high-frequency jobs to Haiku).
The defaultTo Outbound Target
Previously, cron jobs needed an explicit --reply-to or delivery config to know where to send output. v2026.2.20 added a defaultTo outbound routing fallback per account/channel:
channels:
telegram:
defaultTo: "@yourhandle" # Default delivery target for this channel
Now openclaw agent --deliver can send without an explicit --reply-to when a default target is configured. This simplifies cron job setup significantly — no more needing to specify the delivery target for every single job.
Heartbeat: Always-On Background Tasks
OpenClaw's heartbeat system runs a persistent background task on a configurable interval — separate from explicit cron jobs. It's useful for monitoring tasks, health checks, and proactive outreach.
# HEARTBEAT.md in your OpenClaw config directory
Check if any of my monitored services are down and alert me if so.
The v2026.2.19 release fixed several heartbeat edge cases:
- Missing
HEARTBEAT.mdno longer suppresses runs (it did before) — only effectively empty files skip - Zero-width active-hours windows (same start and end time) are now treated as always-outside rather than always-active
24:30-style invalid active-hours values are now caught early rather than causing silent misbehavior
Cron Model Failover
Cron jobs inherit model failover from your main config, but you can override per-job:
cron:
model:
primary: anthropic/claude-haiku-4-5
fallbacks:
- anthropic/claude-sonnet-4-6 # Fallback if Haiku is unavailable
v2026.2.17 fixed a bug where setting only model.primary in cron config would drop the default fallbacks. Fallbacks now persist unless explicitly cleared with fallbacks: [].
Common Cron Job Patterns
| Job | Schedule | Deliver to |
|---|---|---|
| Morning brief | 30 7 * * * | Telegram |
| Weekly report | 0 9 * * 1 | |
| Hourly news scan | 0 * * * * | Discord webhook |
| Daily digest | 0 20 * * * | |
| Server health check | */15 * * * * | Telegram (on alert only) |
Want automated AI tasks running on your schedule? Cron setup — including webhook delivery, stagger configuration, token usage monitoring, and per-job model routing — is included in our Professional and Enterprise packages.
Book a free consultation or learn about our cron and scheduling service.
Need Help with OpenClaw?
Our experts handle the entire setup — installation, configuration, integrations, and ongoing support. Get your AI assistant running in 24 hours.
Related Articles
OpenClaw Dashboard V2: What's New in the Control UI (2026)
OpenClaw Dashboard V2: What's New in the Control UI (2026)
8 min read
How to Back Up and Restore Your OpenClaw Setup (v2026.3.8+)
How to Back Up and Restore Your OpenClaw Setup (v2026.3.8+)
9 min read
How to Install OpenClaw Skills: The Complete Guide
How to Install OpenClaw Skills: The Complete Guide
10 min read