1. Switch it on
Open the dashboard, pick the server and go to Services. The card is called Scheduled Announcements; use its switch to enable it. The bot needs View Channel, Send Messages and Embed Links in every channel it will post to, and Pin Messages if you want the setup guide pinned. The server owner and managers can create and change announcements; viewers can look.
Optional: on the Announcements page, the Setup button runs a one-click setup. It looks for an existing #announcements, #announcement or #news channel. When none exists it creates #announcements, readable by everyone and writable only by the bot, and pins a short guide in it. An existing channel is left untouched. You can still pick any channel per announcement.
2. Send one right now
In Discord, run /announce now with a channel and a message. The bot confirms privately and posts the text within about 30 seconds. Role and user mentions ping; @everyone and @here do not. On the dashboard, "Fire now" next to a waiting or failed announcement posts it at once, after a confirm that asks "Post this announcement now?".
3. Schedule one from the dashboard
On the Announcements page click "+ New Announcement", or click a day on the calendar to start with 09:00 on that date. Fill in:
- Internal label (optional): shown in the dashboard list, never posted.
- Channel: a text or announcement channel. If the list cannot load, paste the channel ID.
- Timezone: starts as your Server Timezone (see step 4). Invalid names are rejected.
- Message: up to 2000 characters; Discord markdown works. A Discord preview on the right updates as you type and shows when it fires.
- Recurrence: "Once (specific date/time)" plus "Send at (in the timezone above)".
- Embeds (advanced, optional): raw Discord embed JSON, one object or up to 10. A message or an embed is required.
Click Schedule. A server can hold up to 100 waiting announcements.
4. Repeat it, in your server's timezone
Pick "Every day", "Weekly (pick weekdays)" or "Monthly (pick day of month)", set "Time of day (HH:MM, 24-hour)" and, for monthly, a day or "Last day of month". Days past a month's length fall back to its last day. Two optional bounds: "End date" and "Max occurrences". The first post is the next matching time after you save. If the bot was offline at a slot, that post goes out once when it is back, then the schedule continues.
The Timezone field is pre-filled with the Server Timezone from the Bot page (UTC until you set one). 09:00 in that zone stays 09:00 through daylight-saving changes. Each announcement keeps the zone it was saved with; changing the Server Timezone later does not move existing announcements. Edit them to switch zones.
5. Ping roles
Under Mentions, "Allow role mentions" is on by default and "Allow @everyone / @here" is off by default, so a scheduled post cannot mass-ping by accident. User mentions always notify. To ping a role, write it in the message as a role mention (<@&ROLE_ID>); the preview shows the role's name and colour. With "Allow role mentions" off, the role name appears but nobody is pinged.
6. Pause, resume or cancel
The Announcements page groups entries as Pending (Edit, Fire now, Pause, Cancel), Paused (Edit, Resume, Cancel), Recently completed, Cancelled and Failed. Pause keeps an announcement for later; Resume re-plans a repeating one from now, while a one-time one keeps its date. Cancel asks "Cancel this announcement? This cannot be undone." and ends a repeating series. From Discord, /announce list shows each waiting announcement with its number and /announce cancel takes that number.
7. When a channel breaks
If a target channel is deleted or the bot loses access, the entry gets a CHANNEL DELETED or NO ACCESS tag, a banner says "Some announcements cannot be delivered. The channel was deleted or the bot lost access. Edit the announcement and pick a new channel.", and the server's owner and managers get a dashboard notification. A one-time announcement moves to Failed; a repeating one keeps its schedule and skips the broken slot. Edit it, pick a new channel and save; a failed one is re-armed by that save.