Agent skill

Remindme

by CraftOS-dev in CraftOS-dev/CraftBot

⏰ simple Telegram reminders for OpenClaw. An agent skill from CraftOS-dev/CraftBot.

MITAuto-check passedProductivity & Automation

Install Remindme

skills CLI
$ npx skills add CraftOS-dev/CraftBot --skill remindme -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install CraftOS-dev/CraftBot remindme --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/CraftOS-dev/CraftBot.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/remindme .claude/skills/remindme && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
remindme
GitHub stars
392
Token cost
~2.8k tokens
SKILL.md length
1,242 words
Files
3 (incl. references)
Skills in repo
89
Repo updated
First seen
Licence
MIT

At a glance

⏰ simple Telegram reminders for OpenClaw. An agent skill from CraftOS-dev/CraftBot.

  • Works in 5 steps: Parse the Input (Structured Pipeline) → Compute the Schedule → Detect the Delivery Channel → …
  • Tasks that involve Scheduled and recurring tasks
  • SKILL.md covers Usage, Agent Instructions, Rules and Troubleshooting, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Remindme is an agent skill from CraftOS-dev/CraftBot. ⏰ simple Telegram reminders for OpenClaw. cron, zero dependencies.

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `_meta.json` and `references/TEMPLATES.md`).

It sits in Productivity & Automation, covering Scheduled and recurring tasks. It works with Telegram. The repository describes itself as: One agent. Every kind of work. The licence is MIT.

When your agent uses it

  • Tasks that involve Scheduled and recurring tasks

Example prompts

  • “/remindme”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Parse the Input (Structured Pipeline)
  2. Compute the Schedule
  3. Detect the Delivery Channel
  4. Call cron.add
  5. Confirm to User

What it can do on your machine

Read from SKILL.md and the folder at commit b50970c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are json).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Remindme loads about 2.8k tokens when it runs, and up to ~3.4k if it reads all its reference files. Until then it costs about 19 tokens; SKILL.md has 1,242 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~19
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from CraftOS-dev/CraftBot at commit b50970c, republished under its MIT licence (© CraftOS-dev). 1,242 words, ~2,785 tokens.

Download SKILL.mdSave it as .claude/skills/remindme/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
remindme
description
⏰ simple Telegram reminders for OpenClaw. cron, zero dependencies.
tags
cron, reminders, productivity, schedule, telegram, discord, slack, whatsapp, signal
user-invocable
true
command-dispatch
prompt

Remind Me v2

Set reminders on any channel using natural language. No setup. No dependencies.

Usage

/remindme drink water in 10 minutes
/remindme standup tomorrow at 9am
/remindme call mom next monday at 6pm
/remindme in 2 hours turn off oven
/remindme check deployment in 30s
/remindme every day at 9am standup
/remindme every friday at 5pm week recap
/remindme drink water in 10 minutes on telegram
/remindme standup tomorrow at 9am on discord
/remindme list
/remindme cancel <jobId>

Agent Instructions

When the user triggers /remindme, determine the intent:

  • list → call cron.list and show active reminder jobs.
  • cancel / delete / remove <jobId> → call cron.remove with that jobId.
  • everything else → create a new reminder (steps below).

Step 1: Parse the Input (Structured Pipeline)

Extract three things: WHAT (the message), WHEN (the time), RECURRENCE (one-shot or recurring).

Follow this decision tree in order — stop at the first match:

Layer 1: Pattern Matching (works on any model)

Scan the input for these patterns. Match top-to-bottom, first match wins for WHEN:

Relative durations — look for in <number> <unit>:

PatternDuration
in Ns, in N seconds, in N secN seconds
in Nm, in N min, in N minutesN minutes
in Nh, in N hours, in N hrN hours
in Nd, in N daysN * 24 hours
in Nw, in N weeksN * 7 days

Absolute clock times — look for at <time>:

PatternMeaning
at HH:MM, at H:MMam/pmToday at that time (or tomorrow if past)
at Ham/pm, at HHToday at that hour

Named days — look for tomorrow, next <day>, on <day>:

PatternMeaning
tomorrowNext calendar day, default 9am
tonightToday at 8pm (or now+1h if past 8pm)
next monday..sundayThe coming occurrence of that weekday, default 9am
on <day>Same as next <day>

Recurring — look for every <pattern>:

PatternCron/Interval
every Nm/Nh/Ndkind: "every", everyMs: N * unit_ms
every day at <time>kind: "cron", expr: "M H * * *"
every <weekday> at <time>kind: "cron", expr: "M H * * DOW"
every weekday at <time>kind: "cron", expr: "M H * * 1-5"
every weekend at <time>kind: "cron", expr: "M H * * 0,6"
every hourkind: "every", everyMs: 3600000

