{
  "schemaVersion": "1.0",
  "item": {
    "slug": "cron-scheduler",
    "name": "Cron Scheduler",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/picaye/cron-scheduler",
    "canonicalUrl": "https://clawhub.ai/picaye/cron-scheduler",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/cron-scheduler",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=cron-scheduler",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/cron-scheduler"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/cron-scheduler",
    "agentPageUrl": "https://openagent3.xyz/skills/cron-scheduler/agent",
    "manifestUrl": "https://openagent3.xyz/skills/cron-scheduler/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/cron-scheduler/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Cron Scheduler",
        "body": "Manage scheduled tasks and automation on your system using cron.\n\nCategory: automation, productivity\nAPI Key Required: No"
      },
      {
        "title": "What It Does",
        "body": "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."
      },
      {
        "title": "List all cron jobs",
        "body": "echo \"=== User crontab ===\"\ncrontab -l 2>/dev/null || echo \"(empty)\"\necho \"\"\necho \"=== System cron ===\"\nls /etc/cron.d/ 2>/dev/null\necho \"\"\necho \"=== Cron directories ===\"\necho \"Hourly:  $(ls /etc/cron.hourly/ 2>/dev/null | wc -l) jobs\"\necho \"Daily:   $(ls /etc/cron.daily/ 2>/dev/null | wc -l) jobs\"\necho \"Weekly:  $(ls /etc/cron.weekly/ 2>/dev/null | wc -l) jobs\"\necho \"Monthly: $(ls /etc/cron.monthly/ 2>/dev/null | wc -l) jobs\""
      },
      {
        "title": "Add a cron job",
        "body": "# Add to user crontab\n(crontab -l 2>/dev/null; echo \"SCHEDULE COMMAND\") | crontab -\n\n# Common schedules:\n# Every minute:        * * * * *\n# Every 5 minutes:     */5 * * * *\n# Every hour:          0 * * * *\n# Every day at 2am:    0 2 * * *\n# Every Monday 9am:    0 9 * * 1\n# Every 1st of month:  0 0 1 * *\n# Weekdays at 8am:     0 8 * * 1-5"
      },
      {
        "title": "Remove a cron job",
        "body": "# Edit crontab interactively\ncrontab -e\n\n# Or remove a specific line\ncrontab -l | grep -v \"PATTERN_TO_REMOVE\" | crontab -"
      },
      {
        "title": "Check cron logs",
        "body": "# Recent cron activity\ngrep CRON /var/log/syslog | tail -20\n\n# Or on systems using journald\njournalctl -u cron --since \"1 hour ago\" --no-pager | tail -20"
      },
      {
        "title": "Test a cron command",
        "body": "# Run the command manually first to make sure it works\nCOMMAND_HERE\n\n# Check it produces expected output\necho \"Exit code: $?\""
      },
      {
        "title": "Cron syntax reference",
        "body": "┌───────────── minute (0-59)\n│ ┌───────────── hour (0-23)\n│ │ ┌───────────── day of month (1-31)\n│ │ │ ┌───────────── month (1-12)\n│ │ │ │ ┌───────────── day of week (0-7, 0 and 7 = Sunday)\n│ │ │ │ │\n* * * * * command"
      },
      {
        "title": "Common patterns",
        "body": "# Disk space alert daily at 8am\n0 8 * * * df -h / | awk 'NR==2 && $5+0 > 80 {print \"Disk alert: \" $5 \" used\"}' | mail -s \"Disk Warning\" you@email.com\n\n# Clean /tmp weekly\n0 3 * * 0 find /tmp -type f -mtime +7 -delete\n\n# Backup database nightly\n0 2 * * * pg_dump mydb > /backups/db_$(date +\\%Y\\%m\\%d).sql\n\n# Restart a service if it crashes (every 5 min check)\n*/5 * * * * systemctl is-active myservice || systemctl restart myservice\n\n# Log system stats every 15 minutes\n*/15 * * * * echo \"$(date): $(uptime)\" >> /var/log/system-stats.log"
      },
      {
        "title": "Environment variables in cron",
        "body": "# Cron runs with minimal environment. Set what you need:\n(crontab -l 2>/dev/null; echo \"PATH=/usr/local/bin:/usr/bin:/bin\nSHELL=/bin/bash\n0 2 * * * /home/user/backup.sh >> /var/log/backup.log 2>&1\") | crontab -"
      },
      {
        "title": "Redirect output (important!)",
        "body": "# Log output\n* * * * * command >> /var/log/myjob.log 2>&1\n\n# Discard output\n* * * * * command > /dev/null 2>&1\n\n# Email output (if mail is configured)\nMAILTO=you@email.com\n0 8 * * * command"
      },
      {
        "title": "Examples",
        "body": "User: \"Run my backup script every night at 2am\"\n→ (crontab -l 2>/dev/null; echo \"0 2 * * * /home/user/backup.sh >> /var/log/backup.log 2>&1\") | crontab -\n\nUser: \"Check disk space every hour and alert me if it's over 80%\"\n→ Create a check script + cron job\n\nUser: \"What scheduled tasks are running?\"\n→ List all crontabs and system cron directories\n\nUser: \"Stop the daily cleanup job\"\n→ Find and remove the specific cron entry"
      },
      {
        "title": "Constraints",
        "body": "Cron runs with minimal PATH — use absolute paths for commands\nAlways redirect output (>> logfile 2>&1) or cron fills up mail spool\nCron uses the system timezone — check with timedatectl\nMinimum resolution is 1 minute — for sub-minute, use a loop in a script\nUser crontabs don't survive user deletion\nTest commands manually before scheduling"
      }
    ],
    "body": "Cron Scheduler\n\nManage scheduled tasks and automation on your system using cron.\n\nCategory: automation, productivity API Key Required: No\n\nWhat It Does\n\nCreate, 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.\n\nAgent Commands\nList all cron jobs\necho \"=== User crontab ===\"\ncrontab -l 2>/dev/null || echo \"(empty)\"\necho \"\"\necho \"=== System cron ===\"\nls /etc/cron.d/ 2>/dev/null\necho \"\"\necho \"=== Cron directories ===\"\necho \"Hourly:  $(ls /etc/cron.hourly/ 2>/dev/null | wc -l) jobs\"\necho \"Daily:   $(ls /etc/cron.daily/ 2>/dev/null | wc -l) jobs\"\necho \"Weekly:  $(ls /etc/cron.weekly/ 2>/dev/null | wc -l) jobs\"\necho \"Monthly: $(ls /etc/cron.monthly/ 2>/dev/null | wc -l) jobs\"\n\nAdd a cron job\n# Add to user crontab\n(crontab -l 2>/dev/null; echo \"SCHEDULE COMMAND\") | crontab -\n\n# Common schedules:\n# Every minute:        * * * * *\n# Every 5 minutes:     */5 * * * *\n# Every hour:          0 * * * *\n# Every day at 2am:    0 2 * * *\n# Every Monday 9am:    0 9 * * 1\n# Every 1st of month:  0 0 1 * *\n# Weekdays at 8am:     0 8 * * 1-5\n\nRemove a cron job\n# Edit crontab interactively\ncrontab -e\n\n# Or remove a specific line\ncrontab -l | grep -v \"PATTERN_TO_REMOVE\" | crontab -\n\nCheck cron logs\n# Recent cron activity\ngrep CRON /var/log/syslog | tail -20\n\n# Or on systems using journald\njournalctl -u cron --since \"1 hour ago\" --no-pager | tail -20\n\nTest a cron command\n# Run the command manually first to make sure it works\nCOMMAND_HERE\n\n# Check it produces expected output\necho \"Exit code: $?\"\n\nCron syntax reference\n┌───────────── minute (0-59)\n│ ┌───────────── hour (0-23)\n│ │ ┌───────────── day of month (1-31)\n│ │ │ ┌───────────── month (1-12)\n│ │ │ │ ┌───────────── day of week (0-7, 0 and 7 = Sunday)\n│ │ │ │ │\n* * * * * command\n\nCommon patterns\n# Disk space alert daily at 8am\n0 8 * * * df -h / | awk 'NR==2 && $5+0 > 80 {print \"Disk alert: \" $5 \" used\"}' | mail -s \"Disk Warning\" you@email.com\n\n# Clean /tmp weekly\n0 3 * * 0 find /tmp -type f -mtime +7 -delete\n\n# Backup database nightly\n0 2 * * * pg_dump mydb > /backups/db_$(date +\\%Y\\%m\\%d).sql\n\n# Restart a service if it crashes (every 5 min check)\n*/5 * * * * systemctl is-active myservice || systemctl restart myservice\n\n# Log system stats every 15 minutes\n*/15 * * * * echo \"$(date): $(uptime)\" >> /var/log/system-stats.log\n\nEnvironment variables in cron\n# Cron runs with minimal environment. Set what you need:\n(crontab -l 2>/dev/null; echo \"PATH=/usr/local/bin:/usr/bin:/bin\nSHELL=/bin/bash\n0 2 * * * /home/user/backup.sh >> /var/log/backup.log 2>&1\") | crontab -\n\nRedirect output (important!)\n# Log output\n* * * * * command >> /var/log/myjob.log 2>&1\n\n# Discard output\n* * * * * command > /dev/null 2>&1\n\n# Email output (if mail is configured)\nMAILTO=you@email.com\n0 8 * * * command\n\nExamples\n\nUser: \"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 -\n\nUser: \"Check disk space every hour and alert me if it's over 80%\" → Create a check script + cron job\n\nUser: \"What scheduled tasks are running?\" → List all crontabs and system cron directories\n\nUser: \"Stop the daily cleanup job\" → Find and remove the specific cron entry\n\nConstraints\nCron runs with minimal PATH — use absolute paths for commands\nAlways redirect output (>> logfile 2>&1) or cron fills up mail spool\nCron uses the system timezone — check with timedatectl\nMinimum resolution is 1 minute — for sub-minute, use a loop in a script\nUser crontabs don't survive user deletion\nTest commands manually before scheduling"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/picaye/cron-scheduler",
    "publisherUrl": "https://clawhub.ai/picaye/cron-scheduler",
    "owner": "picaye",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/cron-scheduler",
    "downloadUrl": "https://openagent3.xyz/downloads/cron-scheduler",
    "agentUrl": "https://openagent3.xyz/skills/cron-scheduler/agent",
    "manifestUrl": "https://openagent3.xyz/skills/cron-scheduler/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/cron-scheduler/agent.md"
  }
}