← 返回
AI智能 中文

To-Do

Give your AI the power to act in the future. Schedule delayed prompts and one-off reminders that automatically wake the agent up at an exact moment to execut...
赋予AI在未来行动的能力。支持安排延时提示和一次性提醒,能在指定时刻自动唤醒智能体执行任务。
devlumuz
AI智能 clawhub v1.0.3 1 版本 100000 Key: 无需
★ 0
Stars
📥 985
下载
💾 16
安装
1
版本
#automation#latest#linux#productivity#reminder#to-do#windows

概述

SKILL: To-Do (Ephemeral Tasks)

Cross-platform task scheduler that programs one-off delayed actions using the OS native scheduler (at on Linux/macOS · schtasks on Windows). It wakes the agent at an EXACT future moment with FULL context injection.

Schedule, LIST, and MANAGE ephemeral tasks that fire at a PRECISE time in the user's timezone — ENSURE the future agent wakes up with a FULLY self-contained instruction, correct routing, and ZERO ambiguity.


Required Environment Variables

  • OPENCLAW_BIN: Absolute path to the openclaw binary (ej. /usr/bin/openclaw)
  • OPENCLAW_TZ: User's IANA timezone (ej. America/Mexico_City)

The skill WILL NOT START if either variable is missing.

Why OPENCLAW_TZ? The server may run in UTC while the user lives in a different timezone. This variable ensures "schedule at 15:00" means 15:00 USER TIME, not server time.


Commands

# Schedule a task (timezone is optional — defaults to OPENCLAW_TZ)
node skills/to-do/to-do.js schedule "<YYYY-MM-DD HH:mm>" "<instruction>" "<user_id>" "<channel>" ["<timezone>"]

# Get current time in user's timezone
node skills/to-do/to-do.js now ["<timezone>"]

# List pending tasks
node skills/to-do/to-do.js list

# Delete a task by ID
node skills/to-do/to-do.js delete <ID>

