Cron Scheduler
Create, list, modify, and remove scheduled cron jobs to automate system tasks using simplified cron syntax and manage output logging.
picaye
@picaye
What This Skill Does
Creates, lists, modifies, and removes cron jobs on Linux systems using simplified cron syntax. Handles output logging, environment variables, and common scheduling patterns through agent commands.
Replaces manually editing crontab files and remembering cron syntax by providing a structured interface to manage all scheduled tasks.
When to Use It
- Schedule a nightly database backup script
- Set up hourly disk space monitoring with email alerts
- Add a weekly cleanup job to delete old temporary files
- List all current cron jobs across user and system crontabs
- Remove a specific cron entry that is no longer needed
- Test a command manually before adding it to the schedule
Install
$ openclaw skills install @picaye/cron-schedulerCron Scheduler
Manage scheduled tasks and automation on your system using cron.
Category: automation, productivity API Key Required: No
What It Does
Create, manage, and monitor scheduled tasks (cron jobs) on your machine. Automate backups, health checks, cleanup scripts, API calls, notifications — anything that should run on a schedule. Your agent handles the cron syntax so you don't have to.
Agent Commands
List all cron jobs
echo "=== User crontab ==="
crontab -l 2>/dev/null || echo "(empty)"
echo ""
echo "=== System cron ==="
ls /etc/cron.d/ 2>/dev/null
echo ""
echo "=== Cron directories ==="
echo "Hourly: $(ls /etc/cron.hourly/ 2>/dev/null | wc -l) jobs"
echo "Daily: $(ls /etc/cron.daily/ 2>/dev/null | wc -l) jobs"
echo "Weekly: $(ls /etc/cron.weekly/ 2>/dev/null | wc -l) jobs"
echo "Monthly: $(ls /etc/cron.monthly/ 2>/dev/null | wc -l) jobs"
Add a cron job
# Add to user crontab
(crontab -l 2>/dev/null; echo "SCHEDULE COMMAND") | crontab -
# Common schedules:
# Every minute: * * * * *
# Every 5 minutes: */5 * * * *
# Every hour: 0 * * * *
# Every day at 2am: 0 2 * * *
# Every Monday 9am: 0 9 * * 1
# Every 1st of month: 0 0 1 * *
# Weekdays at 8am: 0 8 * * 1-5
Remove a cron job
# Edit crontab interactively
crontab -e
# Or remove a specific line
crontab -l | grep -v "PATTERN_TO_REMOVE" | crontab -
Check cron logs
# Recent cron activity
grep CRON /var/log/syslog | tail -20
# Or on systems using journald
journalctl -u cron --since "1 hour ago" --no-pager | tail -20
Test a cron command
# Run the command manually first to make sure it works
COMMAND_HERE
# Check it produces expected output
echo "Exit code: $?"
Cron syntax reference
┌───────────── minute (0-59)
│ ┌───────────── hour (0-23)
│ │ ┌───────────── day of month (1-31)
│ │ │ ┌───────────── month (1-12)
│ │ │ │ ┌───────────── day of week (0-7, 0 and 7 = Sunday)
│ │ │ │ │
* * * * * command
Common patterns
# Disk space alert daily at 8am
0 8 * * * df -h / | awk 'NR==2 && $5+0 > 80 {print "Disk alert: " $5 " used"}' | mail -s "Disk Warning" you@email.com
# Clean /tmp weekly
0 3 * * 0 find /tmp -type f -mtime +7 -delete
# Backup database nightly
0 2 * * * pg_dump mydb > /backups/db_$(date +\%Y\%m\%d).sql
# Restart a service if it crashes (every 5 min check)
*/5 * * * * systemctl is-active myservice || systemctl restart myservice
# Log system stats every 15 minutes
*/15 * * * * echo "$(date): $(uptime)" >> /var/log/system-stats.log
Environment variables in cron
# Cron runs with minimal environment. Set what you need:
(crontab -l 2>/dev/null; echo "PATH=/usr/local/bin:/usr/bin:/bin
SHELL=/bin/bash
0 2 * * * /home/user/backup.sh >> /var/log/backup.log 2>&1") | crontab -
Redirect output (important!)
# Log output
* * * * * command >> /var/log/myjob.log 2>&1
# Discard output
* * * * * command > /dev/null 2>&1
# Email output (if mail is configured)
MAILTO=you@email.com
0 8 * * * command
Examples
User: "Run my backup script every night at 2am"
→ (crontab -l 2>/dev/null; echo "0 2 * * * /home/user/backup.sh >> /var/log/backup.log 2>&1") | crontab -
User: "Check disk space every hour and alert me if it's over 80%" → Create a check script + cron job
User: "What scheduled tasks are running?" → List all crontabs and system cron directories
User: "Stop the daily cleanup job" → Find and remove the specific cron entry
Constraints
- Cron runs with minimal PATH — use absolute paths for commands
- Always redirect output (>> logfile 2>&1) or cron fills up mail spool
- Cron uses the system timezone — check with
timedatectl - Minimum resolution is 1 minute — for sub-minute, use a loop in a script
- User crontabs don't survive user deletion
- Test commands manually before scheduling
Top skills in this category
Agent Browser
@matrixyHeadless browser automation CLI optimized for AI agents with accessibility tree snapshots and ref-based element selection
Auto-Updater Skill
@maximepradesAutomatically update Clawdbot and all installed skills once daily. Runs via cron, checks for updates, applies them, and messages the user with a summary of what changed.
Free Ride - Unlimited free AI
@shaivpidadiManages free AI models from OpenRouter for OpenClaw. Automatically ranks models by quality, configures fallbacks for rate-limit handling, and updates opencla...
Automation Workflows
@jk-0001Design and implement automation workflows to save time and scale operations as a solopreneur. Use when identifying repetitive tasks to automate, building workflows across tools, setting up triggers and actions, or optimizing existing automations. Covers automation opportunity identification, workflow design, tool selection (Zapier, Make, n8n), testing, and maintenance. Trigger on "automate", "automation", "workflow automation", "save time", "reduce manual work", "automate my business", "no-code automation".
Desktop Control
@matagulAdvanced desktop automation with mouse, keyboard, and screen control