Event Calendar
The Event Calendar is a hands-off event tracker for your server. After a one-time setup, it posts a single embed in a channel you choose and keeps it current on its own. It knows the Rise of Kingdoms event rotation, syncs upcoming events once a day, and (optionally) creates a Discord Scheduled Event for each one. When an event is about to start, it pings the role for that event so members who opted in get a heads-up.
Members pick which events they care about with the Pick up Reminder Roles button under the tracker. It opens a role menu only they can see. They only get pinged for the events they subscribe to.
| Tier | Patron |
| Command | /calendar setup, /calendar settings, /calendar deactivate |
| Who can use | Admins (Administrator or Manage Server), or the server’s Bot Admin role |
| Also on dashboard | No |
How it works
Section titled “How it works”Once a calendar is set up, five things run automatically in the background. You do not trigger any of them by hand.
- Daily event sync. Every day at 23:55 UTC the bot pulls the upcoming event list from the Codex Helper website and refreshes the tracker. It runs five minutes before reset so the reminders that fire at 00:00 are working from fresh data. The bot also runs one sync shortly after it starts up, so a restart picks up fresh events without waiting for the next day.
- Live embed updates. The tracker embed is re-rendered on each sync and again after the daily reminder pass, so events that have ended drop off the embed within minutes of reset (00:00 UTC). The embed always shows current and upcoming events only.
- Month calendar image. The View Calendar button under the tracker opens a picture of the whole month in a message only you can see, with Previous Month and Next Month buttons to look up to 3 months back and 12 months ahead. Every event is drawn as a coloured bar across the days it runs, and the current day is highlighted. It refreshes daily, and whenever the event schedule changes. If it ever looks wrong you can rebuild it yourself from
/calendar settings. If your server uses a personalized rotation, the image shows your rotation’s Egg and Hammer events, matching the tracker. - Event reminders. Reminders go out at 00:00 UTC, right on reset, mentioning the role for each event starting soon. A second pass at 00:20 UTC repeats anything the first one missed and clears out reminders for events that have already started. Different event types have different lead times, so longer-notice events are announced earlier. Old reminder messages for events that have already started are cleaned up automatically.
- Discord Scheduled Events. If you turn this on, the bot creates a native Discord event for each upcoming in-game event in a roughly 48-hour window (checked daily at 00:40 UTC, plus a catch-up shortly after startup). Each scheduled event is removed once the in-game event ends.
When you run setup, the bot creates the event roles it needs and posts the tracker. The tracker has two buttons under it: View Calendar and Pick up Reminder Roles. Members use the second one to subscribe to or unsubscribe from event pings. The menu it opens is private to them, so the tracker itself stays compact.
Generic vs personalized rotation
Section titled “Generic vs personalized rotation”The Holy Knight’s Treasure (Egg) and Hunt for History (Hammer) events run on a rotation. You choose how the calendar handles them at setup time:
- Generic mode (the default, when you leave the rotation options blank). The bot creates one combined Egg/Hammer role and treats those events as a single subscribable item.
- Personalized rotation (when you fill in
last_eventandlast_egg_pattern). The bot creates separate Egg and Hammer roles and works out exactly which gear pattern lands on each future Egg event, so reminders and Discord events name the specific rotation.
If you pick personalized rotation, both rotation fields are required (see the command options below). You can switch between generic and personalized later from /calendar settings, without tearing the calendar down.
Commands
Section titled “Commands”/calendar setup
Section titled “/calendar setup”Sets up the event calendar in a channel. The bot creates the event roles, posts the tracker embed, and starts keeping it up to date.
| Option | Type | Required | Description |
|---|---|---|---|
channel | Text channel | Yes | The channel where the event tracker embed will be posted. |
create_discord_events | True / False | Yes | Whether to automatically create Discord events for upcoming calendar events. |
last_event | Choice | No | Which rotation event is happening currently or next. Choices: Hunt for History (Hammer Event), Holy Knight’s Treasure (Egg Event). Set this to enable personalized rotation. |
last_egg_pattern | Choice | No | The gear pattern. Choices: Helmet / Legs, Weapon / Accessory, Chest / Gloves / Boots. |
Notes on the rotation options:
- If you select Holy Knight’s Treasure (Egg) for
last_event, you must also selectlast_egg_pattern(the pattern showing in that Egg event). - If you select Hunt for History (Hammer) for
last_event, you must also selectlast_egg_pattern, set to the pattern that appeared in the Holy Knight’s Treasure event immediately before this Hammer event. - Leave both blank to use generic mode.
Other behavior:
- If you set
create_discord_eventsto True, the bot must have the Manage Events permission, or setup will stop and tell you. - If a calendar is already set up in this server, setup tells you where and does nothing else. Run
/calendar deactivatefirst if you want to move it.
Example
/calendar setup channel:#events create_discord_events:TruePersonalized setup, where the next event is a Hammer and the previous Egg event was the Weapon / Accessory pattern:
/calendar setup channel:#events create_discord_events:False last_event:Hunt for History (Hammer Event) last_egg_pattern:Weapon / Accessory/calendar settings
Section titled “/calendar settings”Opens the event calendar control panel. It shows the tracker channel, whether Discord Scheduled Events are on, and which Egg/Hammer rotation the server uses. Everything you can change on a live calendar lives in the Change a setting menu at the bottom of the panel.
| Menu option | What it does |
|---|---|
| Discord events | Turns automatic Discord Scheduled Events on or off. Turning it on needs the Manage Events permission. |
| Egg / Hammer rotation | Pick the Egg or Hammer event happening now or next, plus its gear pattern, then press Save rotation to switch the server to (or re-anchor) the personalized rotation. Turn rotation off goes back to the single combined Egg/Hammer role. |
| Refresh calendar image | Rebuilds this month’s picture straight away and updates the tracker. The next View Calendar press shows the new image. |
Notes:
- The calendar must already be set up. If it is not, the bot tells you to run
/calendar setupfirst. - Changing the rotation updates the roles and the reminder-role menu for you. Members keep their existing subscriptions.
- Save rotation stays greyed out until you have picked both the event and its gear pattern.
- You should not normally need the image refresh: the picture rebuilds itself every day and whenever the schedule changes. It is there for when it looks out of date. There is a 10 minute cooldown per server between refreshes.
This command takes no options. The panel is only visible to you and closes itself after 5 minutes.
/calendar deactivate
Section titled “/calendar deactivate”Turns the calendar system off for this server.
This command takes no options. It deletes the tracker embed, then clears the calendar setup, the event roles’ database records, and any personalized-rotation data for the server. The reminders and Discord events tied to the calendar stop being created.
Example
/calendar deactivateSetup walkthrough
Section titled “Setup walkthrough”- Make sure your server is authorized. If
/calendardoes not appear, run/patreon verify(with Manage Server) and wait a few seconds for Discord to register the commands. - Decide where the tracker lives. Pick or create a channel members can see, for example
#events. - Check the bot’s permissions in that channel. It needs to send messages there. If you want Discord Scheduled Events, it also needs the server-level Manage Events permission.
- Run
/calendar setup. Choose the channel and whether to create Discord events. To use personalized Egg/Hammer rotation, also fill inlast_eventandlast_egg_pattern. - Wait for the confirmation. The embed starts with a “Loading events…” placeholder and populates within a few minutes (faster if the bot has already synced once).
- Tell members to press Pick up Reminder Roles under the tracker and choose the events they care about. View Calendar next to it shows them the month at a glance.
Permissions
Section titled “Permissions”- Who can run the commands: members with Administrator or Manage Server, or the server’s configured Bot Admin role.
- Server authorization: the server must be authorized through Patreon. Without it, the commands do not appear.
- Bot permissions: the bot needs Send Messages in the tracker channel (to post the embed and reminders) and Manage Roles (to create and assign the event roles). For Discord Scheduled Events, it also needs Manage Events.
Limits and behavior
Section titled “Limits and behavior”- One calendar per server. You cannot run two trackers at once. Deactivate first to move the embed.
- Schedules are fixed and in UTC. Sync runs at 23:55, reminders at 00:00, a reminder tidy-up pass at 00:20, and Discord event creation at 00:40, each once per day. They are staggered on purpose: reset is the busiest minute of the day for every server at once, so the jobs that are not time-critical stay out of the way of the ones that are. The bot also runs catch-up passes shortly after it starts.
- Reminder lead time varies by event. Each event type has its own notice window, so some events are announced further ahead than others.
- Discord events use a ~48-hour window. Only events starting within roughly the next two days get a Discord Scheduled Event, and each one is created only once.
- Roles are created automatically. Setup creates the roles it needs (non-mentionable, no permissions). If an event role gets deleted later, the bot recreates it on the next reminder pass.
- Old reminders are cleaned up. Reminder messages for events that have already started are removed automatically.
Troubleshooting
Section titled “Troubleshooting”- The embed still says “Loading events…” The bot may not have synced yet. It usually fills in within a few minutes. If the server only just came online, give it about five minutes and the next sync will populate it.
- “I am missing the Manage Events permission.” You chose to create Discord events but the bot lacks Manage Events. Grant the permission and run setup again.
- “I don’t have permission to send messages in that channel.” Give the bot Send Messages in the tracker channel, then run setup again.
- No reminders are arriving. Check that the bot can still send messages in the tracker channel. If it cannot, reminders are skipped until the permission is restored. Also confirm members actually subscribed to the event roles via the menu.
- Discord events stopped being created. If the bot loses Manage Events, it disables Discord event creation for that server automatically. Re-grant the permission, then open
/calendar settings, choose Discord events and switch it back on. Running/calendar setupagain does nothing on a server that already has a calendar.