Discord Scheduled Events
This app will let you schedule, run, and end Discord events using slash commands. For the purposes of this app, all events are run in a single Discord voice channel.
Commands
/createevent
will create an ephemeral embed message with helpful info. It also creates 2 buttons. The Schedule button creates a modal pop up to fill in info about the event. The Get Time button opens to a Discord Time Generator website. This allows you to schedule the date in a format that will show correctly to everyone, regardless of timezones.
/startevent
starts a scheduled event. This only works if the person using this command is the same who scheduled the event. Discord won't start an event before its scheduled time, so use this right on time or after.
/endevent
ends a currently running scheduled event. This can be used by any person with permissions to use the command. Does not affect events created in Discord outside of this app.
Install
There are no other dependencies for this app other than a linked Discord bot.
Autocode will create the slash commands in your server on install. If for whatever reason they aren't showing up in your server, run the deployed.js
file under functions/events/autocode/self
and Autocode will attempt to create the slash commands again.
When installing this app, you will need to assign an Environment Variable for the voice channel ID that events will take place in.
Depending on your needs, you may want to change the permissions for who is allowed to use these slash commands. You can change those in your Server Settings under Integrations and selecting your Discord bot.
Demo Walkthrough
Let's create an example event so you know what to expect. In my test server I'll use /createevent
to start.

I'll click the Get Time button in the ephemeral embed so I can pick a date for the event. The Discord Time Generator website let's me pick a Type for the format, but it's not relevant. Any one of them will do.

After I copy the date timecode, I'll go back to the embed and click the Schedule button. A modal pops up and I'll fill in the info for the event I want to schedule. I'll paste in my timecode and fill in the rest. By default the event is scheduled to run 60 minutes, but in practice you can run the event as long as you want. It just puts an endtime in the event description.

I'll submit my info and the embed will update to show me what I've entered. The buttons will change to Approve and Redo. If the info is correct, the Approve button creates the event in Discord. If there's something I want to change in the info, the Redo button opens a modal pop up with my previous data prefilled to make changes.

My event is scheduled with me as the host! Once it's ready to start, I'll use /startevent
and we're ready to party. Since I'm the host who scheduled the event, only I can start it.

Once the event is over, I'll use /endevent
to wrap up. This command doesn't need the host to use it to work. Anyone who has permission to use the command can end an event.

The End
That's it! If you run into any issues, or have questions feel free to ask in the Autocode Discord server.
Happy Hacking! ๐
Ethan