A Discord recurring message bot with real schedule windows
You don't need "send a message every hour" — you need the right message at the right time. An event reminder that runs Friday through Sunday. A support-hours notice that shows on weekdays and steps aside at night. A quiet-hours line that only appears after 10 PM. Doing that by hand means setting reminders for yourself and toggling things on and off, which nobody keeps up.
Billboard Bot handles both halves of that problem: it rotates your messages on an interval (the recurring part) and, on Pro, limits when that rotation runs to the weekdays and hours you pick (the scheduled part). One bot-owned message, edited in place — no new posts, no pings, no cleanup.
Recurring rotation vs. scheduled windows
These are two separate dials, and it helps to keep them straight. Recurring is the interval: a billboard holds an ordered set of frames — markdown, rich embeds, images — and the bot edits one message in place to show the next frame every N seconds or minutes. That loop runs continuously by default. Scheduled is the window on top of it: a Pro setting that says *only run this rotation on these weekdays, between these hours*.
So a typical event billboard rotates its frames every 15 minutes (recurring) but only does so Friday 18:00 through Sunday 23:00 (scheduled). The rest of the week it isn't cycling at all. You set the interval when you create the billboard; you set the window afterward in the dashboard. Free plans get the recurring loop; schedule windows are the Pro layer.
What happens outside the window
Nothing gets deleted, and nothing disappears. When a scheduled window closes, the billboard simply stops rotating and rests on whichever frame was showing last — the message stays in the channel, it just goes quiet. When the next window opens, rotation resumes on its own.
That "freeze in place" behavior is deliberate, because the alternative — yanking the message out of the channel every night — would be noisy and confusing. If you want the message gone entirely outside hours, that's a different tool (deactivate it), but for the common case of "run during the event / during office hours," pausing on the last frame is exactly what you want: the information stays readable, it just stops churning.
Schedules people actually run
A few patterns this maps onto cleanly:
- Event countdowns — a tournament or launch billboard that rotates every 10–15 minutes through schedule, rules, and a join link, scoped to the event weekend only.
- Office / support hours — a "team is online, drop your ticket in #support" frame that runs weekdays 9–5 and pauses on a quieter after-hours frame the rest of the time.
- Weekend game nights — member-count and lineup frames (using {server.membercount} on Pro) that only fire Friday through Sunday evening.
- Seasonal launches — a sale or season-pass billboard you schedule to a date range and a daily window, so it isn't shouting at 3 AM.
- Quiet-hours notices — a single after-hours frame that only appears late, reminding members the mods are asleep and tickets resume in the morning.
Set it up
Create the billboard with an interval and channel, snapshot one or more messages into frames, activate it, then add the schedule window from the dashboard (Pro). The first three steps work from any channel the bot can see; the window is a dashboard setting because picking weekdays and hour ranges is a job for a form, not a slash flag. Full walkthrough in the tutorial.
/billboard create name:event interval:15m channel:#eventsCreates a draft billboard "event" that will rotate every 15 minutes in #events. Nothing is posted yet.
/billboard frames add billboard:event message_id:1380491624571212845 duration:30sSnapshots an existing message (right-click → Copy Message ID) into a frame. Optional duration overrides the 15m interval for this one frame.
/billboard activate billboard:eventPosts the billboard and starts the rotation. Run /billboard status billboard:event to confirm it's cycling.
Recurring without the spam
The reason this works as a recurring poster is that it never actually posts repeatedly. Every rotation is an *edit* to the same bot-owned message, so members see one notice that quietly updates — not a fresh ping each interval and not a scroll-back graveyard of old reminders. That's the whole point, and it's covered in depth on recurring announcements without spamming and auto-updating messages.
If you also want the billboard to stay at the bottom of an active channel, turn on the sticky option (pin:true). Sticky means resend-to-bottom: when someone posts, the bot re-sends the billboard so it stays the last message in view. To be clear, that is not Discord's native pinned-messages list — it doesn't sit in the channel's pin header, it stays visible by being the newest message.
One honest caveat for very fast schedules: Discord blocks edits to messages older than an hour, so any billboard rotating faster than 60 seconds auto-deletes and reposts roughly every 50 minutes (re-applying sticky if it's on). It's expected, the bot handles it for you, and slower billboards are edited in place indefinitely.
Pricing and earning Pro by voting
Schedule windows are a Pro feature, alongside member-count and boost variables, a 10-second minimum interval, and higher limits (10 active billboards, 50 saved, 30 frames each). Free still gives you a full recurring billboard — 1 active, 5 frames, a 60-second floor, the {server.name}, {date}, and {time} variables, and no forced branding ever. Full breakdown at pricing. Pro is $4.99/mo or $49/yr per server (€4.99/€49), billed through Paddle, and downgrading never deletes anything — over-limit billboards pause and resume when you upgrade again.
You don't have to pay to try the schedule feature. A vote for the bot on top.gg grants 12 hours of Pro for a server of your choice — 24 hours on weekends, stackable up to 72 hours — and discordbotlist votes grant Pro too. A couple of votes a day is enough to keep a server's schedule windows running for free.
Add it to your server
Invite the bot, create a billboard, set its interval, and add a schedule window when you're ready. It asks for least-privilege permissions only — View Channel, Send Messages, Embed Links, Attach Files, Read Message History, Manage Messages, and Pin Messages — no Administrator and no privileged intents for normal use, and you can scope all of it to a single channel. Commands are guild-only and gated to Manage Server.
Add Billboard Bot to Discord. Questions about windows, sticky behavior, or the hourly repost are answered on the FAQ.
Frequently asked questions
What's the difference between a recurring billboard and a scheduled window?
Recurring is the interval — the bot rotates through your frames every N seconds or minutes by editing one message in place. A scheduled window (Pro) sits on top of that and limits when the rotation runs: only on the weekdays and hours you choose. So you can have a billboard that rotates every 15 minutes but only does so during a weekend event.
What happens to the message outside its scheduled window?
It pauses on whichever frame was last shown and stays in the channel — nothing is deleted. The rotation simply stops until the next window opens, then resumes automatically. If you want the message removed entirely outside hours, deactivate it instead; for most office-hours and event cases, pausing in place is what you want.
Are schedule windows free?
Schedule windows are a Pro feature. Free plans run a full recurring billboard (1 active, 5 frames, 60-second minimum interval) but without time-of-day/weekday scheduling. Pro is $4.99/mo or $49/yr per server, and you can also earn temporary Pro for free by voting for the bot on top.gg or discordbotlist.
Does the sticky option pin the message in Discord's pin list?
No. Sticky (pin:true) means resend-to-bottom: when someone posts, the bot re-sends the billboard so it stays the last message in the channel. It does not add the message to Discord's native pinned-messages list or the channel pin header — it stays visible by remaining the newest message.
Put your scheduled messages on autopilot
Create a recurring billboard in minutes, then set a schedule window so it only runs when it should. Free to start, no card, no branding on your messages — and you can earn Pro by voting.