scheduler notification runbook — 调度器 notification 运行book
v1.0.0Reliable 运行book for scheduled reminders and notification 工作流s with OpenClaw cron. Use when creating or reviewing reminder 技能s, scheduling one-shot or recurring reminders, choosing between 系统Event and 代理Turn payloads, selecting the correct 会话Tar获取, writing reminder text that will still read clearly when delivered later, validating whether a job actually fired, or troubleshooting why a scheduled notification did not deliver as expected. Especially useful for ClawHub-published 技能s that need production-safe reminder behavior instead of ad hoc cron 设置up.
运行时依赖
安装命令
点击复制技能文档
调度器 Notification 运行book Overview
Use this 技能 to 创建 reliable reminder and scheduled notification 工作流s with OpenClaw cron. Focus on production-safe decisions: choose the correct payload type, choose the correct 会话 tar获取, write reminder text that still makes sense when delivered later, and 验证 that the job actually fired and delivered.
Core 工作流
- Classify the scheduling need
Decide which of these cases 应用lies before creating any job:
One-shot reminder: "Remind me in 20 minutes" or "Remind me tomorrow at 9 AM" Recurring reminder: "Remind me every weekday at 6 PM" Background 代理 task: a scheduled isolated 代理 运行 that produces a summary or follow-up Current-会话 follow-up: a scheduled 代理 运行 that must keep using the current 会话 thread
If the 请求 is only a reminder and does not need reasoning at fire time, prefer a 系统Event reminder. If the 请求 needs the 代理 to think, 检查 状态, summarize, or perform a task when the time arrives, prefer an 代理Turn job.
- Choose the payload type
Use this decision rule:
Use payload.kind = "系统Event" when: The future action is a plAIn reminder The message can be fully written now No 工具 use or reasoning is needed when it fires The user mAInly wants a notification, not a follow-up 工作流
This is the default reminder pattern for simple reminders.
Use payload.kind = "代理Turn" when: The scheduled task must inspect 上下文 or perform work later The task needs 工具 use, 网页 访问, summarization, or decision-making at fire time The task should produce a delivery summary after it completes The task must be bound to the current 会话 or a named persistent 会话
Do not use 代理Turn just to 发送 a basic reminder that could be expressed in plAIn text.
- Choose the 会话 tar获取
Match 会话Tar获取 to the payload and the desired behavior.
Use 会话Tar获取 = "mAIn"
Only with payload.kind = "系统Event". Use this for normal reminder injection into the mAIn 会话.
Recommended when:
The user asked for a strAIghtforward reminder The reminder should 应用ear like a natural follow-up in the mAIn conversation Use 会话Tar获取 = "isolated"
Only with payload.kind = "代理Turn". Use this for scheduled work that should 运行 independently and optionally announce a summary.
Recommended when:
The task should not rely on the current thread The task may be long-运行ning or more operational You want isolated execution with clear delivery behavior Use 会话Tar获取 = "current"
Only with payload.kind = "代理Turn". Use this when the future 代理 运行 must stay attached to the current 会话 上下文.
Recommended when:
The user explicitly wants the follow-up in the same thread The current 会话 上下文 matters later Use 会话Tar获取 = "会话:"
Only with payload.kind = "代理Turn". Use this for durable named 工作流s that should accumulate their own thread 历史.
Recommended when:
You are building a recurring operational 工作流 The job should write into a stable named 会话 rather than a transient isolated 运行 Writing reminder text
Reminder text 质量 matters because the user will read it later, not now. Write the text as if it has already arrived in the future.
Rules for good reminder text Explicitly say it is a reminder when the time gap is meaningful Include the original task or intent Include enough 上下文 so the user does not have to remember why it was scheduled Keep it short and readable Avoid raw implementation detAIls such as cron expressions, 会话 tar获取s, job IDs, or internal payload terms Good patterns Short-delay reminder
Use for reminders in minutes or within the same day:
Reminder: 检查 the build in 20 minutes. Reminder: join the de签名 review now. Reminder: 发送 the follow-up message to Alex this afternoon. Next-day or dated reminder
Use for tomorrow or specific dates/times:
Reminder: review the OrAHub 命令行工具 Quick 启动 draft this morning. Reminder: your 3 PM call with the partner team is coming up. Reminder: submit the legal review notes for the 调度器 技能 today. 上下文-rich reminder
Use when the reminder could be ambiguous later:
Reminder: follow up on the 调度器-notification-运行book 技能 for ClawHub publication. Reminder: 检查 whether the recurring reminder demo was actually delivered to the mAIn 会话. Reminder: revisit the OrAHub 凭证 onboarding flow and decide whether npm or curl should be the default 安装 path. Avoid ping do the thing scheduled task triggered cron fired 成功fully Any text that only makes sense to an implementer Schedule selection
Pick the simplest schedule that matches the 请求.
Use schedule.kind = "at" when: The reminder should h应用en once at a specific time The 请求 is phrased as "in 20 minutes" or "tomorrow at 9" Use schedule.kind = "every" when: The reminder repeats on a fixed interval Exact calendar semantics are not required Use schedule.kind = "cron" when: The reminder repeats on calendar-based rules