🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Crontab Validator

by @charlie-morrison

Validate, explain, lint, and calculate next run times for cron expressions. Use when asked to check cron syntax, explain a crontab entry, find next scheduled...

Versionv1.0.1
Downloads569
TERMINAL
clawhub install crontab-validator

πŸ“– About This Skill


name: crontab-validator description: Validate, explain, lint, and calculate next run times for cron expressions. Use when asked to check cron syntax, explain a crontab entry, find next scheduled runs, or lint cron expressions for common mistakes. Triggers on "crontab", "cron expression", "cron schedule", "cron syntax", "cron explain", "cron next run", "*/5 * * * *".

Crontab Validator & Explainer

Validate cron syntax, get human-readable explanations, calculate next run times, and lint for common mistakes.

Validate

# Single expression
python3 scripts/cron_check.py validate "*/15 * * * *"

Multiple expressions with lint

python3 scripts/cron_check.py validate --lint "0 2 * * *" "* * * * *" "0 0 31 2 *"

Explain in Detail

python3 scripts/cron_check.py explain "30 4 1,15 * 1-5"

Next Run Times

# Next 5 runs (default)
python3 scripts/cron_check.py next "0 9 * * 1-5"

Next 10 runs

python3 scripts/cron_check.py next "0 */6 * * *" --count 10

From specific time

python3 scripts/cron_check.py next "0 9 * * *" --from-time 2026-01-01T00:00:00

Lint

# Check for common mistakes
python3 scripts/cron_check.py lint "* * * * *" "0 0 31 2 *" "0 0 29 2 *"

Strict mode (exit 1 on warnings)

python3 scripts/cron_check.py lint --strict "0 0 31 4 *"

Output Formats

python3 scripts/cron_check.py -f json explain "0 9 * * 1-5"
python3 scripts/cron_check.py -f markdown validate --lint "*/5 * * * *"

Supported Syntax

| Feature | Example | Description | |---------|---------|-------------| | Wildcard | * | Every value | | Specific | 5 | Exact value | | Range | 1-5 | Values 1 through 5 | | List | 1,3,5 | Values 1, 3, and 5 | | Step | */15 | Every 15th value | | Range+Step | 1-30/2 | Odd values 1-30 | | Names | mon-fri | Day/month names | | Shortcuts | @daily | Predefined schedules |

Shortcuts

| Shortcut | Equivalent | Meaning | |----------|-----------|---------| | @yearly | 0 0 1 1 * | Once a year | | @monthly | 0 0 1 * * | First of month | | @weekly | 0 0 * * 0 | Every Sunday | | @daily | 0 0 * * * | Every midnight | | @hourly | 0 * * * * | Every hour |

Lint Checks

| Check | Level | Description | |-------|-------|-------------| | Every-minute | Warning | * * * * * runs 1440 times/day | | Day 31 in short months | Warning | Apr, Jun, Sep, Nov have 30 days | | Feb 29-31 | Warning | Only runs in leap years (29) or never | | DOM + DOW conflict | Info | Both specified = OR logic | | High frequency | Info | More than 288 runs/day |