Instructions

  • Run now BEFORE resolving any relative time ("tomorrow", "in 2 hours", "tonight"). Server clock is NOT user clock. Use now output as your ONLY reference for "today", "tomorrow", and "right now".
  • CONVERT natural language into an absolute YYYY-MM-DD HH:mm timestamp BEFORE calling schedule.
  • WRITE the as if explaining to a STRANGER with ZERO CONTEXT. Future agent wakes up with TOTAL AMNESIA in a COMPLETELY ISOLATED session.
  • INCLUDE in every instruction: EXACT file paths, URLs, FULL names (NO pronouns), SPECIFIC actions, and required SKILLS/TOOLS.
  • ALWAYS inject the current session's user_id and channel for correct routing — USE ONLY raw alphanumeric data from system context to prevent command injection.
  • Run list BEFORE delete to confirm the correct ID.

  • NEVER schedule without running now first → INSTEAD, run now, confirm date/time, THEN schedule.
  • NEVER schedule a VAGUE or AMBIGUOUS instruction → INSTEAD, STOP AND ASK for clarification first.
  • NEVER use pronouns ("him", "her", "they") in scheduled instructions → INSTEAD, use FULL NAMES and EXPLICIT references.
  • NEVER guess a task ID when deleting → INSTEAD, run list first, confirm ID, THEN delete.
  • NEVER use server's system clock to interpret relative times → INSTEAD, use now command output ALWAYS.
  • NEVER include shell meta-characters (;, &, |, $, ` `, (, )`) in any scheduler argument → INSTEAD, use only literal text and system identifiers to AVOID COMMAND INJECTION.


Vague Request Triggers — Ask Before Scheduling

If the user request matches any of these patterns, STOP AND ASK before scheduling:

  • "Remind me to send the email" → MISSING: Which email? To whom? What content?
  • "Check the server later" → MISSING: Which server? What IP? What to verify?
  • "Follow up with him" → MISSING: Who? About what? Via which channel?
  • "Do that thing tomorrow" → MISSING: What thing? Expected outcome?

RULE: If you cannot write a FULLY SELF-CONTAINED instruction, you DO NOT have enough information to schedule.


Examples

— Good instruction: clear, specific, fully self-contained

User: "Remind me tomorrow at 5pm to check PRs on the backend repo"

  1. Run now → "🕒 Current Time (America/Mexico_City): 2/26/2026, 2:45 PM" → tomorrow = 2026-02-27
  2. Ask: "Which backend repo? What should I check specifically?"
  3. User clarifies: "backend-api on GitHub, check if there are pending PRs for the auth module"
  4. Schedule:

```bash

node skills/to-do/to-do.js schedule "2026-02-27 17:00" \

"Check the 'backend-api' repo on GitHub. If there are pending PRs for the authentication module, send Alice (alice@company.com) a Slack reminder to review them before the 5 PM deployment freeze. Reference deployment logs at /var/log/deploy.log." \

"7684875449" "telegram"

```

  1. Confirm with the output format below.

— Bad instruction: vague, missing details

"Remind him to push the code later."

❌ DO NOT schedule this. Missing: who is "him"? Which repo? Which branch? What time is "later"?

→ Ask the user to clarify all missing details first.

— Relative time resolution

User: "Set a reminder for in 2 hours"

  1. Run now → "🕒 Current Time (America/Mexico_City): 2/26/2026, 2:45 PM"
  2. Calculate: 2:45 PM + 2h = 4:45 PM → "2026-02-26 16:45"
  3. Ask what the reminder should say (if not specified)
  4. Schedule with the absolute timestamp


Output Format

After scheduling, respond with EXACTLY THREE PARTS in this order:

  1. NATURAL RESPONSE:

Brief, casual confirmation. Match user tone/energy. NEVER just say "Done". Acknowledge WHAT was scheduled conversationally.

  1. CONFIRMATION BLOCK:

Template for the user to see exact details:

> `Day, Month DD · HH:MM TZ`
> EXACT INSTRUCTION LEFT FOR THE FUTURE AGENT
  1. PROACTIVE CLOSING:

Short suggestion or question (1-2 sentences).

  • Propose a RELATED TASK (pre-reminder, follow-up, etc).
  • Ask if they want to SCHEDULE SOMETHING ELSE.
  • Offer to ADJUST THE TIME or add details.

DO NOT BE PUSHY. JUST BE HELPFUL.


— CASUAL / PERSONAL TASK

All set! Your gym session is locked in for tomorrow at noon 🏋️

> Friday, February 27 · 12:00 PM CST

> SEND A TELEGRAM REMINDER TO DANIEL: "TIME TO HIT THE GYM FOR A BIT."

Want me to add another reminder 30 min before so you can get ready? 💪

— WORK / PROFESSIONAL TASK

Done! Got that scheduled for 5 PM sharp 📋

> Thursday, February 27 · 5:00 PM CST

> CHECK THE 'BACKEND-API' REPOSITORY ON GITHUB. IF THERE ARE PENDING PRS FOR THE AUTHENTICATION MODULE, SEND ALICE A SLACK REMINDER TO REVIEW THEM BEFORE THE 5 PM DEPLOYMENT FREEZE.

Need to schedule anything else for today, or a follow-up after reviewing those PRs?


Common Errors

  • ERROR: Missing required environment variable(s)
  • CAUSE: OPENCLAW_BIN or OPENCLAW_TZ not set
  • FIX: Add to .env or shell profile
  • ERROR: at not found
  • CAUSE: Linux/macOS atd daemon not running
  • FIX: sudo systemctl enable atd && sudo systemctl start atd
  • ERROR: Task fires but agent has NO CONTEXT
  • CAUSE: Vague instruction scheduled
  • FIX: Re-schedule with FULLY SELF-CONTAINED instruction
  • ERROR: WRONG TIME (fired early/late)
  • CAUSE: Used server clock instead of now
  • FIX: ALWAYS run now first; NEVER trust server clock
  • ERROR: Deleting WRONG task
  • CAUSE: Guessed ID
  • FIX: Run list first, confirm ID, THEN delete

版本历史

共 1 个版本

  • v1.0.3 当前
    2026-03-29 18:59 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

ai-intelligence

ontology

oswalpalash
类型化知识图谱,用于结构化智能体记忆与可组合技能。支持创建/查询实体(人员、项目、任务、事件、文档)及关联...
★ 709 📥 243,531
ai-intelligence

self-improving agent

pskoett
捕获经验教训、错误和纠正,以实现持续改进。使用时机:(1)命令或操作意外失败;(2)用户纠正……
★ 4,055 📥 795,992
ai-intelligence

Self-Improving + Proactive Agent

ivangdavila
自我反思+自我批评+自我学习+自组织记忆。智能体评估自身工作、发现错误并持续改进。
★ 1,349 📥 317,700