SuperAPI AI Directory

qqbot-remind

General & other

View repository

Updated 10-16 01:30

About this skill

QQ Bot scheduled reminder

⚠️ Mandatory rules

When the user mentions "remind", "alarm", "schedule", "in X minutes/hours", "every day at X o'clock", "call me", or any other request involving delay or scheduling, you must call the tool, and absolutely must not reply only in natural language with "OK, I will remind you"!

You have no memory or background thread. Verbally promising "I will remind you when the time comes" is invalid—only calling the tool can actually register a scheduled task.


Recommended process (prefer using the qqbot_remind tool)

Step one: call the qqbot_remind tool, passing simple parameters:

Parameter Description Example
action Action type "add" / "list" / "remove"
content Reminder content "喝水"
to Target address (optional, automatically obtained by the system, usually no need to fill in) —
time Time (relative time or cron expression) "5m" / "1h30m" / "0 8 * * *"
jobId Task ID (remove only) "xxx"

Step two:qqbot_remind will return cronParamsYou mustimmediatelyuse the value of cronParams asas-isthe parameters to call the cron tool.It is forbidden to modify, omit, or reorganize any field in cronParams any field in(especially delivery in the accountId)。

Step three: based on the return result of the cron tool, reply to the user.

Example

The user says: "Remind me to drink water in 5 minutes"

  1. Call qqbot_remind:{ "action": "add", "content": "喝水", "time": "5m" }
  2. Received the returned cronParams → immediately call the cron tool with that cronParams
  3. Reply to the user:⏰ 好的,5分钟后提醒你喝水~

Fallback (directly use the cron tool)

Use the following method only when the qqbot_remind tool is unavailable.

Core rules

payload.kind must be "agentTurn", and absolutely must not use "systemEvent"! systemEvent only injects text inside the AI session, and the user will not receive a QQ message.

5 immutable fields:

Field Fixed value Reason
payload.kind "agentTurn" systemEvent will not send a QQ message
delivery.mode "announce" Delivery mode
delivery.channel "qqbot" QQ channel identifier
delivery.to User openid Obtained from the To field
sessionTarget "isolated" Isolate the session to avoid contamination

delivery.accountId The account ID of the current session must be filled in (if known), to ensure that messages are sent through the correct bot account in multi-account scenarios.

schedule.atMs must bean absolute millisecond timestamp(e.g. 1770733800000), relative strings such as "5m" are not supported. Calculation method:当前时间戳ms + 延迟毫秒。

One-time reminder (schedule.kind = "at")

{
  "action": "add",
  "job": {
    "name": "{任务名}",
    "schedule": { "kind": "at", "atMs": "{当前时间戳ms + N*60000}" },
    "sessionTarget": "isolated",
    "wakeMode": "now",
    "deleteAfterRun": true,
    "payload": {
      "kind": "agentTurn",
      "message": "你是一个暖心的提醒助手。请用温暖、有趣的方式提醒用户:{提醒内容}。要求:(1) 不要回复HEARTBEAT_OK (2) 不要解释你是谁 (3) 直接输出一条暖心的提醒消息 (4) 可以加一句简短的鸡汤或关怀的话 (5) 控制在2-3句话以内 (6) 用emoji点缀"
    },
    "delivery": {
      "mode": "announce",
      "channel": "qqbot",
      "to": "{openid}",
      "accountId": "{accountId}"
    }
  }
}

Recurring reminder (schedule.kind = "cron")

{
  "action": "add",
  "job": {
    "name": "{任务名}",
    "schedule": { "kind": "cron", "expr": "0 8 * * *", "tz": "Asia/Shanghai" },
    "sessionTarget": "isolated",
    "wakeMode": "now",
    "payload": {
      "kind": "agentTurn",
      "message": "你是一个暖心的提醒助手。请用温暖、有趣的方式提醒用户:{提醒内容}。要求:(1) 不要回复HEARTBEAT_OK (2) 不要解释你是谁 (3) 直接输出一条暖心的提醒消息 (4) 可以加一句简短的鸡汤或关怀的话 (5) 控制在2-3句话以内 (6) 用emoji点缀"
    },
    "delivery": {
      "mode": "announce",
      "channel": "qqbot",
      "to": "{openid}",
      "accountId": "{accountId}"
    }
  }
}

Recurring taskDo not add deleteAfterRun. Group chat to format is "qqbot:group:{group_openid}"。


Cron expression quick reference

Scenario expr
Every day at 8 AM "0 8 * * *"
Every day at 10 PM "0 22 * * *"
weekday mornings at 9 AM "0 9 * * 1-5"
every Monday morning at 9 AM "0 9 * * 1"
every weekend at 10 AM "0 10 * * 0,6"
every hour on the hour "0 * * * *"

Recurring reminders must include "tz": "Asia/Shanghai"。


AI Decision Guide

User phrasing action time format
"Remind me to drink water in 5 minutes" add "5m"
"Remind me for the meeting in 1 hour" add "1h"
"Remind me to clock in at 8 AM every day" add "0 8 * * *"
"Remind me on weekday mornings at 9 AM" add "0 9 * * 1-5"
"What reminders do I have" list —
"Cancel the drink water reminder" remove —
"Change the reminder time" remove → add —
"Remind me" (no time) Needs follow-up —

Pure relative times ("in 5 minutes", "in 1 hour") can be calculated directly without confirmation. If the time is vague or missing, a follow-up is needed.


Reply template

  • One-time:⏰ 好的,{时间}后提醒你{内容}~
  • Recurring:⏰ 收到,{周期}提醒你{内容}~
  • Query with no results:📋 目前没有提醒哦~ 说"5分钟后提醒我xxx"试试?
  • Deletion successful:✅ 已取消"{名称}"

openclaw cron add \ --name "Off-work reminder" \ --at "2026-03-26T21:42:31+08:00" \ --message "test" \ --to …``