Skip to main content

Automation & Tasks

OpenClaw runs work in the background through tasks, scheduled jobs, event hooks, and standing instructions. This page helps you choose the right mechanism and understand how they fit together.

Quick decision guide

Use caseRecommendedWhy
Send daily report at 9 AM sharpScheduled Tasks (Cron)Exact timing, isolated execution
Remind me in 20 minutesScheduled Tasks (Cron)One-shot with precise timing (--at)
Run weekly deep analysisScheduled Tasks (Cron)Standalone task, can use different model
Check inbox every 30 minHeartbeatBatches with other checks, context-aware
Monitor calendar for upcoming eventsHeartbeatNatural fit for periodic awareness
Inspect status of a subagent or ACP runBackground TasksTasks ledger tracks all detached work
Audit what ran and whenBackground Tasksopenclaw tasks list and openclaw tasks audit
Multi-step research then summarizeTask FlowDurable orchestration with revision tracking
Run a script on session resetHooksEvent-driven, fires on lifecycle events
Execute code on every tool callHooksHooks can filter by event type
Always check compliance before replyingStanding OrdersInjected into every session automatically

Scheduled Tasks (Cron) vs Heartbeat

DimensionScheduled Tasks (Cron)Heartbeat
TimingExact (cron expressions, one-shot)Approximate (default every 30 min)
Session contextFresh (isolated) or sharedFull main-session context
Task recordsAlways createdNever created
DeliveryChannel, webhook, or silentInline in main session
Best forReports, reminders, background jobsInbox checks, calendar, notifications
Use Scheduled Tasks (Cron) when you need precise timing or isolated execution. Use Heartbeat when the work benefits from full session context and approximate timing is fine.

Core concepts

Scheduled tasks (cron)

Cron is the Gateway’s built-in scheduler for precise timing. It persists jobs, wakes the agent at the right time, and can deliver output to a chat channel or webhook endpoint. Supports one-shot reminders, recurring expressions, and inbound webhook triggers. See Scheduled Tasks.

Tasks

The background task ledger tracks all detached work: ACP runs, subagent spawns, isolated cron executions, and CLI operations. Tasks are records, not schedulers. Use openclaw tasks list and openclaw tasks audit to inspect them. See Background Tasks.

Task Flow

Task Flow is the flow orchestration substrate above background tasks. It manages durable multi-step flows with managed and mirrored sync modes, revision tracking, and openclaw tasks flow list|show|cancel for inspection. See Task Flow.

Standing orders

Standing orders grant the agent permanent operating authority for defined programs. They live in workspace files (typically AGENTS.md) and are injected into every session. Combine with cron for time-based enforcement. See Standing Orders.

Hooks

Hooks are event-driven scripts triggered by agent lifecycle events (/new, /reset, /stop), session compaction, gateway startup, message flow, and tool calls. Hooks are automatically discovered from directories and can be managed with openclaw hooks. See Hooks.

Heartbeat

Heartbeat is a periodic main-session turn (default every 30 minutes). It batches multiple checks (inbox, calendar, notifications) in one agent turn with full session context. Heartbeat turns do not create task records. Use HEARTBEAT.md to define what the agent checks. See Heartbeat.

How they work together

  • Cron handles precise schedules (daily reports, weekly reviews) and one-shot reminders. All cron executions create task records.
  • Heartbeat handles routine monitoring (inbox, calendar, notifications) in one batched turn every 30 minutes.
  • Hooks react to specific events (tool calls, session resets, compaction) with custom scripts.
  • Standing orders give the agent persistent context and authority boundaries.
  • Task Flow coordinates multi-step flows above individual tasks.
  • Tasks automatically track all detached work so you can inspect and audit it.