Ping Me
by @ethan-shen-individual-lab
One-shot reminders via natural language. Auto-detects channel and timezone. Say 'remind me...' in any language and get pinged when it's time. Works with ever...
clawhub install ping-me๐ About This Skill
name: ping-me description: "One-shot reminders via natural language. Auto-detects channel and timezone. Say 'remind me...' in any language and get pinged when it's time. Works with every channel." metadata: {"openclaw":{"emoji":"โฐ","requires":{"bins":["openclaw","python3"]}}}
ping-me โฐ
Set one-shot reminders through natural language. The reminder fires once, delivers to the user's current chat channel, then auto-deletes.
Response flow: Call the script first, then confirm with one short sentence. Keep it concise โ no preamble, no time calculations, just the confirmation.
How It Works
User says something like:
You parse the time and message, then call the script SILENTLY.
Channel & Delivery Target
The script auto-detects which channel the user is chatting from.
--channel unless the user explicitly asks for a different channel--channel when the user explicitly says "remind me on telegram" / "ๅๅฐ้ฃไนฆ" / etc.Delivery target (--to)
Some channels (e.g. QQ Bot) require a full delivery target for announce mode. The script resolves --to automatically from:
1. $OPENCLAW_TO environment variable (if gateway sets it)
2. $OPENCLAW_SESSION_KEY (extracts target from session key format)
3. config.json โ "to" field (user-configured)
If reminders fail with "requires target" error, the user needs to configure their target once:
bash {baseDir}/scripts/ping-me-config.sh --set to=qqbot:c2c:
You can also pass --to explicitly when calling the script.
Commands
Set a reminder
bash {baseDir}/scripts/ping-me.sh [options] Time formats:
| User says | You pass as |
|-----------|---------------------|
| "3ๅ้ๅ" / "in 3 minutes" | 3m |
| "30ๅ้ๅ" / "in 30 minutes" | 30m |
| "2ๅฐๆถๅ" / "in 2 hours" | 2h |
| "ๆๅคฉ" / "tomorrow" | 1d |
| "ๆๅคฉไธๅ3็น" / "tomorrow at 3pm" | ISO 8601: 2026-03-11T15:00 (no tz offset needed, script uses configured tz) |
| "ๅจไบๆไธ8็น" / "Friday 8pm" | ISO 8601 with calculated date |
IMPORTANT: For relative times (Nๅ้ๅ, Nๅฐๆถๅ, in N minutes/hours), ALWAYS use the short form (3m, 2h, 1d). Do NOT convert to ISO timestamp.
Options:
--channel โ override delivery channel (only when user explicitly requests)--to โ override delivery target (e.g. qqbot:c2c:)--tz โ override timezone for this reminder--emoji โ custom emoji prefixExamples:
bash {baseDir}/scripts/ping-me.sh 30m "Take a break"
bash {baseDir}/scripts/ping-me.sh 2h "Team meeting"
bash {baseDir}/scripts/ping-me.sh "2026-03-11T15:00" "Submit homework"
bash {baseDir}/scripts/ping-me.sh --channel telegram 1d "Renew subscription"
List active reminders
bash {baseDir}/scripts/ping-me-list.sh
Cancel a reminder
bash {baseDir}/scripts/ping-me-cancel.sh
View / change settings
bash {baseDir}/scripts/ping-me-config.sh # Show settings
bash {baseDir}/scripts/ping-me-config.sh --set tz=Asia/Tokyo # Change timezone
bash {baseDir}/scripts/ping-me-config.sh --set channel=qqbot # Change default channel
bash {baseDir}/scripts/ping-me-config.sh --set to=qqbot:c2c: # Set delivery target
bash {baseDir}/scripts/ping-me-config.sh --set emoji=๐ # Change emoji
bash {baseDir}/scripts/ping-me-config.sh --set lang=zh # Change language
bash {baseDir}/scripts/ping-me-config.sh --reset # Reset to defaults
Your Job (Agent Instructions)
Creating Reminders
1. Detect reminder intent in any language
2. Extract time and message
3. For relative times โ use short form (3m, 2h, 1d). For absolute times โ ISO 8601 without tz offset
4. Do NOT pass --channel or --to unless user explicitly requests a specific channel, or the script fails without it
5. Call ping-me.sh with the parsed arguments
6. After the script succeeds, confirm with one short sentence in the user's language
Response Style
Keep responses concise. Call the script first, then confirm briefly:
No need to explain time conversion or timezone logic to the user โ just confirm the reminder.
Listing & Cancelling
ping-me-list.shping-me-cancel.sh (get ID from list first)Changing Settings (Interactive)
When user wants to change settings, use ping-me-config.sh:
--set tz=Asia/Tokyo--set channel=feishu--set to=qqbot:c2c:--resetAfter changing settings, confirm with ONE sentence.
First-Time Setup Hint
If the first reminder fails with a "requires target" or "multiple channels" error, guide the user to configure:
1. Default channel: ping-me-config.sh --set channel=qqbot
2. Delivery target: ping-me-config.sh --set to=qqbot:c2c:
The user's openid can be found in their QQ Bot session key or gateway logs.
Notes
--delete-after-run)$OPENCLAW_CHANNEL โ config โ empty$OPENCLAW_TO โ session key extraction โ config โ empty{baseDir}/config.json๐ Tips & Best Practices
--delete-after-run)$OPENCLAW_CHANNEL โ config โ empty$OPENCLAW_TO โ session key extraction โ config โ empty{baseDir}/config.json