Reminders¶
Set reminders in natural language. When the time comes, the bot either echoes your text back or, if you asked it to do something, runs the task at fire time.
Natural language
Where an operator has enabled it, you can create reminders and scheduled tasks by talking to the bot: "VibeBot, remind me in 2 hours to check the build". Listing and cancelling stay on the @remind command either way. The channel key is supybot.plugins.LLM.pendingTasksEnabled, and it's off by default. @remind always works.
remind¶
Usage: @remind <natural language time and message>
@remind in 30 minutes check the build
@remind at 5pm review the pull request
@remind tomorrow at 9am standup meeting
The bot parses times such as "in 30 minutes", "at 5 p.m.", and "tomorrow at 9 a.m." An absolute time with no time zone is read in your time zone, found in this order:
- The zone you set with
@tz, such as@tz America/Toronto. Recurring reminders keep their wall-clock time across daylight saving changes. - Your IRC client's clock, if it answers CTCP TIME. The bot asks only when the request names a clock time or a day, remembers the answer, and asks again after a week. That gives an offset, not a zone, so a recurring reminder drifts an hour at a daylight saving change. A bouncer answers with its own clock.
- UTC.
For the last two, the confirmation says which one it used. Without an authenticated account the bot skips the first two and uses UTC.
tz¶
Usage: @tz [<zone> | clear]
Takes an IANA zone name (Area/City). With no argument it shows your current zone. @tz needs an authenticated account.
A reminder has to fire between 10 seconds and 7 days from now, the text after @remind is capped at 500 characters, and you can hold 25 pending reminders at a time.
Action reminders¶
If your reminder asks the bot to perform a task (look something up, check a status, fetch a URL, summarise something), the bot runs the task as a fresh AI query when the timer fires. The query has the bot's full tool surface: web search, URL fetch, code, drawing, memory, and nested reminders.
@remind in 2 hours check the status of CVE-2026-31431 in Debian 12 and 13
@remind in 30 minutes check if https://example.com/build is green
@remind tomorrow at 9 a.m. summarize the top 3 HN headlines about Rust
Action reminders appear marked [auto] in @remind list, so you can tell them apart from plain echo reminders.
Phrase one as a watch — "every 10 minutes let me know when the mirror has 24.04" — and the bot stays quiet on every fire that finds nothing. Only a positive result reaches the channel, so a watch that never speaks is working, not broken.
"Remind me to" phrasing, where you do the thing, stays a plain echo:
@remind in 5 minutes remind me to check the build # echo only
@remind tomorrow at 3 p.m. call Bob # echo only
The parser leans towards action: any imperative it can carry out — check, search, fetch, draw, summarise — becomes an action reminder. It stays an echo only when the subject is plainly you, or when there is no verb at all. If it misclassifies, rephrase.
Recurring reminders and scheduled tasks¶
For repeating work, ask in plain English:
VibeBot, every 2 hours check the status of #1234 and ping me if it changed
VibeBot, every weekday at 9 a.m. summarize the overnight CVE feed
Anything that needs tools at fire time becomes a scheduled task. Plain echo reminders also recur: @remind every Friday at 5 p.m. switch laundry over schedules a chain of one-shot reminders that re-arm themselves, up to 50 times, before you have to set them again.
None of it can be listed or cancelled by talking to the bot — creating is all chat can do. Everything you own, reminders and scheduled tasks alike, comes back through @remind list and @remind delete, below.
Things to know:
- Action reminders count against your
@askrate limit. If you're over the limit when one fires, the bot delivers your original text as a plain reminder with a note, and makes no API call. - No elevated capabilities at fire time. Even if an owner or admin scheduled the action, it runs without those rights.
- A fired scheduled task cannot schedule another one. The depth cap is one. A recurring reminder also loses
set_reminderat fire time, so it cannot double-book against the scheduler's own re-arm. - Recurring chains cap at 50 fires. After that, re-arm the reminder.
- Scheduled tasks need an authenticated account. Log in to your network account first.
- Conversational scheduling is per channel. The plain-English forms in this section need
pendingTasksEnabledon that channel;@reminddoes not.
Listing and cancelling¶
@remind list # your reminders and tasks, with IDs
@remind delete abc1 # cancel one (del also works)
@remind delete abc1 def2 # cancel several
@remind clear # cancel everything you own
list marks action reminders [auto] and scheduled tasks [task]. Delete either kind by the id list shows it under.
@remind clear cancels every reminder and scheduled task you own. It says what went, so Cleared 2 reminders and 1 scheduled task. is your receipt.
Delivery¶
The bot delivers a reminder to the channel where you set it, or by private message if you set it by PM. If the bot was offline when a reminder came due, it delivers the reminder shortly after it comes back. A reminder that came due more than 24 hours before the bot returned is dropped, not delivered.
Owner admin¶
Bot owners can list, delete, and clear other users' reminders and scheduled tasks:
Everyone else receives a permission error.