← Back to Blog

March 22, 2026 · 7 min read

OpenClaw CRON and HEARTBEAT: Scheduling Your Agent's Work Day

How OpenClaw cron jobs and HEARTBEAT.md work together. Setting up morning briefs, nightly consolidation, hourly checks. Why redundant cron matters. Real HEARTBEAT.md patterns.

Why Scheduling Matters

An AI agent without a schedule is a reactive tool. It waits for you to show up, ask something, and then responds. That's useful, but it's not an operator.

An operator shows up ready. It already ran the morning checks. It already knows what happened overnight. It already has the brief waiting. You walk in and it hands you the situation — you don't have to go build it from scratch.

That's what HEARTBEAT.md and cron jobs create: a rhythm. A defined work day for your agent that runs whether you're at your desk or not.

How HEARTBEAT.md and Cron Work Together

HEARTBEAT.md defines the schedule — what should happen, when, and in what format. Cron jobs execute it — the actual triggers that fire the agent at the right times.

Think of HEARTBEAT.md as the playbook and cron as the clock. Without the playbook, the clock just fires an agent with no instructions. Without the clock, the playbook is never executed.

A minimal HEARTBEAT.md looks like this:

```markdown

# HEARTBEAT.md

Daily Schedule

### 07:00 — Morning Brief

- Pull active projects from MEMORY.md

- Check for any Tier 3 items pending approval

- Review overnight logs for errors or flags

- Compile brief: priorities, blockers, billing status, decisions needed

- Deliver to operator via Telegram

### 12:00 — Midday Check-In

- Flag any items that have become urgent since morning

- Check for new client replies needing response

- Note only — no unsolicited action

### 18:00 — End-of-Day Wrap

- Update MEMORY.md Active Context section

- Log completed tasks to /logs/daily.md

- Flag anything unresolved for tomorrow morning

### 02:00 — Nightly Consolidation

- Run weekly report (Fridays only)

- Prune stale entries from MEMORY.md

- Run GitHub backup if configured

- Log self-notes on patterns or issues noticed

```

Setting Up the Cron Jobs

Cron jobs in OpenClaw map directly to the HEARTBEAT.md schedule. For each scheduled event, you create a corresponding cron trigger:

```

# OpenClaw cron entries

0 7 * * * openclaw run --task morning-brief

0 12 * * * openclaw run --task midday-checkin

0 18 * * * openclaw run --task eod-wrap

0 2 * * * openclaw run --task nightly-consolidation

```

Each task maps to a defined behavior in HEARTBEAT.md. The agent reads the file at execution time and follows the instructions for that task.

Hourly Checks: When to Use Them

Hourly check-in crons are useful for time-sensitive workflows — invoice monitoring, lead response tracking, support queues. For most solopreneur and small agency setups, hourly checks are overkill. Start with four daily touchpoints and add hourly only when you have a specific use case that requires faster response.

When you do add hourly checks, keep them lightweight:

```markdown

### Hourly (09:00–18:00) — Pipeline Monitor

- Check /pipeline/new-leads.md for entries added since last check

- If new leads present, notify operator via Telegram

- Do not take action — notify only

```

Hourly checks that try to do too much create noise and interrupt concentration. Notify and log; don't act.

Why Redundant Cron Matters

Cron jobs fail. Network hiccups, process restarts, system maintenance — at some point, a scheduled job won't fire. Without a redundancy plan, you get silent gaps in your agent's schedule.

The redundancy pattern is a catch-up check that runs slightly after each major scheduled event and verifies it fired:

```

# Redundant catch-up checks

15 7 * * * openclaw run --task verify-morning-brief

```

```markdown

### 07:15 — Morning Brief Verify

- Check /logs/daily.md for morning brief timestamp

- If no morning brief logged for today, run morning brief now

- Log catch-up to /logs/errors.md with note: "catch-up triggered"

```

This prevents missed briefings from cascading into a day where your agent has no context about what happened. One missed cron is recoverable. A week of missed crons creates a context gap that's hard to recover from.

Real HEARTBEAT.md Patterns

The Lean Setup (new operators):

Morning brief at 7 AM, nightly wrap at 6 PM. Two touchpoints. Simple, minimal noise, easy to debug.

The Full Operator Setup:

Morning brief, midday check, end-of-day wrap, nightly consolidation, plus hourly pipeline monitor during business hours. High-frequency awareness with structured output.

The Agency Setup:

All of the above, plus client-specific check-ins triggered by project milestones, weekly status reports auto-sent on Fridays, and a Monday morning priorities session that reviews the week ahead.

Start lean. Add complexity as you identify gaps in your current setup, not before.

What Changes

Before a HEARTBEAT.md schedule, your day starts when you open your laptop and start prompting. The agent has no idea what happened since you last talked to it.

After HEARTBEAT.md, your day starts with a brief already compiled: what's urgent, what's pending, what completed overnight, what needs your decision. You react to the situation rather than building it.

That's the shift from assistant to operator. Assistants wait. Operators prepare.

Ready to Deploy Your Operator?

The Solopreneur Operator Kit includes all 14 files — pre-built and ready to configure in 30 minutes.

Get Your Operator Kit — $49

One-time purchase. 30-day money-back guarantee.