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 straight from the embed using a role menu. They only get pinged for the events they subscribe to.
| Tier | Patron |
| Command | /calendar setup, /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, four things run automatically in the background. You do not trigger any of them by hand.
- Daily event sync. Every day at 00:05 UTC the bot pulls the upcoming event list from the Codex Helper website and refreshes the tracker. 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.
- Event reminders. Every day at 00:20 UTC the bot checks for events starting soon and posts a reminder in the calendar channel, mentioning the role for that event. 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. Members use the role menu on the embed to subscribe to or unsubscribe from event pings.
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).
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 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 use the role menu on the embed to subscribe to the events they care about.
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 00:05, reminders at 00:20, and Discord event creation at 00:40, each once per day. 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 and run
/calendar setupagain.