Back to Blog
O

OpenClaw Cron Jobs: The Complete Automation Scheduling Guide

Setup Guides

OpenClaw Cron Jobs: The Complete Automation Scheduling Guide

OpenClaw Expert Team
9 min read

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.md no 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

JobScheduleDeliver to
Morning brief30 7 * * *Telegram
Weekly report0 9 * * 1Email
Hourly news scan0 * * * *Discord webhook
Daily digest0 20 * * *WhatsApp
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.

cronschedulingautomationwebhookheartbeatrecurring tasks

Need Help with OpenClaw?

Our experts handle the entire setup — installation, configuration, integrations, and ongoing support. Get your AI assistant running in 24 hours.