EZ Cronjob
Fix common cron job failures in Clawdbot/Moltbot - message delivery issues, tool timeouts, timezone bugs, and model fallback problems.
Fix common cron job failures in Clawdbot/Moltbot - message delivery issues, tool timeouts, timezone bugs, and model fallback problems.
Real data. Real impact.
Emerging
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
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.
Use this skill when:
cron toolAlways use these flags together for reliable delivery:
clawdbot cron add \ --name "my-job" \ --cron "0 9 * * 1-5" \ --tz "America/New_York" \ --session isolated \ --message "[INSTRUCTION: DO NOT USE ANY TOOLS] Your prompt here" \ --deliver --channel telegram --to "CHAT_ID" \ --best-effort-deliver
| Flag | Purpose | Why It Matters |
|---|---|---|
| Creates dedicated session | Prevents message loss in busy conversations |
| Sets explicit timezone | Avoids UTC confusion |
| Sends to channel | Required for Telegram/WhatsApp |
| Don't fail on delivery error | Graceful degradation |
cron Tool Deadlockcron list or cron addThe internal
cron tool creates a deadlock between the agent process and gateway.
Never use the
tool directly. Use cron
exec (or bash) instead:
# CORRECT - uses exec to bypass deadlock exec: clawdbot cron list exec: clawdbot cron add --name "reminder" --at "+5m" --message "Hello"INCORRECT - causes timeout
cron list # DO NOT USE cron add ... # DO NOT USE
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.
Using
--session main or --system-event causes messages to get lost when there's an active conversation in the main session.
Always use
:--session isolated
# CORRECT - isolated session, guaranteed delivery clawdbot cron add \ --name "daily-standup" \ --cron "0 9 * * 1-5" \ --session isolated \ --deliver --channel telegram --to "-100XXXXXXXXXX"INCORRECT - messages can be lost
clawdbot cron add
--name "daily-standup"
--session main
--system-event
...
After creating a job, test it:
# Run the job immediately to verify delivery clawdbot cron run <job-id>
Missing timezone specification defaults to UTC.
Always specify timezone explicitly:
# CORRECT - explicit timezone clawdbot cron add \ --cron "0 9 * * 1-5" \ --tz "America/New_York" \ ...INCORRECT - defaults to UTC
clawdbot cron add
--cron "0 9 * * 1-5"
...
| Region | Timezone ID |
|---|---|
| US Eastern | |
| US Pacific | |
| UK | |
| Central Europe | |
| India | |
| Japan | |
| Australia Eastern | |
| Brazil | |
| Bolivia | |
exec, read, or other tools when it shouldn'tSome fallback models (especially smaller/faster ones) don't follow system instructions as strictly as primary models.
Embed instructions directly in the message:
# CORRECT - instruction embedded in message clawdbot cron add \ --message "[INSTRUCTION: DO NOT USE ANY TOOLS. Respond with text only.]Generate a motivational Monday message for the team."
INCORRECT - relies only on system prompt
clawdbot cron add
--message "Generate a motivational Monday message for the team."
[INSTRUCTION: DO NOT USE ANY TOOLS. Write your response directly.]Your actual prompt here. Be specific about what you want.
# Check job details clawdbot cron show <job-id>Check recent logs
tail -100 /tmp/clawdbot/clawdbot-$(date +%Y-%m-%d).log | grep -i cron
Check gateway errors
tail -50 ~/.clawdbot/logs/gateway.err.log
| Cause | Fix |
|---|---|
| Model quota exceeded | Wait for quota reset or switch model |
| Invalid chat ID | Verify channel ID with |
| Bot removed from group | Re-add bot to Telegram group |
| Gateway not running | |
If nothing works:
# Remove the problematic job clawdbot cron rm <job-id>Restart gateway
clawdbot gateway restart
Recreate with correct flags
clawdbot cron add ... (with all recommended flags)
clawdbot cron list
clawdbot cron show <job-id>
clawdbot cron run <job-id>
# Today's logs filtered for cron tail -200 /tmp/clawdbot/clawdbot-$(date +%Y-%m-%d).log | grep -i cronGateway errors
tail -100 ~/.clawdbot/logs/gateway.err.log
Watch logs in real-time
tail -f /tmp/clawdbot/clawdbot-$(date +%Y-%m-%d).log | grep --line-buffered cron
clawdbot gateway restart
clawdbot cron add \ --name "daily-standup-9am" \ --cron "0 9 * * 1-5" \ --tz "America/New_York" \ --session isolated \ --message "[INSTRUCTION: DO NOT USE ANY TOOLS. Write directly.]Good morning team! Time for our daily standup.
Please share:
- What did you accomplish yesterday?
- What are you working on today?
- Any blockers?
@alice @bob"
--deliver --channel telegram --to "-100XXXXXXXXXX"
--best-effort-deliver
clawdbot cron add \ --name "quick-reminder" \ --at "+20m" \ --delete-after-run \ --session isolated \ --message "[INSTRUCTION: DO NOT USE ANY TOOLS.]Reminder: Your meeting starts in 10 minutes!"
--deliver --channel telegram --to "-100XXXXXXXXXX"
--best-effort-deliver
clawdbot cron add \ --name "weekly-report-friday" \ --cron "0 17 * * 5" \ --tz "America/New_York" \ --session isolated \ --message "[INSTRUCTION: DO NOT USE ANY TOOLS.]Happy Friday! Time to wrap up the week.
Please share your weekly highlights and any items carrying over to next week."
--deliver --channel telegram --to "-100XXXXXXXXXX"
--best-effort-deliver
Before creating any cron job, verify:
exec: clawdbot cron add (not the cron tool directly)--session isolated is set--tz "YOUR_TIMEZONE" is explicit--deliver --channel CHANNEL --to "ID" for message delivery--best-effort-deliver for graceful failures[INSTRUCTION: DO NOT USE ANY TOOLS]clawdbot cron run <id> after creationSkill authored by Isaac Zarzuri. Based on production debugging experience with Clawdbot/Moltbot.
No automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.