Why This Matters
Up to now, your OpenClaw only talks when you talk to it. But the real power is having it proactively reach out with useful information on a schedule — a daily briefing, a weekly summary, or periodic check-ins.
OpenClaw has a built-in cron scheduler that can:
- Run a prompt on a schedule
- Deliver the output to your Telegram chat
- Use a fresh isolated session (so cron jobs don't pollute your conversation)
How Cron Syntax Works
Cron expressions look cryptic at first, but they follow a simple five-field pattern:
┌───────────── minute (0–59)
│ ┌─────────── hour (0–23)
│ │ ┌───────── day of month (1–31)
│ │ │ ┌─────── month (1–12)
│ │ │ │ ┌───── day of week (0–6, Sun=0)
│ │ │ │ │
0 7 * * 1-5 → "At 7:00 AM, Monday through Friday"
A * means "every" — so * * * * * means every minute of every day. Numbers narrow it down. 1-5 means Monday through Friday. */6 means every 6th unit.
Test It First
Before setting up a real schedule, verify the whole pipeline works by creating a cron job that fires two minutes from now.
Check the current time on your server:
ssh claw@YOUR_SERVER_IP
date
If the time is, say, 14:33, set a cron for 14:35:
docker exec openclaw openclaw cron add \
--name "Test cron" \
--cron "35 14 * * *" \
--tz "America/Chicago" \
--session isolated \
--message "Say: Hello! This is a test cron job. It works!" \
--announce \
--channel telegram
Wait for the Telegram message to arrive. Once it does, remove the test job:
docker exec openclaw openclaw cron remove --name "Test cron"
Setting Up Your Daily Briefing
The daily briefing is the most popular cron job. Your OpenClaw gathers information and sends you a summary every morning.
Option A: Via OpenClaw CLI
SSH into your server and use the OpenClaw CLI:
docker exec openclaw openclaw cron add \
--name "Morning briefing" \
--cron "0 7 * * 1-5" \
--tz "America/Chicago" \
--session isolated \
--message "Give me a morning briefing. Include: the current date and day of week, any important news in AI and technology, a motivational thought for the day, and any reminders from my knowledge files." \
--announce \
--channel telegram
Breaking this down:
--cron "0 7 * * 1-5"— runs at 7:00 AM, Monday through Friday--tz "America/Chicago"— change this to your timezone--session isolated— uses a fresh session, not your main conversation--announce— delivers the output to your chat--channel telegram— sends via Telegram
Option B: Via Config File
If you prefer editing config files, add this to your OpenClaw config:
cron:
jobs:
morning-briefing:
schedule: "0 7 * * 1-5"
timezone: "America/Chicago"
session: isolated
announce: true
channel: telegram
message: |
Give me a morning briefing. Include:
- Current date and day of week
- Important news in AI and technology
- A motivational thought
- Any reminders from my knowledge files
Another Example: Weekly Review
Once your daily briefing is working reliably, consider adding a weekly review:
docker exec openclaw openclaw cron add \
--name "Weekly review" \
--cron "0 18 * * 0" \
--tz "America/Chicago" \
--session isolated \
--message "Summarize what we discussed this week. What were the main topics, decisions, and action items?" \
--announce \
--channel telegram
This runs at 6:00 PM every Sunday (0 18 * * 0).
Managing Cron Jobs
List all jobs:
docker exec openclaw openclaw cron list
Remove a job:
docker exec openclaw openclaw cron remove --name "Morning briefing"
Tips
- Start with one cron job and make sure it works before adding more
- Always use
--session isolated— you don't want scheduled tasks cluttering your main conversation context - Cron jobs cost tokens. A daily briefing with Sonnet costs roughly $0.05–0.15 per run. If you want higher quality for your most important output, route it through Opus
- Cron times use 24-hour format — 7 PM is
19, not7 - If a cron job doesn't fire, check logs with
docker logs openclaw --tail 50and look for scheduling errors
When You're Done
- At least one cron job configured (daily briefing recommended)
- Received a scheduled message in Telegram
- Can list and manage cron jobs
- Understand how to adjust schedule and timezone