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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| event_name | string | Yes | Saved event name (partial search, case-insensitive) |
| date | string | Yes | Date in YYYY-MM-DD format |
| time_str | string | Yes | Time 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
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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| (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)
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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| event_name | string | Yes | Event 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)
- Fetches all instances with status
scheduledstarting within 24 hours - For each instance, checks configured reminder offsets (
reminder_offsets_minutes) - If the current time is within a ±30s window of the reminder time → sends embed
- Before sending a new reminder, deletes the previous one (anti-spam)
- 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:
- Dashboard → Cog "Schedule Events" → Edit
- CRUD interface for creating/editing/deleting events
- 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
| Status | Description |
|---|---|
scheduled | Scheduled, waiting to start |
started | "Starting NOW" message sent |
missed | Missed (bot offline / >1h past time) |
cancelled | Cancelled by administrator |
Configuration
| Option | Description | Default Value |
|---|---|---|
default_channel_id | Default channel for events | none |
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.