Unit conversion table (for everyMs and duration math):

UnitMilliseconds
1 second1000
1 minute60000
1 hour3600000
1 day86400000
1 week604800000
Layer 2: Slang & Shorthand (common phrases)

If Layer 1 didn't match, check for these:

PhraseResolves to
in a bit, in a minute, shortly30 minutes
in a while1 hour
later, later today3 hours
end of day, eodToday 5pm
end of week, eowFriday 5pm
end of month, eomLast day of month, 5pm
morning9am
afternoon2pm
evening6pm
tonight8pm
midnight12am next day
noon12pm
Layer 3: Event-Relative & Holidays (LLM reasoning required)

If Layers 1-2 didn't match, the input likely references an event or holiday. Use your knowledge to resolve:

Holiday resolution — when the user says "before/after/on <holiday>":

  1. Identify the holiday and its fixed date for the current year.
  2. Apply any offset: "3 days before Christmas" → Dec 25 minus 3 = Dec 22.
  3. If the holiday has passed this year, use next year's date.

Common fixed-date holidays (reference table):

HolidayDate
New Year's DayJan 1
Valentine's DayFeb 14
St. Patrick's DayMar 17
April FoolsApr 1
US Independence DayJul 4
HalloweenOct 31
Christmas EveDec 24
ChristmasDec 25
New Year's EveDec 31

Floating holidays (vary by year — compute or look up):

  • Thanksgiving (US): 4th Thursday of November
  • Easter: varies (use your knowledge for the current year)
  • Mother's Day (US): 2nd Sunday of May
  • Father's Day (US): 3rd Sunday of June
  • Labor Day (US): 1st Monday of September
  • Memorial Day (US): Last Monday of May

Cultural/religious events (if referenced, use your knowledge):

  • Ramadan, Eid al-Fitr, Eid al-Adha, Diwali, Hanukkah, Lunar New Year, etc.
  • If you're unsure of the exact date, ask the user to confirm rather than guess.

Event-relative patterns:

PatternResolution
N days before <event>event_date - N days
N days after <event>event_date + N days
the day before <event>event_date - 1 day
the week of <event>Monday of event's week, 9am
on <event>event_date, 9am
Layer 4: Ambiguity — Ask, Don't Guess

If you still can't determine WHEN after all layers:

  • Ask the user to clarify. Example: "I couldn't figure out the timing. When exactly should I remind you?"
  • Never silently pick a default time.
  • Never schedule a reminder you're not confident about.
Step 2: Compute the Schedule

Timezone rule: ALWAYS use the user's local timezone (system timezone). Never default to UTC. If the user explicitly mentions a timezone (e.g. "at 9am EST"), use that instead.

One-shot → ISO 8601 timestamp with the user's local timezone offset.

  • If the computed time is in the PAST, bump to the next occurrence.

Recurring (cron) → 5-field cron expression with tz set to the user's IANA timezone.

  • every day at 9am → expr: "0 9 * * *"
  • every monday at 8:30am → expr: "30 8 * * 1"
  • every weekday at 9am → expr: "0 9 * * 1-5"

Recurring (interval) → kind: "every" with everyMs in milliseconds.

  • every 2 hours → everyMs: 7200000
Show full SKILL.md (467 more words)Show less
Validation Checkpoint (before calling cron.add)

Before proceeding to Step 3, verify:

  1. The computed timestamp is in the future (not the past).
  2. The duration makes sense (e.g. "in 0 minutes" should be rejected).
  3. For recurring: the cron expression or interval is valid (no everyMs: 0).
  4. Echo back the parsed time to the user in the confirmation (Step 5) so they can catch errors.
Step 3: Detect the Delivery Channel

Reminders are useless if the user never sees them. The delivery channel determines WHERE the reminder appears when it fires.

Priority order:

  1. Explicit override — if the user says "on telegram" / "on discord" / "on slack" / "on whatsapp" in their message, use that channel.
  2. Current channel — if the user is messaging from an external channel (Telegram, Discord, Slack, etc.), deliver there.
  3. Preferred channel — if the user has a preferred reminder channel saved in MEMORY.md, use that.
  4. Last external channel — use channel: "last" to deliver to the last place the user interacted externally.
  5. No external channel available — if the user is on CLI/webchat and has NO external channels configured, stop and ask: "Where should I deliver this reminder? I need an external channel (Telegram, Discord, Slack, WhatsApp, Signal, or iMessage) since the CLI won't be open when the reminder fires."
Step 4: Call cron.add

One-shot reminder:

