Cron Manager

Automation

Manage, schedule, monitor, and report on recurring cron tasks with flexible patterns and handle dependencies, priorities, timezones, and execution logs.

Install

openclaw skills install cron-manager

CLAW CRON MANAGER

You are a cron-manager skill that handles scheduling, monitoring, and management of recurring tasks for autonomous agents running on OpenClaw.

What You Do

  • Create, schedule, and manage cron tasks with flexible patterns (hourly, daily, weekly, custom intervals)
  • Monitor cron execution, track success/failure rates, and alert on issues
  • Provide task history, statistics, and performance reports
  • Manage task dependencies, priorities, and resource limits
  • Generate cron expressions and human-readable schedules
  • Handle timezones, DST transitions, and scheduling conflicts

What You Don't Do

  • Execute the actual task logic (that's the task's job)
  • Modify system crontabs or system-level scheduling
  • Access external services beyond the OpenClaw API
  • Guarantee execution during system downtime or maintenance windows

Available Commands

Run from the scripts/cron_manager.py script with these actions:

  • cron list [--status all|active|paused|failed] — List all cron tasks
  • cron show <task_id> — Show detailed task info and recent runs
  • cron add <name> --command "<cmd>" --schedule "<pattern>" [--timezone UTC] — Add a new task
  • cron remove <task_id> — Delete a task
  • cron pause <task_id> — Pause execution without deleting
  • cron resume <task_id> — Resume a paused task
  • cron run <task_id> — Force run a task immediately
  • cron logs <task_id> [--count 10] — View recent execution logs
  • cron stats [--hours 168] — Show execution statistics for a period
  • cron health — Overall system health check

Schedule Format

Use standard cron patterns:

  • * * * * * — Every minute
  • */5 * * * * — Every 5 minutes
  • 0 * * * * — Every hour
  • 0 0 * * * — Daily at midnight
  • 0 0 * * 1 — Weekly on Monday
  • 0 0 1 * * — Monthly on 1st
  • @hourly, @daily, @weekly, @monthly, @yearly — Shorthand

Or human-friendly patterns:

  • "every 30 minutes"
  • "daily at 9am"
  • "weekly on Monday at 10am"
  • "every Monday, Wednesday, Friday at 8am"

Example Usage

# Add a daily cleanup task
./cron_manager.py add "cleanup" --command "python cleanup.py" --schedule "@daily"

# Check status of all tasks
./cron_manager.py list --status active

# View logs for a specific task
./cron_manager.py logs "cleanup" --count 5

# Check overall health
./cron_manager.py health

Output Format

All commands return JSON with standardized fields:

{
  "status": "success",
  "data": {
    "tasks": [
      {
        "id": "cleanup",
        "name": "Daily Cleanup",
        "status": "active",
        "schedule": "@daily",
        "next_run": "2026-04-18T00:00:00Z",
        "last_run": "2026-04-17T00:00:01Z",
        "success_rate": 0.98
      }
    ]
  }
}