
Scheduler
Author correct cron expressions when scheduling recurring Claude Code or agent jobs on a machine or CI runner.
Overview
scheduler is an agent skill most often used in Operate (also Build agent-tooling) that teaches five-field cron syntax and common patterns for recurring scheduled jobs.
Install
npx skills add https://github.com/jshchnz/claude-code-scheduler --skill schedulerWhat is this skill?
- Five-field cron format with minute, hour, day-of-month, month, and day-of-week ranges
- Special characters *, comma lists, hyphen ranges, and slash step intervals explained
- Common pattern tables: every N minutes, hourly, daily, weekday 9 AM, and business-hour windows
- Field reference table for valid ranges and allowed operators per field
- Copy-paste patterns for */5, */15, 0 9-17, and 0 9 * * 1-5 style schedules
- Five cron fields: minute, hour, day-of-month, month, day-of-week
Adoption & trust: 521 installs on skills.sh; 500 GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need a reliable cron schedule for automated agent runs but keep confusing fields, steps, and weekday numbering.
Who is it for?
Solo builders setting up Claude Code Scheduler, cron on a VPS, or CI timed workflows who want syntax checked in-chat.
Skip if: Teams needing full job orchestration (retry policies, DAGs, observability) without also using a workflow engine.
When should I use this skill?
Use when defining or debugging cron schedules for the Claude Code Scheduler skill or any timed automation the user describes in natural language.
What do I get? / Deliverables
You produce validated cron strings matching plain-English schedules like every 15 minutes or weekdays at 9 AM.
- Validated cron expression string
- Natural-language mapping of pattern to schedule
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Primary shelf is Operate because cron schedules production and maintenance automation; builders also touch it during Build when embedding timers. Infra subphase covers host-level schedulers (cron, systemd timers) that keep agents and scripts running on a cadence.
Where it fits
Translate 'run health check every 30 minutes' into */30 * * * * on your VPS crontab.
Fill the schedule field in Claude Code Scheduler config for nightly doc regeneration at 0 2 * * *.
Stagger digest jobs with 0 9-17/2 * * 1-5 to avoid peak-hour load spikes.
How it compares
Syntax reference for cron strings—not a hosted scheduler product or Kubernetes CronJob manifest generator.
Common Questions / FAQ
Who is scheduler for?
Developers automating Claude Code or shell tasks on a schedule who need quick, accurate cron expressions without opening a separate cheatsheet.
When should I use scheduler?
In Operate when tuning production cron jobs, and in Build when embedding schedule strings into scheduler config, GitHub Actions, or agent-tooling repos.
Is scheduler safe to install?
It is documentation-only; still review Security Audits on this page and avoid letting agents edit system crontab without your explicit approval.
SKILL.md
READMESKILL.md - Scheduler
# Cron Expression Reference Complete guide to cron expression syntax. ## Basic Format ``` ┌───────────── minute (0-59) │ ┌───────────── hour (0-23) │ │ ┌───────────── day of month (1-31) │ │ │ ┌───────────── month (1-12) │ │ │ │ ┌───────────── day of week (0-6, Sunday=0) │ │ │ │ │ * * * * * ``` ## Field Values | Field | Range | Special Characters | |-------|-------|-------------------| | Minute | 0-59 | * , - / | | Hour | 0-23 | * , - / | | Day of Month | 1-31 | * , - / | | Month | 1-12 | * , - / | | Day of Week | 0-6 (Sun=0) | * , - / | ## Special Characters ### Asterisk (*) Matches all values. - `* * * * *` = Every minute ### Comma (,) List of values. - `0 9,17 * * *` = At 9:00 AM and 5:00 PM ### Hyphen (-) Range of values. - `0 9-17 * * *` = Every hour from 9 AM to 5 PM - `0 9 * * 1-5` = Weekdays at 9:00 AM ### Slash (/) Step values. - `*/15 * * * *` = Every 15 minutes - `0 */2 * * *` = Every 2 hours - `0 9-17/2 * * *` = Every 2 hours from 9 AM to 5 PM ## Common Patterns ### Time-based | Pattern | Description | |---------|-------------| | `* * * * *` | Every minute | | `*/5 * * * *` | Every 5 minutes | | `*/15 * * * *` | Every 15 minutes | | `*/30 * * * *` | Every 30 minutes | | `0 * * * *` | Every hour (at minute 0) | | `0 */2 * * *` | Every 2 hours | | `0 */4 * * *` | Every 4 hours | | `0 */6 * * *` | Every 6 hours | | `0 */12 * * *` | Every 12 hours | ### Daily | Pattern | Description | |---------|-------------| | `0 0 * * *` | Daily at midnight | | `0 6 * * *` | Daily at 6:00 AM | | `0 9 * * *` | Daily at 9:00 AM | | `0 12 * * *` | Daily at noon | | `0 18 * * *` | Daily at 6:00 PM | | `0 23 * * *` | Daily at 11:00 PM | | `30 9 * * *` | Daily at 9:30 AM | ### Weekdays/Weekends | Pattern | Description | |---------|-------------| | `0 9 * * 1-5` | Weekdays at 9:00 AM | | `0 9 * * 0,6` | Weekends at 9:00 AM | | `0 9 * * 1` | Every Monday at 9:00 AM | | `0 9 * * 5` | Every Friday at 9:00 AM | | `0 17 * * 5` | Every Friday at 5:00 PM | ### Monthly | Pattern | Description | |---------|-------------| | `0 9 1 * *` | First day of month at 9:00 AM | | `0 9 15 * *` | 15th of month at 9:00 AM | | `0 9 1,15 * *` | 1st and 15th at 9:00 AM | | `0 0 1 * *` | First day of month at midnight | ### Yearly | Pattern | Description | |---------|-------------| | `0 0 1 1 *` | January 1st at midnight | | `0 9 1 1 *` | January 1st at 9:00 AM | | `0 9 1 */3 *` | First day of quarter at 9:00 AM | ## Day of Week Values | Value | Day | |-------|-----| | 0 | Sunday | | 1 | Monday | | 2 | Tuesday | | 3 | Wednesday | | 4 | Thursday | | 5 | Friday | | 6 | Saturday | | 7 | Sunday (alternative) | ## Month Values | Value | Month | |-------|-------| | 1 | January | | 2 | February | | 3 | March | | 4 | April | | 5 | May | | 6 | June | | 7 | July | | 8 | August | | 9 | September | | 10 | October | | 11 | November | | 12 | December | ## Complex Examples ### Business hours ``` 0 9-17 * * 1-5 ``` Every hour from 9 AM to 5 PM on weekdays. ### Twice daily on weekdays ``` 0 9,17 * * 1-5 ``` At 9:00 AM and 5:00 PM, Monday through Friday. ### Every 30 minutes during business hours ``` */30 9-17 * * 1-5 ``` ### First Monday of each month ``` 0 9 1-7 * 1 ``` At 9:00 AM on the first Monday (day 1-7 AND Monday). ### Last day of month (approximate) ``` 0 9 28-31 * * ``` At 9:00 AM on days 28-31 (runs multiple times in long months). ## Natural Language Conversion | Natural Language | Cron Expression | |-----------------|-----------------| | "every minute" | `* * * * *` | | "every hour" | `0 * * * *` | | "every day at 9am" | `0 9 * * *` | | "every weekday at 9am" | `0 9 * * 1-5` | | "every Monday at 10am" | `0 10 * * 1` | | "every 15 minutes" | `*/15 * * * *` | | "twice daily" | `0 9,17 * * *` | | "weekly" | `0 9 * * 1` | | "monthly" | `0 9 1 * *` | ## Validation Use the helper script to validate expressions: ```bash python scripts/parse-cron.py "0 9 * * 1-5" ``` Or use online tools: - [crontab.guru](https://crontab.guru/) - [cronitor.io/