Skip to main content

Schedule Events

Scheduled event system with reminders and automatic countdown. Events are defined in the dashboard, and instances are scheduled using commands.

Commands

/event schedule

Schedules a new instance of a saved event for a given date and time.

ParameterTypeRequiredDescription
event_namestringYesSaved event name (partial search, case-insensitive)
datestringYesDate in YYYY-MM-DD format
time_strstringYesTime in 24h format HH:MM

Permissions: Server Administrator

Example: /event schedule event_name:Kill Event date:2026-06-15 time_str:20:00

Success: Ephemeral confirmation with name, date (Discord timestamp format — automatic timezone conversion), and countdown
Errors:

  • Missing administrator permissions
  • Event not found (create in dashboard)
  • Invalid date/time format
Timezone

Time is interpreted as UTC+2 (CEST). Discord automatically converts the display to each user's timezone.


/event list

Displays a list of upcoming scheduled events.

ParameterTypeRequiredDescription
(none)

Permissions: Everyone

Example: /event list

Success: Embed "📅 Upcoming Events" with a list of up to 10 nearest events (name + date/time + countdown)
Errors:

  • No upcoming events (ephemeral info)
Filtering

The list shows only instances with status scheduled and a future date. Past, cancelled, and missed events are not displayed.


/event cancel

Cancels the next upcoming instance of an event.

ParameterTypeRequiredDescription
event_namestringYesEvent name to cancel (partial search)

Permissions: Server Administrator

Example: /event cancel event_name:Kill Event

Success: Ephemeral cancellation confirmation
Errors:

  • Missing administrator permissions
  • No upcoming instance found with this name

Reminder System

The bot automatically sends reminders before an event starts:

Loop behavior (every 30 seconds)

  1. Fetches all instances with status scheduled starting within 24 hours
  2. For each instance, checks configured reminder offsets (reminder_offsets_minutes)
  3. If the current time is within a ±30s window of the reminder time → sends embed
  4. Before sending a new reminder, deletes the previous one (anti-spam)
  5. When the event starts → sends "🚀 Event is starting NOW!" (auto-delete after 15 min)

Offset example

If reminder_offsets_minutes = [60, 15, 5] and the event is at 20:00:

  • 19:00 → reminder "in 1 hour"
  • 19:45 → reminder "in 15 minutes"
  • 19:55 → reminder "in 5 minutes"
  • 20:00 → "Event is starting NOW!"

Missed events

If the bot was offline and the event passed by more than 1 hour, the instance is automatically marked as missed (no late notifications are sent).


Creating Events

Events (definitions/templates) are created in the dashboard:

  1. Dashboard → Cog "Schedule Events" → Edit
  2. CRUD interface for creating/editing/deleting events
  3. Each event has:
    • Name
    • Channel (or default)
    • Embed template (title, description, color, images) with {countdown} placeholder
    • Reminder offsets (list of minutes before start)
    • Optional content (text above embed)

Placeholder {countdown}

In the template you can use {countdown} — it will be replaced with a Discord relative timestamp (<t:UNIX:R>), which automatically shows "in X minutes/hours".


Instance Statuses

StatusDescription
scheduledScheduled, waiting to start
started"Starting NOW" message sent
missedMissed (bot offline / >1h past time)
cancelledCancelled by administrator

Configuration

OptionDescriptionDefault Value
default_channel_idDefault channel for eventsnone

The rest of the configuration (events, templates, offsets) is managed per-event in the dashboard and stored in the schedule_events table in the database.