Skip to main content

Events

Zander's event system gives your team a structured way to plan, review, and publish community events — from casual game nights to tournaments — with automatic Discord announcements, template-driven scheduling, and a clear approval workflow.

note

📸 Screenshot: The public events page showing upcoming event cards with titles, dates, and host names


For Players

Community events are listed publicly at /events. Each event shows:

  • Event title and description
  • Start and end time
  • Host(s)
  • A link to add the event to your calendar

Individual event pages are available at /events/<slug> with full details.

tip

Check the events page regularly for upcoming community activities. Events are published once they have been reviewed and approved by staff.


For Staff

Staff manage events through Dashboard → Events (requires zander.web.events permission).

Event Lifecycle

Every event moves through a defined set of stages before it is published:

StageDescription
DraftCreated but not yet ready for review — visible only to staff
In ReviewSubmitted for approval — awaiting sign-off from a reviewer
ApprovedApproved and ready to publish
PublishedLive and visible to the public at /events
CancelledCancelled after publication — remains visible with a cancelled status
ArchivedClosed out after completion
note

📸 Screenshot: The event dashboard list view showing events at various lifecycle stages

Creating an Event

  1. Go to Dashboard → Events → Create.
  2. Enter the event title, start date/time, and end date/time.
  3. Save as a draft and fill in additional details (description, hosts, actions, announcements).
  4. When ready, click Submit for Review.

Required fields to create a draft: title, startAt, endAt.

Event Details

FieldDescription
TitlePublic-facing event name
Start / EndDate and time of the event (used for calendar and Discord announcements)
HostsAssigned linked players who are running the event
Discord Voice ChannelOptional — links the event to a voice channel for participant lookup
ActionsIn-game commands to execute at event time via the bridge executor
AnnouncementsScheduled Discord messages to send before, during, or after the event

Approving Events

The review queue is at Dashboard → Events → Review and requires zander.web.events.review.

ActionDescription
ApproveApproves the event — it can then be published
RejectRejects with an optional note sent back to the creator
PublishImmediately publishes an approved event to the public page

Approval and rejection are separate from publishing. An event must be approved before it can be published.

note

📸 Screenshot: The review queue showing pending events with approve/reject actions

Publishing and Updates

Once approved, publish the event from the dashboard. If you need to update a published event (correct timing, description changes), use Update Published — this preserves the published state while applying your edits.

Cancelling and Archiving

ActionWhen to Use
CancelThe event is no longer happening. An optional reason can be recorded.
ArchiveThe event has concluded. Removes it from the active events feed.

Duplicating Events

Any event can be duplicated as a new draft via the Duplicate action — useful for recurring events that are not yet templated.


Event Templates

Templates let you define a recurring event structure once and have Zander auto-generate draft events on a schedule.

Dashboard → Events → Templates (requires zander.web.events permission).

Creating a Template

  1. Create a new template with a title.
  2. Define the event structure (description, hosts, actions, announcements).
  3. Set a recurrence schedule — templates are checked hourly.

Auto-Generation

The eventTemplateCron background job runs every hour and:

  1. Checks for active templates whose nextGenerateAt time has passed.
  2. Creates a new draft event from the template.
  3. Updates the template's next generation timestamp.
  4. Cleans up any stale template-generated drafts that were never published and whose scheduled time has already passed.
note

📸 Screenshot: The event templates page showing active recurring templates with their schedules

All auto-generated drafts still go through the normal review and approval workflow before being published.


Discord Announcements

Events can have announcements attached — Discord messages scheduled to send at specific times relative to the event. Configure these in the event's announcement settings.

The eventAnnouncementCron background job runs every minute, checks for due announcements, and sends them to Discord. The target channel is configured in config.json:

"events": {
"discordChannelId": "CHANNEL_ID"
}

Permissions

PermissionDescription
zander.web.eventsAccess the events dashboard, create events, manage templates
zander.web.events.reviewAccess the review queue, approve or reject submitted events

Feature Toggle

"events": false

Disabling this hides the /events page and returns feature-disabled responses from all events API endpoints.