OpenClaw Cron Jobs Not Triggering — How to Fix (2026)
Fix OpenClaw scheduled tasks and cron jobs that aren't triggering. Troubleshoot timezone issues, cron syntax, and Docker cron configuration.
Understanding OpenClaw Cron Jobs
OpenClaw supports scheduled tasks (cron jobs) for automated actions like sending daily summaries, clearing old conversations, running health checks, or triggering periodic agent tasks. When they stop working, it's usually a configuration issue.
Step-by-Step Fix
1. Verify Cron Syntax
OpenClaw uses standard cron syntax (5 fields):
# minute hour day-of-month month day-of-week
# Examples:
"0 9 * * *" # Every day at 9:00 AM
"*/5 * * * *" # Every 5 minutes
"0 0 * * 1" # Every Monday at midnight
"30 14 1 * *" # 1st of every month at 2:30 PM2. Check Your Configuration
{
"scheduler": {
"enabled": true,
"timezone": "America/New_York",
"jobs": [
{
"name": "daily-summary",
"cron": "0 9 * * *",
"action": "send-summary",
"enabled": true
},
{
"name": "cleanup-old-chats",
"cron": "0 0 * * 0",
"action": "cleanup",
"config": {
"olderThan": "30d"
},
"enabled": true
}
]
}
}3. Fix Docker Timezone
services:
openclaw:
image: ghcr.io/openclaw/openclaw:latest
environment:
- TZ=America/New_York
volumes:
- /etc/localtime:/etc/localtime:ro4. Check Scheduler Status
# View all scheduled jobs
openclaw scheduler status
# Output:
# Job: daily-summary | Cron: 0 9 * * * | Next: 2026-02-28 09:00:00 EST | Status: active
# Job: cleanup-old-chats | Cron: 0 0 * * 0 | Next: 2026-03-01 00:00:00 EST | Status: active5. Test Jobs Manually
# Trigger a job manually
openclaw scheduler trigger daily-summary
# Check job execution logs
openclaw scheduler logs daily-summary --last 56. Ensure the Scheduler Process Is Running
# The scheduler runs as part of the main OpenClaw process
# Check if it started correctly in logs
docker logs openclaw 2>&1 | grep -i "scheduler"
# You should see: "Scheduler started with 2 jobs"Frequently Asked Questions
Why are my OpenClaw cron jobs not running?
Common causes: incorrect cron syntax, timezone mismatch (Docker containers default to UTC), the OpenClaw scheduler service not running, or the cron job was defined but not enabled in the config.
How do I check if the OpenClaw scheduler is running?
Check the OpenClaw logs for "Scheduler started" messages. You can also run "openclaw scheduler status" to see all registered cron jobs and their next execution times.
What timezone do OpenClaw cron jobs use?
By default, OpenClaw uses the system timezone. In Docker, this is usually UTC. Set the TZ environment variable (e.g., TZ=America/New_York) to use a different timezone.