schedule-history
View execution history for all scheduled tasks with interactive selection
Create a new scheduled task for recurring Claude Code execution (project)
> /plugin marketplace add jshchnz/claude-code-scheduler > /plugin install scheduler@claude-scheduler
How it fires
How this command gets triggered: by you, by Claude, or both.
/schedule-addContext preview
What this command does when you run it.
Create a new scheduled task for recurring Claude Code execution (project)
description: Create a new scheduled task for recurring Claude Code execution (project) allowed-tools: Read, Write, Bash(cat:*), Bash(launchctl:*), Bash(crontab:*), Bash(schtasks:*)
Help the user create a new scheduled task with proper configuration.
1. **Gather Task Information**
2. **Detect Schedule Type: One-Time vs Recurring**
**One-time indicators** (default to one-time):
**Recurring indicators**:
**Rule:** Unless "every", "daily", "weekly", "monthly", or similar recurring keywords are present, assume **one-time**.
3. **Configure Execution**
4. **Validate and Confirm**
5. **Create Task**
Filename: `com.claude.schedule.<id>.plist`
**IMPORTANT:**
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.claude.schedule.<id></string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>-c</string>
<string>cd "/path/to/project" && claude -p "your prompt" --dangerously-skip-permissions</string>
</array>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/usr/local/bin:/usr/bin:/bin:/opt/homebrew/bin:$HOME/.local/bin</string>
</dict>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key><integer>10</integer>
<key>Minute</key><integer>0</integer>
</dict>
<key>StandardOutPath</key>
<string>$HOME/.claude/logs/<id>.log</string>
<key>StandardErrorPath</key>
<string>$HOME/.claude/logs/<id>.error.log</string>
<key>RunAtLoad</key>
<false/>
</dict>
</plist>Filename: `com.claude.schedule.once.<id>.plist`
**IMPORTANT:**
1. Calculate unix timestamp for target time: `date -j -f "%Y-%m-%d %H:%M" "2026-01-08 15:25" +%s` 2. Use `StartInterval: 60` to poll every minute 3. Use `RunAtLoad: true` to check immediately 4. Script compares timestamps, runs task, then self-cleans
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.claude.schedule.once.<id></string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>-c</string>
<string>TARGET=<unix_timestamp>; NOW=$(date +%s); if [ $NOW -ge $TARGET ]; then cd "/path/to/project" && claude -p "your prompt" --dangerously-skip-permissions >> "$HOME/.claude/logs/once.<id>.log" 2>&1; rm "$HOME/Library/LaunchAgents/com.claude.schedule.once.<id>.plist" 2>/dev/null; launchctl bootout gui/$(id -u)/com.claude.schedule.once.<id> 2>/dev/null; fi</string>
</array>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/usr/local/bin:/usr/bin:/bin:/opt/homebrew/bin:$HOME/.local/bin</string>
</dict>
<key>StartInterval</key>
<integer>60</integer>
<key>RunAtLoad</key>
<true/>
<key>StandardOutPath</key>
<string>/tmp/claude-schedule-once.<id>.out</string>
<key>StandardErrorPath</key>
<string>/tmp/claude-schedule-once.<id>.err</string>
</dict>
</plist>**How it works:**
* * * * * | | | | | | | | | +-- Day of week (0-6, Sun=0) | | | +---- Month (1-12) | | +------ Day of month (1-31) | +-------- Hour (0-23) +---------- Minute (0-59)
**Common patterns:**
-
Put Claude on autopilot. Schedule code reviews, security audits, and anything else - Claude Code runs them automatically, even while you sleep.
Repo: jshchnz/claude-code-scheduler
View execution history for all scheduled tasks with interactive selection
List all scheduled tasks with their status and next run times (project)
View execution logs for scheduled tasks
Remove a scheduled task by ID or name
Manually run a scheduled task immediately
Check the health and status of the scheduler system