{
  "schemaVersion": "1.0",
  "item": {
    "slug": "ez-cronjob",
    "name": "EZ Cronjob",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/ProMadGenius/ez-cronjob",
    "canonicalUrl": "https://clawhub.ai/ProMadGenius/ez-cronjob",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/ez-cronjob",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ez-cronjob",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.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/ez-cronjob"
    },
    "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/ez-cronjob",
    "agentPageUrl": "https://openagent3.xyz/skills/ez-cronjob/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ez-cronjob/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ez-cronjob/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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Cron Job Reliability Guide",
        "body": "A comprehensive guide to diagnosing and fixing cron job issues in Clawdbot/Moltbot. This skill documents common failure patterns and their solutions, learned through production debugging."
      },
      {
        "title": "When to Use This Skill",
        "body": "Use this skill when:\n\nScheduled messages aren't being delivered\nCron jobs show \"error\" status\nMessages arrive at wrong times (timezone issues)\nThe agent times out when using the cron tool\nFallback models ignore instructions and call tools unexpectedly"
      },
      {
        "title": "The Golden Rule",
        "body": "Always use these flags together for reliable delivery:\n\nclawdbot cron add \\\n  --name \"my-job\" \\\n  --cron \"0 9 * * 1-5\" \\\n  --tz \"America/New_York\" \\\n  --session isolated \\\n  --message \"[INSTRUCTION: DO NOT USE ANY TOOLS] Your prompt here\" \\\n  --deliver --channel telegram --to \"CHAT_ID\" \\\n  --best-effort-deliver"
      },
      {
        "title": "Essential Flags Explained",
        "body": "FlagPurposeWhy It Matters--session isolatedCreates dedicated sessionPrevents message loss in busy conversations--tz \"TIMEZONE\"Sets explicit timezoneAvoids UTC confusion--deliverSends to channelRequired for Telegram/WhatsApp--best-effort-deliverDon't fail on delivery errorGraceful degradation"
      },
      {
        "title": "Symptoms",
        "body": "Agent times out (10s) when calling cron list or cron add\nError: \"Tool execution timed out\"\nGateway logs show 80s+ response times"
      },
      {
        "title": "Root Cause",
        "body": "The internal cron tool creates a deadlock between the agent process and gateway."
      },
      {
        "title": "Solution",
        "body": "Never use the cron tool directly. Use exec (or bash) instead:\n\n# CORRECT - uses exec to bypass deadlock\nexec: clawdbot cron list\nexec: clawdbot cron add --name \"reminder\" --at \"+5m\" --message \"Hello\"\n\n# INCORRECT - causes timeout\ncron list        # DO NOT USE\ncron add ...     # DO NOT USE"
      },
      {
        "title": "For Agents",
        "body": "If you're an AI agent reading this: when the user asks you to manage cron jobs, always use the exec/bash tool to run clawdbot cron commands. Never invoke the cron tool directly."
      },
      {
        "title": "Symptoms",
        "body": "Job shows \"ok\" status but message never arrives\nWorks in testing but fails on schedule\nIntermittent delivery"
      },
      {
        "title": "Root Cause",
        "body": "Using --session main or --system-event causes messages to get lost when there's an active conversation in the main session."
      },
      {
        "title": "Solution",
        "body": "Always use --session isolated:\n\n# CORRECT - isolated session, guaranteed delivery\nclawdbot cron add \\\n  --name \"daily-standup\" \\\n  --cron \"0 9 * * 1-5\" \\\n  --session isolated \\\n  --deliver --channel telegram --to \"-100XXXXXXXXXX\"\n\n# INCORRECT - messages can be lost\nclawdbot cron add \\\n  --name \"daily-standup\" \\\n  --session main \\\n  --system-event \\\n  ..."
      },
      {
        "title": "Verification",
        "body": "After creating a job, test it:\n\n# Run the job immediately to verify delivery\nclawdbot cron run <job-id>"
      },
      {
        "title": "Symptoms",
        "body": "Job runs 4-5 hours early or late\nSchedule shows correct time but execution is off\nWorks correctly sometimes, fails other times"
      },
      {
        "title": "Root Cause",
        "body": "Missing timezone specification defaults to UTC."
      },
      {
        "title": "Solution",
        "body": "Always specify timezone explicitly:\n\n# CORRECT - explicit timezone\nclawdbot cron add \\\n  --cron \"0 9 * * 1-5\" \\\n  --tz \"America/New_York\" \\\n  ...\n\n# INCORRECT - defaults to UTC\nclawdbot cron add \\\n  --cron \"0 9 * * 1-5\" \\\n  ..."
      },
      {
        "title": "Common Timezone IDs",
        "body": "RegionTimezone IDUS EasternAmerica/New_YorkUS PacificAmerica/Los_AngelesUKEurope/LondonCentral EuropeEurope/BerlinIndiaAsia/KolkataJapanAsia/TokyoAustralia EasternAustralia/SydneyBrazilAmerica/Sao_PauloBoliviaAmerica/La_Paz"
      },
      {
        "title": "Symptoms",
        "body": "Primary model works correctly\nWhen fallback activates, agent calls tools unexpectedly\nAgent tries to use exec, read, or other tools when it shouldn't"
      },
      {
        "title": "Root Cause",
        "body": "Some fallback models (especially smaller/faster ones) don't follow system instructions as strictly as primary models."
      },
      {
        "title": "Solution",
        "body": "Embed instructions directly in the message:\n\n# CORRECT - instruction embedded in message\nclawdbot cron add \\\n  --message \"[INSTRUCTION: DO NOT USE ANY TOOLS. Respond with text only.] \n  \n  Generate a motivational Monday message for the team.\"\n\n# INCORRECT - relies only on system prompt\nclawdbot cron add \\\n  --message \"Generate a motivational Monday message for the team.\""
      },
      {
        "title": "Robust Message Template",
        "body": "[INSTRUCTION: DO NOT USE ANY TOOLS. Write your response directly.]\n\nYour actual prompt here. Be specific about what you want."
      },
      {
        "title": "Symptoms",
        "body": "Job status shows \"error\"\nSubsequent runs also fail\nNo clear error message"
      },
      {
        "title": "Diagnosis",
        "body": "# Check job details\nclawdbot cron show <job-id>\n\n# Check recent logs\ntail -100 /tmp/clawdbot/clawdbot-$(date +%Y-%m-%d).log | grep -i cron\n\n# Check gateway errors\ntail -50 ~/.clawdbot/logs/gateway.err.log"
      },
      {
        "title": "Common Causes and Fixes",
        "body": "CauseFixModel quota exceededWait for quota reset or switch modelInvalid chat IDVerify channel ID with --toBot removed from groupRe-add bot to Telegram groupGateway not runningclawdbot gateway restart"
      },
      {
        "title": "Nuclear Option",
        "body": "If nothing works:\n\n# Remove the problematic job\nclawdbot cron rm <job-id>\n\n# Restart gateway\nclawdbot gateway restart\n\n# Recreate with correct flags\nclawdbot cron add ... (with all recommended flags)"
      },
      {
        "title": "View All Jobs",
        "body": "clawdbot cron list"
      },
      {
        "title": "Inspect Specific Job",
        "body": "clawdbot cron show <job-id>"
      },
      {
        "title": "Test Job Immediately",
        "body": "clawdbot cron run <job-id>"
      },
      {
        "title": "Check Logs",
        "body": "# Today's logs filtered for cron\ntail -200 /tmp/clawdbot/clawdbot-$(date +%Y-%m-%d).log | grep -i cron\n\n# Gateway errors\ntail -100 ~/.clawdbot/logs/gateway.err.log\n\n# Watch logs in real-time\ntail -f /tmp/clawdbot/clawdbot-$(date +%Y-%m-%d).log | grep --line-buffered cron"
      },
      {
        "title": "Restart Gateway",
        "body": "clawdbot gateway restart"
      },
      {
        "title": "Daily Standup Reminder (9 AM, Mon-Fri)",
        "body": "clawdbot cron add \\\n  --name \"daily-standup-9am\" \\\n  --cron \"0 9 * * 1-5\" \\\n  --tz \"America/New_York\" \\\n  --session isolated \\\n  --message \"[INSTRUCTION: DO NOT USE ANY TOOLS. Write directly.]\n\nGood morning team! Time for our daily standup.\n\nPlease share:\n1. What did you accomplish yesterday?\n2. What are you working on today?\n3. Any blockers?\n\n@alice @bob\" \\\n  --deliver --channel telegram --to \"-100XXXXXXXXXX\" \\\n  --best-effort-deliver"
      },
      {
        "title": "One-Shot Reminder (20 minutes from now)",
        "body": "clawdbot cron add \\\n  --name \"quick-reminder\" \\\n  --at \"+20m\" \\\n  --delete-after-run \\\n  --session isolated \\\n  --message \"[INSTRUCTION: DO NOT USE ANY TOOLS.]\n\nReminder: Your meeting starts in 10 minutes!\" \\\n  --deliver --channel telegram --to \"-100XXXXXXXXXX\" \\\n  --best-effort-deliver"
      },
      {
        "title": "Weekly Report (Friday 5 PM)",
        "body": "clawdbot cron add \\\n  --name \"weekly-report-friday\" \\\n  --cron \"0 17 * * 5\" \\\n  --tz \"America/New_York\" \\\n  --session isolated \\\n  --message \"[INSTRUCTION: DO NOT USE ANY TOOLS.]\n\nHappy Friday! Time to wrap up the week.\n\nPlease share your weekly highlights and any items carrying over to next week.\" \\\n  --deliver --channel telegram --to \"-100XXXXXXXXXX\" \\\n  --best-effort-deliver"
      },
      {
        "title": "Checklist for New Cron Jobs",
        "body": "Before creating any cron job, verify:\n\nUsing exec: clawdbot cron add (not the cron tool directly)\n --session isolated is set\n --tz \"YOUR_TIMEZONE\" is explicit\n --deliver --channel CHANNEL --to \"ID\" for message delivery\n --best-effort-deliver for graceful failures\n Message starts with [INSTRUCTION: DO NOT USE ANY TOOLS]\n Tested with clawdbot cron run <id> after creation"
      },
      {
        "title": "Related Resources",
        "body": "Clawdbot Cron Documentation\nTimezone Database\nCron Expression Generator\n\nSkill authored by Isaac Zarzuri. Based on production debugging experience with Clawdbot/Moltbot."
      }
    ],
    "body": "Cron Job Reliability Guide\n\nA comprehensive guide to diagnosing and fixing cron job issues in Clawdbot/Moltbot. This skill documents common failure patterns and their solutions, learned through production debugging.\n\nWhen to Use This Skill\n\nUse this skill when:\n\nScheduled messages aren't being delivered\nCron jobs show \"error\" status\nMessages arrive at wrong times (timezone issues)\nThe agent times out when using the cron tool\nFallback models ignore instructions and call tools unexpectedly\nQuick Reference\nThe Golden Rule\n\nAlways use these flags together for reliable delivery:\n\nclawdbot cron add \\\n  --name \"my-job\" \\\n  --cron \"0 9 * * 1-5\" \\\n  --tz \"America/New_York\" \\\n  --session isolated \\\n  --message \"[INSTRUCTION: DO NOT USE ANY TOOLS] Your prompt here\" \\\n  --deliver --channel telegram --to \"CHAT_ID\" \\\n  --best-effort-deliver\n\nEssential Flags Explained\nFlag\tPurpose\tWhy It Matters\n--session isolated\tCreates dedicated session\tPrevents message loss in busy conversations\n--tz \"TIMEZONE\"\tSets explicit timezone\tAvoids UTC confusion\n--deliver\tSends to channel\tRequired for Telegram/WhatsApp\n--best-effort-deliver\tDon't fail on delivery error\tGraceful degradation\nProblem 1: Internal cron Tool Deadlock\nSymptoms\nAgent times out (10s) when calling cron list or cron add\nError: \"Tool execution timed out\"\nGateway logs show 80s+ response times\nRoot Cause\n\nThe internal cron tool creates a deadlock between the agent process and gateway.\n\nSolution\n\nNever use the cron tool directly. Use exec (or bash) instead:\n\n# CORRECT - uses exec to bypass deadlock\nexec: clawdbot cron list\nexec: clawdbot cron add --name \"reminder\" --at \"+5m\" --message \"Hello\"\n\n# INCORRECT - causes timeout\ncron list        # DO NOT USE\ncron add ...     # DO NOT USE\n\nFor Agents\n\nIf you're an AI agent reading this: when the user asks you to manage cron jobs, always use the exec/bash tool to run clawdbot cron commands. Never invoke the cron tool directly.\n\nProblem 2: Messages Not Delivered\nSymptoms\nJob shows \"ok\" status but message never arrives\nWorks in testing but fails on schedule\nIntermittent delivery\nRoot Cause\n\nUsing --session main or --system-event causes messages to get lost when there's an active conversation in the main session.\n\nSolution\n\nAlways use --session isolated:\n\n# CORRECT - isolated session, guaranteed delivery\nclawdbot cron add \\\n  --name \"daily-standup\" \\\n  --cron \"0 9 * * 1-5\" \\\n  --session isolated \\\n  --deliver --channel telegram --to \"-100XXXXXXXXXX\"\n\n# INCORRECT - messages can be lost\nclawdbot cron add \\\n  --name \"daily-standup\" \\\n  --session main \\\n  --system-event \\\n  ...\n\nVerification\n\nAfter creating a job, test it:\n\n# Run the job immediately to verify delivery\nclawdbot cron run <job-id>\n\nProblem 3: Wrong Execution Time\nSymptoms\nJob runs 4-5 hours early or late\nSchedule shows correct time but execution is off\nWorks correctly sometimes, fails other times\nRoot Cause\n\nMissing timezone specification defaults to UTC.\n\nSolution\n\nAlways specify timezone explicitly:\n\n# CORRECT - explicit timezone\nclawdbot cron add \\\n  --cron \"0 9 * * 1-5\" \\\n  --tz \"America/New_York\" \\\n  ...\n\n# INCORRECT - defaults to UTC\nclawdbot cron add \\\n  --cron \"0 9 * * 1-5\" \\\n  ...\n\nCommon Timezone IDs\nRegion\tTimezone ID\nUS Eastern\tAmerica/New_York\nUS Pacific\tAmerica/Los_Angeles\nUK\tEurope/London\nCentral Europe\tEurope/Berlin\nIndia\tAsia/Kolkata\nJapan\tAsia/Tokyo\nAustralia Eastern\tAustralia/Sydney\nBrazil\tAmerica/Sao_Paulo\nBolivia\tAmerica/La_Paz\nProblem 4: Fallback Models Ignore Instructions\nSymptoms\nPrimary model works correctly\nWhen fallback activates, agent calls tools unexpectedly\nAgent tries to use exec, read, or other tools when it shouldn't\nRoot Cause\n\nSome fallback models (especially smaller/faster ones) don't follow system instructions as strictly as primary models.\n\nSolution\n\nEmbed instructions directly in the message:\n\n# CORRECT - instruction embedded in message\nclawdbot cron add \\\n  --message \"[INSTRUCTION: DO NOT USE ANY TOOLS. Respond with text only.] \n  \n  Generate a motivational Monday message for the team.\"\n\n# INCORRECT - relies only on system prompt\nclawdbot cron add \\\n  --message \"Generate a motivational Monday message for the team.\"\n\nRobust Message Template\n[INSTRUCTION: DO NOT USE ANY TOOLS. Write your response directly.]\n\nYour actual prompt here. Be specific about what you want.\n\nProblem 5: Job Stuck in Error State\nSymptoms\nJob status shows \"error\"\nSubsequent runs also fail\nNo clear error message\nDiagnosis\n# Check job details\nclawdbot cron show <job-id>\n\n# Check recent logs\ntail -100 /tmp/clawdbot/clawdbot-$(date +%Y-%m-%d).log | grep -i cron\n\n# Check gateway errors\ntail -50 ~/.clawdbot/logs/gateway.err.log\n\nCommon Causes and Fixes\nCause\tFix\nModel quota exceeded\tWait for quota reset or switch model\nInvalid chat ID\tVerify channel ID with --to\nBot removed from group\tRe-add bot to Telegram group\nGateway not running\tclawdbot gateway restart\nNuclear Option\n\nIf nothing works:\n\n# Remove the problematic job\nclawdbot cron rm <job-id>\n\n# Restart gateway\nclawdbot gateway restart\n\n# Recreate with correct flags\nclawdbot cron add ... (with all recommended flags)\n\nDebugging Commands\nView All Jobs\nclawdbot cron list\n\nInspect Specific Job\nclawdbot cron show <job-id>\n\nTest Job Immediately\nclawdbot cron run <job-id>\n\nCheck Logs\n# Today's logs filtered for cron\ntail -200 /tmp/clawdbot/clawdbot-$(date +%Y-%m-%d).log | grep -i cron\n\n# Gateway errors\ntail -100 ~/.clawdbot/logs/gateway.err.log\n\n# Watch logs in real-time\ntail -f /tmp/clawdbot/clawdbot-$(date +%Y-%m-%d).log | grep --line-buffered cron\n\nRestart Gateway\nclawdbot gateway restart\n\nComplete Working Examples\nDaily Standup Reminder (9 AM, Mon-Fri)\nclawdbot cron add \\\n  --name \"daily-standup-9am\" \\\n  --cron \"0 9 * * 1-5\" \\\n  --tz \"America/New_York\" \\\n  --session isolated \\\n  --message \"[INSTRUCTION: DO NOT USE ANY TOOLS. Write directly.]\n\nGood morning team! Time for our daily standup.\n\nPlease share:\n1. What did you accomplish yesterday?\n2. What are you working on today?\n3. Any blockers?\n\n@alice @bob\" \\\n  --deliver --channel telegram --to \"-100XXXXXXXXXX\" \\\n  --best-effort-deliver\n\nOne-Shot Reminder (20 minutes from now)\nclawdbot cron add \\\n  --name \"quick-reminder\" \\\n  --at \"+20m\" \\\n  --delete-after-run \\\n  --session isolated \\\n  --message \"[INSTRUCTION: DO NOT USE ANY TOOLS.]\n\nReminder: Your meeting starts in 10 minutes!\" \\\n  --deliver --channel telegram --to \"-100XXXXXXXXXX\" \\\n  --best-effort-deliver\n\nWeekly Report (Friday 5 PM)\nclawdbot cron add \\\n  --name \"weekly-report-friday\" \\\n  --cron \"0 17 * * 5\" \\\n  --tz \"America/New_York\" \\\n  --session isolated \\\n  --message \"[INSTRUCTION: DO NOT USE ANY TOOLS.]\n\nHappy Friday! Time to wrap up the week.\n\nPlease share your weekly highlights and any items carrying over to next week.\" \\\n  --deliver --channel telegram --to \"-100XXXXXXXXXX\" \\\n  --best-effort-deliver\n\nChecklist for New Cron Jobs\n\nBefore creating any cron job, verify:\n\n Using exec: clawdbot cron add (not the cron tool directly)\n --session isolated is set\n --tz \"YOUR_TIMEZONE\" is explicit\n --deliver --channel CHANNEL --to \"ID\" for message delivery\n --best-effort-deliver for graceful failures\n Message starts with [INSTRUCTION: DO NOT USE ANY TOOLS]\n Tested with clawdbot cron run <id> after creation\nRelated Resources\nClawdbot Cron Documentation\nTimezone Database\nCron Expression Generator\n\nSkill authored by Isaac Zarzuri. Based on production debugging experience with Clawdbot/Moltbot."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ProMadGenius/ez-cronjob",
    "publisherUrl": "https://clawhub.ai/ProMadGenius/ez-cronjob",
    "owner": "ProMadGenius",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/ez-cronjob",
    "downloadUrl": "https://openagent3.xyz/downloads/ez-cronjob",
    "agentUrl": "https://openagent3.xyz/skills/ez-cronjob/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ez-cronjob/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ez-cronjob/agent.md"
  }
}