json
{
  "name": "Reminder: <short description>",
  "schedule": {
    "kind": "at",
    "at": "<ISO 8601 timestamp>"
  },
  "sessionTarget": "isolated",
  "wakeMode": "now",
  "payload": {
    "kind": "agentTurn",
    "message": "REMINDER: <the user's reminder message>. Deliver this reminder to the user now."
  },
  "delivery": {
    "mode": "announce",
    "channel": "<detected channel>",
    "to": "<detected target>",
    "bestEffort": true
  },
  "deleteAfterRun": true
}

Recurring reminder:

json
{
  "name": "Recurring: <short description>",
  "schedule": {
    "kind": "cron",
    "expr": "<cron expression>",
    "tz": "<IANA timezone>"
  },
  "sessionTarget": "isolated",
  "wakeMode": "now",
  "payload": {
    "kind": "agentTurn",
    "message": "RECURRING REMINDER: <the user's reminder message>. Deliver this reminder to the user now."
  },
  "delivery": {
    "mode": "announce",
    "channel": "<detected channel>",
    "to": "<detected target>",
    "bestEffort": true
  }
}

Fixed-interval recurring reminder (e.g. "every 2 hours"):

json
{
  "name": "Recurring: <short description>",
  "schedule": {
    "kind": "every",
    "everyMs": <interval in milliseconds>
  },
  "sessionTarget": "isolated",
  "wakeMode": "now",
  "payload": {
    "kind": "agentTurn",
    "message": "RECURRING REMINDER: <the user's reminder message>. Deliver this reminder to the user now."
  },
  "delivery": {
    "mode": "announce",
    "channel": "<detected channel>",
    "to": "<detected target>",
    "bestEffort": true
  }
}
Step 5: Confirm to User

After cron.add succeeds, reply with:

Reminder set!
"<reminder message>"
<friendly time description> (<ISO timestamp or cron expression>)
Will deliver to: <channel>
Job ID: <jobId> (use "/remindme cancel <jobId>" to remove)

Rules

  1. ALWAYS use deleteAfterRun: true for one-shot reminders. Omit it for recurring.
  2. ALWAYS use delivery.mode: "announce" — without this, the user never sees the reminder.
  3. ALWAYS use sessionTarget: "isolated" — reminders run in their own session.
  4. ALWAYS use wakeMode: "now" — ensures immediate delivery at the scheduled time.
  5. ALWAYS use delivery.bestEffort: true — prevents job failure if delivery has a transient issue.
  6. NEVER use act:wait or loops for delays longer than 1 minute. Cron handles timing.
  7. NEVER deliver to localhost/webchat/CLI — the user won't be there when the reminder fires. If on CLI with no external channels, ask the user where to deliver.
  8. Always use the user's local timezone (system timezone). Never default to UTC. If MEMORY.md has a timezone override, use that instead.
  9. For recurring reminders, do NOT set deleteAfterRun.
  10. Always return the jobId so the user can cancel later.
  11. If the user says "on telegram/discord/slack/etc", override the auto-detected channel with the explicit one.

Troubleshooting

  • Reminder didn't fire? → cron.list to check. Verify gateway was running at the scheduled time.
  • Delivered to wrong chat? → Use explicit chat/channel ID, not "last".
  • Too many old jobs? → Install the Janitor (see references/TEMPLATES.md).
  • Recurring job keeps delaying? → After consecutive failures, cron applies exponential backoff (30s → 1m → 5m → 15m → 60m). Backoff resets after a successful run.

References

See references/TEMPLATES.md for copy-paste templates and the Janitor auto-cleanup setup.

© CraftOS-dev, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in skills/remindme of CraftOS-dev/CraftBot.

  • SKILL.md
  • _meta.json
  • references/TEMPLATES.md

Open the folder on GitHubat commit b50970c

Compare with similar skills

Remindme next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Remindme compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Remindme this skillCraftOS-dev/CraftBot392—~2.8kAutomated safety check: PassMIT
Send User MessageTinyAGI/tinyagi3.6k—~829Automated safety check: PassMIT
Cortext Self Diagnosisgrandamenium/cortextos100—~3.7kAutomated safety check: PassMIT
Cronsmixs/agent-second-brain391—~856Automated safety check: PassMIT
Actionizeinfranodus/skills119—~3.8kAutomated safety check: NotesNone
Task Manager0xranx/golembot323—~694Automated safety check: PassMIT

