Skip to main content
This walkthrough creates a one-shot follow-up. The callback is scheduled only after creation returns an ID.

1. Create the follow-up

Use exactly one of --in and --at. For an absolute time, include the timezone, for example --at 2026-11-01T09:00:00+08:00. Created in a thread, the callback targets that thread by default. Use --current-thread to require this, --thread-root <message_id> for a specific thread in the same room, or --target-room for the room itself. For a thread reminder, pass --notify-users <user_id> to preserve the recipient in its delivery context. For a room-level reminder, include the intended @user_id in --message instead. Recipients must be members of the room.

2. Confirm the schedule

Save the returned ID and check the due time, room, and thread target:
list defaults to pending callbacks. Use --status all to include fired, cancelled, and failed callbacks. To stop a pending reminder, use followup cancel <followup_id>.

3. Decide about recurrence

Follow-ups fire once. A callback that checks again must explicitly create its next follow-up and have a stopping rule. For a regular schedule or an event-triggered process, create an Automation.