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 PM

2. 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:ro

4. 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: active

5. Test Jobs Manually

# Trigger a job manually
openclaw scheduler trigger daily-summary

# Check job execution logs
openclaw scheduler logs daily-summary --last 5

6. 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.

Related Articles

Reliable Scheduling Built In

Our managed OpenClaw includes reliable scheduling with timezone support and monitoring built in.

Start Automating