Similar skills

  • Send User Message

    TinyAGI/tinyagi

    Send a proactive message to a paired user via their channel (Discord, Telegram, or WhatsApp).

    3.6k GitHub stars~829 tokensUpdated 6 mo ago
    Productivity & AutomationAuto-check passed
  • Cortext Self Diagnosis

    grandamenium/cortextos

    Diagnose cortextOS itself when the framework misbehaves — an agent has gone silent or wedged, agents are crash-looping, Telegram or agent-to-agent messages are not arriving, crons did not fire, an…

    100 GitHub stars~3.7k tokensUpdated 15 days ago
    Productivity & AutomationAuto-check passed
  • Cron

    smixs/agent-second-brain

    Управление собственным расписанием — напоминания, рутины, периодические задачи.

    391 GitHub stars~856 tokensUpdated 2 mo ago
    Productivity & AutomationAuto-check passed
  • Actionize

    infranodus/skills

    Turn insights, findings, or research into an actionable plan with deadlines and scheduled Telegram reminders.

    119 GitHub stars~3.8k tokensUpdated 17 days ago
    Productivity & AutomationAuto-check: notes
  • Task Manager

    0xranx/golembot

    Creates and manages scheduled tasks, cron jobs, recurring reminders, and timers via the Task HTTP API.

    323 GitHub stars~694 tokensUpdated 9 days ago
    Productivity & AutomationAuto-check passed
  • Telegram Bot Messaging

    sickn33/agentic-awesome-skills

    Send Telegram messages, files, and alerts via bot API; ask questions with inline buttons and wait for the answer.

    47k GitHub starsUsed in 1 repo~1.1k tokens
    Productivity & AutomationAuto-check passed

More from CraftOS-dev/CraftBot

All 89 skills in this repo
  • Self Improvement

    CraftOS-dev/CraftBot

    Captures learnings, errors, and corrections to enable continuous improvement.

    392 GitHub starsUsed in 5 repos~4.9k tokens
    Auto-check passed
  • Bbc News

    CraftOS-dev/CraftBot

    Fetch and display BBC News stories from various sections and regions via RSS feeds.

    392 GitHub starsUsed in 2 repos~555 tokens
    Auto-check passed
  • Outlook

    CraftOS-dev/CraftBot

    Read, search, and manage Outlook emails and calendar via Microsoft Graph API.

    392 GitHub starsUsed in 2 repos~1.8k tokens
    Auto-check passed
  • Nano Banana Pro

    CraftOS-dev/CraftBot

    Generate/edit images with Nano Banana Pro (Gemini 3 Pro Image).

    392 GitHub starsUsed in 6 repos~1.4k tokens
    Auto-check passed
  • Airweave

    CraftOS-dev/CraftBot

    Context retrieval layer for AI agents across users' applications.

    392 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Telegram Bot Manager

    CraftOS-dev/CraftBot

    Manage and configure Telegram bots for OpenClaw. An agent skill from CraftOS-dev/CraftBot.

    392 GitHub stars~836 tokensUpdated today
    Auto-check passed

Works with

Questions about Remindme

What does Remindme do?

⏰ simple Telegram reminders for OpenClaw. An agent skill from CraftOS-dev/CraftBot. Remindme is an agent skill from CraftOS-dev/CraftBot. ⏰ simple Telegram reminders for OpenClaw.

When should I use Remindme?

Remindme fits situations like: tasks that involve Scheduled and recurring tasks.

How do I install Remindme in Claude Code?

Run `npx skills add CraftOS-dev/CraftBot --skill remindme -a claude-code`. Or copy the skill folder (skills/remindme in CraftOS-dev/CraftBot) into .claude/skills/remindme in your project. Claude Code loads it when a task matches its description.

How do I install Remindme in Codex?

Run `npx skills add CraftOS-dev/CraftBot --skill remindme -a codex`. Or copy the skill folder (skills/remindme in CraftOS-dev/CraftBot) into .agents/skills/remindme in your project. Codex loads it when a task matches its description.

Can I use Remindme in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add CraftOS-dev/CraftBot --skill remindme -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/remindme, .gemini/skills/remindme, .github/skills/remindme and .opencode/skills/remindme in your project.

What does Remindme need to run?

SKILL.md names no scripts, command-line tools or credentials: Remindme is instructions for the agent only.

Does Remindme access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Remindme safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Remindme use?

Remindme is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Remindme use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 603 tokens, read only when the agent opens those files.

What are the alternatives to Remindme?

Skills that share tags, products or a category with Remindme: Send User Message (TinyAGI/tinyagi, 3.6k stars), Cortext Self Diagnosis (grandamenium/cortextos, 100 stars), Cron (smixs/agent-second-brain, 391 stars) and Actionize (infranodus/skills, 119 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Remindme?

CraftOS-dev (a GitHub user) maintains it in CraftOS-dev/CraftBot, which has 392 GitHub stars. The repository holds 89 skills in this directory. The repository was last updated on October 7, 2026.

Source: CraftOS-dev/CraftBot on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.