This teaches Claude to use the openclaw cron CLI instead of trying to track time manually, which doesn't work because the model has no internal clock. The key insight is the isolated session mode: when you want Claude to actually do something at a scheduled time (run a check, send a summary, execute a task), it spins up a separate agent session that can use tools and deliver results to chat. Main session is just for simple reminder notifications. It handles the usual cron patterns (every N minutes, daily at 9am) plus duration shortcuts like "+30m" for one-off delayed tasks. The documentation is thorough about when to use which session type and includes a logging format for tracking what jobs got created.
npx -y skills add tclawde/openclaw-skills-user --skill cron-helper --agent claude-codeInstalls into .claude/skills of the current project.
Purpose: Guides me to use openclaw cron CLI for time-based tasks and send logs on create/remove.
When to use:
Always prefer cron over manual timing.
Reason: I lack an internal clock. Manual "track time yourself" fails because I can get absorbed in reading/thinking and lose track of time. Cron is an external clock that works reliably.
Use --session isolated when you want the agent to actually perform a task:
Format:
openclaw cron add \
--name "job_name" \
--cron "0 9 * * *" \
--session isolated \
--message "Task instructions for the agent" \
--deliver \
--channel feishu
Use --session main with --system-event for simple notifications only:
Format:
openclaw cron add \
--name "reminder" \
--at "+30m" \
--session main \
--system-event "Reminder: check email"
Keywords: "every", "remind", "schedule", "定时", "每小时/每天/每周", "在X分钟后执行"
Get from user:
For agent tasks (RECOMMENDED):
openclaw cron add \
--name "task_name" \
--at "+10m" \
--session isolated \
--message "Your task instructions here" \
--deliver \
--channel feishu
For simple reminders:
openclaw cron add \
--name "reminder" \
--at "+10m" \
--session main \
--system-event "Your reminder message"
Remove a cron job:
openclaw cron rm <job_id>
List all cron jobs:
openclaw cron list
Other useful commands:
openclaw cron status # 查看调度器状态
openclaw cron run <job_id> # 立即触发任务
openclaw cron enable <job_id> # 启用任务
openclaw cron disable <job_id> # 禁用任务
openclaw cron runs <job_id> # 查看执行历史
When using --session isolated, you can deliver output to a chat:
| Option | Description |
|---|---|
--deliver | Enable delivery (required for channel output) |
--channel <name> | Channel: feishu, telegram, slack, whatsapp, etc. |
--to <dest> | Channel-specific target (chat ID, phone, etc.) |
--post-mode full | Post full output instead of summary |
Examples:
# Deliver to Feishu
--deliver --channel feishu
# Deliver to Telegram
--deliver --channel telegram --to "-1001234567890"
# Deliver with full output
--deliver --channel feishu --post-mode full
| Option | Description |
|---|---|
--cron <expr> | Cron expression (5-field or 6-field with seconds) |
--every <duration> | Run every duration (e.g., 10m, 1h) |
--at <when> | Run once at time (ISO or +duration, supports m/s) |
--tz <iana> | Timezone (default: local) |
--session main|isolated | Target session (default: main) |
--system-event <text> | System event payload (main session only) |
--message <text> | Agent message payload (isolated session only) |
--delete-after-run | Delete one-shot job after success |
--disabled | Create job in disabled state |
After creating or removing cron jobs, send ONE log with the exact command:
Log format:
# 新增任务
[HH:MM] CRON ✅
$ openclaw cron add \
--name "job_name" \
--at "+10m" \
--session isolated \
--message "task description" \
--deliver \
--channel feishu
# 删除任务
[HH:MM] CRON ❌
$ openclaw cron rm <job_id>
Examples:
# 新增
[21:30] CRON ✅
$ openclaw cron add \
--name "daily-summary" \
--cron "0 9 * * *" \
--tz "Asia/Shanghai" \
--session isolated \
--message "总结今天的工作" \
--deliver \
--channel feishu
# 删除
[21:41] CRON ❌
$ openclaw cron rm 983a0f0e-0976-414a-b3d0-fd09c533e301
Key points:
Cron → Human mapping (五位 - 分时日月周):
*/5 * * * * → 每5分钟*/30 * * * * → 每30分钟0 * * * * → 每1小时0 */2 * * * → 每2小时0 9 * * * → 每天1次(09:00)0 10,22 * * * → 每天2次(10:00,22:00)0 9 * * 1 → 每周1次(周一09:00)Cron → Human mapping (六位 - 秒分时日月周):
*/1 * * * * * → 每1秒*/5 * * * * * → 每5秒*/30 * * * * * → 每30秒| Use Case | Session | Payload | Delivery |
|---|---|---|---|
| Agent performs task | isolated | --message | --deliver ✅ |
| Simple notification | main | --system-event | ❌ |
Rule of thumb: If you want the agent to do something (use tools, send messages), use --session isolated + --message.
❌ Don't say "I'll set a reminder myself"
❌ Don't try to track time manually
❌ Don't use --system-event when you need the agent to execute tasks
❌ Don't forget --deliver when you need output sent to chat
❌ Don't send execution logs (only log on create/remove)
✅ Always use the openclaw cron CLI
✅ Use --session isolated for agent tasks
✅ Use --session main for simple notifications only
✅ Send log on create/remove only
✅ Keep log simple and clean
| Frequency | Cron Expression | CLI Flag |
|---|---|---|
| Every 5 min | */5 * * * * | --cron "*/5 * * * *" |
| Every 30 min | */30 * * * * | --cron "*/30 * * * *" |
| Every hour | 0 * * * * | --cron "0 * * * *" |
| Every 2 hours | 0 */2 * * * | --cron "0 */2 * * *" |
| Daily at 9am | 0 9 * * * | --cron "0 9 * * *" |
| Twice daily (10am, 10pm) | 0 10,22 * * * | --cron "0 10,22 * * *" |
| Weekly (Monday 9am) | 0 9 * * 1 | --cron "0 9 * * 1" |
| Frequency | Cron Expression | CLI Flag |
|---|---|---|
| Every 1 second | */1 * * * * * | --cron "*/1 * * * * *" |
| Every 5 seconds | */5 * * * * * | --cron "*/5 * * * * *" |
| Every 30 seconds | */30 * * * * * | --cron "*/30 * * * * *" |
Duration flags:
| Frequency | CLI Flag |
|---|---|
| Every 10 minutes | --every "10m" |
| Every 2 hours | --every "2h" |
| Once in 20 minutes | --at "+20m" |
| Once in 20 seconds | --at "+20s" |
Loaded automatically when skill is installed.
sickn33/antigravity-awesome-skills
rohitg00/pro-workflow
supercent-io/skills-template