Course 02: Going DeeperModule 4 of 9

MODULE 04 · COURSE 02: GOING DEEPER

Module 4: Building Real Automations with Cron

Cron jobs are scheduled tasks. You define when something runs and what it does. Your agent handles the rest.

This is how you go from "I ask it things" to "it does things for me automatically."


The basics

A cron job in OpenClaw is simple: you tell your agent what to do and when to do it. It sets up the schedule, and as long as the Gateway is running, it fires at the right time.

You don't need to write cron syntax. Just use natural language:

"Every morning at 7:30am, send me a weather update for San Francisco and today's headlines."
"Every Monday at 9am, send me a summary of what's on my calendar this week."
"Every day at 6pm, remind me to log what I accomplished today."

Your agent translates this into an actual scheduled task.


Viewing your active crons

openclaw cron list

This shows every scheduled task, when it last ran, and when it runs next.


The morning briefing (the most popular automation)

This is the thing most people set up first and never turn off. Here's a production-quality version:

"Every morning at 7:30am Pacific, send me a morning briefing that includes:
1. Today's date and day of the week
2. Current weather in [your city]
3. My calendar for today — all events with times
4. Any emails that need a response (check Gmail)
5. My top 3 priorities for the day (check my task list or ask me if you don't know)
> Keep it concise. I should be able to read it in 60 seconds."

That single automation replaces a morning routine that most people spend 15-20 minutes piecing together across 4 different apps.


Useful automations to set up this week

End-of-day review
"Every weekday at 5:30pm, ask me: 'What did you accomplish today? Anything to carry over to tomorrow?' Save my response to my daily log."
Weekly review
"Every Sunday at 6pm, send me: this week's wins (from my daily logs), what's on next week's calendar, and ask what my priorities are for the week ahead."
Invoice tracker
"Every Monday morning, check my Gmail for any invoices or receipts that came in last week and give me a summary with totals."
Discord/Slack monitor
"Every hour, check my Discord DMs for anything unread. If there's something from a client or someone I haven't responded to in over 24 hours, send me an alert."
Content reminder
"Every Tuesday at 10am, remind me to write my newsletter. Ask me what I want to write about this week."

Going beyond simple triggers

Crons don't have to be simple messages. They can trigger full workflows:

"Every Friday at 4pm:
1. Check my Gmail for any outstanding client emails I haven't responded to
2. Check my calendar for next week and flag any prep I need to do for meetings
3. Check my task list for anything I said I'd finish this week that isn't done
4. Send me a weekly wrap-up with all of the above"

That's a real workflow that runs itself. Jeremy runs something similar across his businesses — Friday afternoon, each agent sends a status report without being asked.


Timing tips

Always specify your timezone. If you don't, it defaults to the server's timezone (often UTC). "8am" on a UTC server is midnight Pacific.

Set your timezone in your agent's SOUL.md or config:

## Time & Location
  • Timezone: America/Los_Angeles
  • All scheduled tasks should use this timezone

Or in your config:

{
  "timezone": "America/Los_Angeles"
}

Be realistic about frequency. Hourly checks are fine. Every 5 minutes for something lightweight is fine. Don't schedule something every minute unless you have a real reason — it burns API credits and can hit rate limits. Give it a quiet period. Tell your agent not to message you overnight:
"Unless it's a genuine emergency, don't message me between 10pm and 7am Pacific."

Editing and removing crons

To change a scheduled task, just tell your agent:

"Change the morning briefing to 8am instead of 7:30am."

To remove one:

"Remove the end-of-day reminder."

Or manage them directly:

openclaw cron list
openclaw cron delete <cron-id>


When crons don't fire

Three most common reasons:

  1. Gateway is down — crons need the Gateway running. Use the daemon install.
  2. Wrong timezone — double-check your timezone setting.
  3. The cron was never created — ask your agent "show me my active crons" to verify.
Full troubleshooting in the Troubleshooting Guide.


Next up

Module 5: The Heartbeat Pattern →