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 create recurring schedules with the /schedule add-recurring command, as well as create multiple schedules with different titles with one command!
Create Or Edit Schedules
/schedule create
Required: title, date
Optional: restriction, use-multiple-titles, use-condensed-format, image
!create title date [optional restriction](regular schedules)!createc title date [optional restriction](condensed format)!createm title date [optional restriction](multiple titles)!createmc or !createcm (condensed format and multiple titles)
title: The name of the event
date: The 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.
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.
You can 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.
If you would like an image to be shown on the schedule message, attach an image when sending the
!create command.
Multiple Dates
You can create up to 12 schedules at a time.
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:
!create Scrim today at 11am, 12pm, 1pm, 2pm pdt!create Scrim tommorow at 11:00 am, 12:00 pm, 1:00pm, 2:00pm pdt!create Scrim saturday 11:00, 12:00, 13:00, 14:00 pdt!create Scrim 4/8 11, 12, 13, 14 pdt
In addition, if you need to regularly create multiple schedules for a day, you can create
recurring schedules with /schedule add-recurring. Alternatively, 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.
Multiple Titles
When creating schedules with multiple dates, you can have unique titles for each of them by using the !createm
command. This allows you to use a single command to create unique schedules without having to use the create command
multiple times. If using the slash command, set use-multiple-titles to yes.
You will need to separate each title with a comma, and the number of titles and dates must match. For
example, !createm Scrim 1, Scrim 2 today 11am, 12pm pdt will create two schedules: one
titled "Scrim 1" at 11am and another titled "Scrim 2" at 12pm.
Optional Restrictions
If using optional restriction, or the restriction option with the slash command, 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.
If the lock icon is not shown, no role restrictions will be enforced, and anyone can join them.
Condensed Format
Optionally, you can use !createc, or set use-condensed-format to yes
when using the slash command, 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 🔄.
Additional Info
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:
- Red: The
can listandsub listhave a combined total less than or equal to (gather-sizeminus 2). Note:gather-sizeis a server config option. - Green: There are
gather-sizeor more players on thecan list. - Yellow: When there are almost enough people for an event.
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.
/schedule edit
Required: schedule-link, title, date
Optional: restriction
!scheduleedit <schedule link> <new title and date> [optional restriction]
schedule link: The Discord message link to the schedule
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.
Create Recurring Schedules
These slash commands will allow Ice Mario to create schedules on a recurring schedule.
/schedule add-recurring
Required Args
create-date When to create the next schedule(s). Ex: "tomorrow 12am pdt" or "9/15 0 cest"
title The title for the schedule, or titles separated by commas if use-multiple-titles is set to yes
date The next event date(s). Ex: "tomorrow 22 cest" or "9/15 11am, 12pm pdt". The dates must be after create-date.
Optional Args
repeat-days How often to create schedules. Default: 1 for everyday. Use 7 for once a week
stop-date Use to stop schedules after a date. Use mm/dd or mm/dd/yy like "8/15". Schedules up to 11:59pm in the specified timezone provided in the date option will be created.
restriction Optional restriction from !scheduleroleadd. Ex: "abc only"
use-multiple-titles If yes, separate titles by commas. Titles and dates count must match
use-condensed-format If yes, the schedules will be condensed like !createc
image Optional image to be attached to the schedule(s)
Ice Mario will create the schedules in the channel the slash command was used, but if there is a channel redirect,
like if restriction is provided or a default redirect was enabled with the !sra
command, then the schedules will be sent to the respective channels. If there is currently no default redirect, but
one is then added after using /schedule add-recurring, the schedules will
be sent to the new channel.
These schedules will repeat forever, unless the stop-date option is provided.
The recurring schedules will preserve the dates through daylight savings time. For example, if the schedules are
set to be created at 8pm EST, then during DST, they will continue to be created at 8pm EDT. Note that this will
be +/- 1 hour for people where the time change doesn't affect them, like UTC or JST. If the schedules are
for events that use UTC time, it would be better to specify create-date in UTC to preserve the event time
across DST.
/schedule remove-recurring
Required Args
schedule The recurring schedule to remove. This will be the title when you used the /schedule add-recurring command. Select one of the autocomplete option
Stop Ice Mario from creating the specified schedules.
/schedule list-recurring/List the recurring schedule(s) for the server.
Additional Schedule Commands
Slash commands for the commands below will be added in the future.
!scheduleadd <schedule message link> <can/sub> <member ping>
Add someone to an existing schedule. The second argument should be either "can" or "sub".
!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]
!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>
!srrRemove a schedule restriction.
!schedulerolelist
!srlList all the schedule restrictions for your server.
