Skip to main content

Reference Cron Schedule

Goal

A production brain runs 20+ recurring jobs that keep it alive, current, and compounding. This guide shows the schedule, the patterns, and how to set it up.

What the User Gets

Without this: the brain only updates when you manually ingest data. Pages go stale, entities are thin, citations break, and the agent answers from old context. With this: the brain maintains itself. Email, social, calendar, and meetings flow in automatically. Thin pages get enriched overnight. Broken citations get fixed. You wake up and the brain is smarter than when you went to sleep.

The Schedule

Implementation: Setting Up Cron Jobs

Quiet Hours Gate (MANDATORY)

Every cron job that sends notifications MUST check quiet hours first. See Quiet Hours for the full pattern.

Travel-Aware Timezone Handling

The agent reads your calendar for flights, hotels, and out-of-office blocks to infer your current location and timezone. All times shown in YOUR local timezone.
When you travel: cron jobs that would fire during your waking hours at home but hit your sleeping hours at the destination get held and folded into the next morning briefing. Zero config change needed.

The Dream Cycle

The most important cron job. Runs while you sleep.

What It Does

Setting Up the Dream Cycle

OpenClaw: Ships with DREAMS.md as a default skill. Three phases (light, deep, REM) run automatically during quiet hours. Hermes Agent:
Claude Code / Custom agents: Create a script:

Tricky Spots

  1. The dream cycle is NOT optional. Without it, signal leaks out of every conversation. With it, nothing is lost. This is the difference between an agent that forgets and one that remembers.
  2. Quiet hours gate on EVERY notification job. If you skip it, the user gets pinged at 3 AM. One 3 AM ping and they’ll disable the whole system.
  3. Don’t over-cron. 20+ jobs sounds like a lot. Start with: email (30 min), dream cycle (nightly), brain health (weekly). Add more as you add integration recipes.
  4. Timezone changes are automatic. Don’t make the user reconfigure cron when they travel. Read the calendar, infer the timezone, adjust delivery.
  5. Held messages MUST be picked up. If quiet hours hold a notification, the morning briefing MUST include it. Otherwise information is lost.

How to Verify

  1. Quiet hours: Set quiet hours to current hour. Run a notification cron. Verify output went to /tmp/cron-held/, not to messaging.
  2. Dream cycle: Run the dream cycle manually. Check that thin entity pages got enriched and broken citations were fixed.
  3. Email collector cron: Wait 30 minutes. Check data/digests/ for new digest.
  4. Morning briefing: Check that held messages appear in the briefing.
  5. Health check: Run modusbrain doctor --json. All checks should pass.

Part of the ModusBrain Skillpack. See also: Quiet Hours, Operational Disciplines