Clan War Scheduler

Create schedules for people to react to.

Scheduler commands can be customized or disabled entirely by editing your server's config options.

NEW: You can now display everyone's username next to their @ping on each schedule! To enable, use the command im!config display-username true. By default, this value is set to false.

!create <event title> <date and time> [optional restriction]

event title: The name of the event
date and time: When the event takes place. Click here for an explanation on how dates are parsed. See below on how you can create multiple schedules on the same day with one command.
optional restriction: Only allow people with a certain role to react. Note: you must first add a restriction with !scheduleroleadd (shown below) in order for it to work.

Create a new schedule.

To create multiple schedules with a single command, separate the different times with a comma. Here are some examples on how to create schedules at 11am, 12pm, 1pm, and 2pm:

In addition, if you regularly need to create multiple schedules at the same times for a day, you can create a custom command. For example, if you create a custom command with !cca scrims, !create scrim today 2pm, 3pm, 4pm pdt then you can use the command !scrims to have Ice Mario send the schedule create message to create the specified schedules.

If using optional restriction, add the word "only" after the restriction name. For example, if you have a restriction with name sapphire, you'd type sapphire only as in
!create example at 12pm pdt sapphire only. You'll know it's enabled if 🔒 is shown.

Optionally, you can use !createc instead to create a condensed schedule. Each member is shown on one line instead of on separate lines which makes it more compact. You can also switch between them after the schedule has been created by reacting with 🔄.

By default, Ice Mario will ping members that have reacted 1 hour before an event as well as when an event starts. Also, each schedule will be disabled (indicated by the color black) 1 hour after the scheduled time. Alternatively, you can have Ice Mario delete the schedule after 1 hour instead, or you can have Ice Mario delete schedules between 1 and 60 minutes after an event takes place. This can all be adjusted by setting the Clan War Scheduler config options.

If you would like an image to be shown on the schedule message, attach an image when sending the !create command.

If someone signs up for two or more events happening at the same time, Ice Mario will send a warning message about the schedule conflict.

The schedule message color will change based on the number of people that have signed up. They are as follows:

Example Schedule

People can react to one of the four reactions on the message, and the schedule will update accordingly. It's recommended to give Ice Mario MANAGE_MESSAGES permission in your schedule channel because it will automatically remove someone's previous reaction if they switch to a different one.

!scheduleedit <schedule message link> <new title and date>

schedule message link: The Discord message link
new title and date: The title and date like when a schedule was created

Edit an existing schedule's title, date, or the restriction.

If you originally created a schedule with !create vs someone today 5pm pdt but need to change the time to 8pm, then an example would be !scheduleedit https://discord.com/channels/12345/67890/19283 vs someone today 8pm pdt.

!scheduleadd <schedule message link> <can/sub> <member ping>

Add someone to an existing schedule. The second argument should be either "can" or "sub".

Example schedule add
!scheduleremove <schedule message link> <member ping>

Remove someone from an existing schedule.

!schedule

Get a list of all the schedules in your server for the day (based on Pacific Time).

!myschedule

Get a list of all the schedules you have signed up for.

!stickyschedule

Initializes a sticky schedule for a server. This will show a list of all the schedules, and it will be updated once a minute. This is most helpful if its used in its own channel. Note: you will need MANAGE_MESSAGES permission. This command can be used multiple times, but only the most recent message will be updated. You may delete the sticky schedule message to stop further updates.

!scheduleroleadd <name> <allowed roles> [channel redirect] [nosub]
Alias: !sra

name: The name (1 word) for the role, to be used when using the !create command.
allowed roles: @roles or role IDs that can react with the can emoji. If more than one, separate each of them by a space. Example: !sra test @role @leader.
channel redirect(optional): #channel mention or channel ID to redirect all schedule messages to.
nosub (optional): Include the text nosub at the end to disallow sub reactions.

Add a schedule restriction so only server members with one of the roles specified in allowed roles can react.

If you include channel redirect, whenever a schedule is created anywhere in your server, it will be redirected to the specified channel instead of the current channel. For example, if you have a channel called #schedule and a channel called #chat, using the !create command inside #chat will cause the schedule to be sent to #schedule.

In addition, you can add a default schedule redirect. This will redirect all schedules that do not already have a channel redirect to a specific channel. To do so, use default for the name parameter and also provide a channel like so: !sra default #schedules. Note: If the channel you are typing in already has a channel redirect, then the default redirect will be ignored and the schedule will be sent to your current channel.

If you include nosub at the end of the command, this will prevent people without the allowed roles from being able to react with sub. Without it, people without the necessary roles can still react with sub.

Examples:
- Restrict a schedule to only people with the @example role:
!sra example @example
- Redirect all non-restricted schedules to a default channel #schedules:
!sra default #schedules
- Restrict a schedule to @example and @leader roles, and prevent others from reacting with sub:
!sra example @example @leader nosub
- Restrict a schedule to @example, @leader, and @trial role, and add a channel redirect to a channel named trial-schedules:
!sra example @example @leader @trial #trial-schedules

!scheduleroleremove <name>
Alias: !srr

Remove a schedule restriction.

!schedulerolelist
Alias: !srl

List all the schedule restrictions for your server.