# Post a recurring chat message

Use a timed promo for reminders, social links or chat rules.

Updated 26 October 2026

## 1. Start with Timed promo

Open **Flows**, press **Marketplace** and add **Timed promo**. Give it a name such as “Discord reminder”. This template starts with an **On a timer** trigger set to fire every so many minutes, and is intended for messages in Twitch chat while you are live. To [post your go-live announcement into a Discord channel](https://bloopbot.com/docs/discord-go-live#set-up), use the Discord flow instead.

> **Pebble can build a timer with you**
>
> Pebble’s **Your first timer** tutorial makes your bot speak up every few minutes, only while you’re live and chat is awake. Start it from [Tutorials](https://bloopbot.com/docs/tutorials), or choose **Timed messages** in guided setup. You can start directly without completing the command tutorial. If you already have a timer, help reuses it and explains its saved interval, live-only check and chat-activity minimum.

## 2. Set the timing and message

1. Set the timer interval in minutes. For an occasional reminder, start with 30 minutes.
2. Review the minimum chat activity setting, if used. A quiet chat may not meet this threshold.
3. Keep **Only while live** enabled in the timer if the reminder should only post during a broadcast.
4. Edit the **Chat message** action with your reminder and the correct link, then save.

```
Enjoying the stream? Find our community links on the channel page.
```

## 3. Check the schedule

Use **Test fire** to check the message and conditions without posting to chat. Enable the flow and allow the configured interval to pass during a stream. A timer with a live-only check will stop while the channel is offline.

> **A test is not the timer clock**
>
> A manual dry run checks the graph. It does not prove that the interval has elapsed or that the live chat activity threshold has been met.

After trying it, change a few words in the same reminder, save and preview again with help closed. Use the Live switch to pause its actual effect; **Done for now** only pauses setup guidance.

Timer work keeps its own capacity while chat is busy. During a large burst, reminders may run after their due time; a timer is not an exact-second clock. Chat commands have separate capacity so they can respond while reminders drain.

## Post on set days at a set time

In the timer, change **Fires** to **On set days at a set time**, tick the **Days** and type the time as **At (HH:MM, 24-hour)**, for example `20:00`. The time is read in your channel’s time zone. Bloopbot learns that zone from your browser the first time you open your dashboard, so a channel that has never set one still fires at your local time. To use a different zone, pick it in **Timezone** when you add or edit a segment on the [Schedule](https://bloopbot.com/docs/schedule) page; a zone you choose there is never replaced by your browser’s. A browser that reports UTC is not saved, so a channel on UTC stays on UTC until you pick a zone. The same zone sets the times in **Format a time** and the clock a **To a time of day** countdown counts to. After the zone is saved, the timer moves to it within a minute, with no need to save the flow again.

> **Changing days or time**
>
> Editing the days, the time or the timer itself re-arms it on save, so the next post follows what the flow now says, not what it said before.

## For a weekly or stream-schedule reminder

Use the **Timed promo** template for a message that repeats while you are live, and **Going-live countdown** for a reminder tied to your Twitch schedule — it posts half an hour before a scheduled stream. For another moment, such as a note after the stream ends or a different number of minutes, start a flow from the **From your schedule** trigger and set its **When** field. Make sure the schedule on the **Schedule** page is up to date; the scheduled start and the actual moment you go live can differ. [Work with your stream schedule](https://bloopbot.com/docs/schedule) covers both.
