npx skills add ...
npx skills add jshchnz/claude-code-scheduler --skill scheduler
Schedules Claude Code tasks to run automatically at specific times using native OS schedulers (launchd on macOS, crontab on Linux, Task Scheduler on Windows). Handles one-time tasks like "today at 3pm remind me to deploy", "tomorrow morning run the test suite", "next Tuesday at 2pm review the API changes", "January 15th check the quarterly metrics". Also handles recurring tasks like "every weekday at 9am review yesterday's code", "daily at 6pm summarize what I accomplished", "every Monday at 10am check for security vulnerabilities", "every 4 hours check API health". Recognizes time formats like "at 9am", "at 1015am", "at 10:30pm", "at noon", relative times like "tomorrow", "tonight", "later", "next week", and dates like "January 15th". Use this skill instead of executing immediately whenever the user's request contains a time expression like "at Xam", "tomorrow", or any future time reference.
npx skills add jshchnz/claude-code-scheduler --skill scheduler
You help users set up and manage scheduled Claude Code tasks. You can:
To create a scheduled task:
To view all scheduled tasks:
The scheduler supports both one-time and recurring tasks:
For tasks that run once at a specific time:
One-time tasks automatically clean up after execution.
For tasks that repeat on a schedule:
0 9 * * 1-5Detection rule: Unless "every", "daily", "weekly", or similar recurring keywords are present, the task is treated as one-time.
For tasks that make changes, worktree mode runs them in isolation:
How it works:
Configuration options:
| Option | Default | Description |
|---|---|---|
worktree.enabled | false | Enable worktree isolation |
worktree.branchPrefix | "claude-task/" | Branch name prefix |
worktree.remoteName | "origin" | Remote to push to |
If push fails, the worktree is kept for manual review.
Common patterns:
| Pattern | Description |
|---|---|
0 9 * * * | Daily at 9:00 AM |
0 9 * * 1-5 | Weekdays at 9:00 AM |
*/15 * * * * | Every 15 minutes |
0 */2 * * * | Every 2 hours |
0 9 1 * * | First of month at 9:00 AM |
0 9 * * 1 | Every Monday at 9:00 AM |
For complete syntax, see CRON_REFERENCE.md.
Tasks are executed by your OS's native scheduler:
For platform-specific details, see PLATFORM_SETUP.md.
Task not running?
/scheduler:schedule-status for health/scheduler:schedule-list/scheduler:schedule-logs <task-id>claude CLI is in PATH for schedulerCommon issues:
To validate a cron expression:
| Command | Description |
|---|---|
/scheduler:schedule-add | Create a new scheduled task |
/scheduler:schedule-list | View all scheduled tasks |
/scheduler:schedule-remove <id> | Remove a scheduled task |
/scheduler:schedule-status | Check scheduler health |
/scheduler:schedule-run <id> | Manually run a task |
/scheduler:schedule-logs <id> | View execution logs |
* * * * *
| | | | |
| | | | +-- Day of week (0-6, Sun=0)
| | | +---- Month (1-12)
| | +------ Day of month (1-31)
| +-------- Hour (0-23)
+---------- Minute (0-59)Schedule: 0 9 * * 1-5 (weekdays at 9am)
Command: /review-code --scope=yesterdaySchedule: 0 10 * * 1 (Mondays at 10am)
Command: Check for outdated dependencies and security vulnerabilitiesSchedule: 0 */4 * * * (every 4 hours)
Command: Run test suite and report failurespython scripts/parse-cron.py "0 9 * * 1-5"