Skip to content

Events

Events are what you schedule staff for — a party, a grand opening, a recurring weekly night. Each event has one or more Positions attached, each with its own shifts (a time range and a capacity), and staff can sign themselves up. Event Templates let you save a recurring event's whole shape — positions, shifts, and all — and reuse it without rebuilding it from scratch every time.

Quick Start

  1. Run /admin menuEventsManage EventsAdd, then choose Blank Event. Set its name, description, and start/end time from the detail screen that opens.
  2. From that same screen, Add a Position to the event, then open it and Add a shift (start/end time and capacity).
  3. Click Post to Channel and pick a channel — this posts a live-updating announcement staff can sign up from.

Screenshot needed

Creating an event, attaching a position with a shift, and posting it.

  1. Open Events → + New Event, fill in name/description/start/end/image, and create it.
  2. On the event's page, attach a position and add a shift (start, end, capacity) inline.
  3. Add signups directly by searching for a member — no posting step; the Dashboard shows everything on one page.

Screenshot needed

The new-event form and the event detail page with shifts.

Full reference

Event basics

Manage Events lists every event with its start time, plus Add / Modify / Remove. Add asks Blank Event or From Template first (see Event Templates below).

An event's detail screen shows Name, Description, Start Time, End Time, and Image (a URL — Discord doesn't render it visually yet, only the Dashboard does), each with its own Edit. Below that: its Positions (with shift counts) and Elements (see below), each with their own Add/Modify/Remove row, and Post to Channel / Save as Template.

Events lists every upcoming event with a fill-status chip (how many shifts are staffed) and its position tags, sorted by start time. + New Event takes name, description, start/end, and an image URL — there's no "from template" option on the Dashboard.

An event's own page shows its image (rendered, unlike the Discord side), description, and every attached position with its shifts — editing name/description/time isn't available from this page, only positions/shifts/signups.

Positions & shifts

Attaching a position to an event only offers positions from your catalog that aren't already attached. Each attached position has its own shift list — Add creates a 1-hour, capacity-1 shift starting at the event's start time, ready to adjust. A shift's detail screen shows Start Time, End Time, and Capacity, plus who's Signed Up, with Assign Member and Remove Signup for admin-side changes.

Removing a position from an event deletes its shifts and signups too — you're warned before confirming.

Positions and shifts are managed inline on the event's own page: attach a position from a dropdown, then add a shift by typing start/end (your browser's local time) and capacity directly under that position. Signups show as small avatar circles per shift — dashed circles are open slots, and one turns into a red ! if the shift starts within 7 days and is still unstaffed. Add a signup by searching for a member; remove one by clicking their avatar.

Signups

Staff join shifts themselves via the posted announcement in Discord (see below) — there's no Dashboard equivalent of the public join/leave flow, since the Dashboard is an admin tool. Admins can add or remove a signup directly on either surface (Assign Member / Remove Signup in Discord, the inline signup list in the Dashboard).

If your venue has a signup lockout configured (see Settings below), a shift too close to its start time shows as Locked and can't be joined or left through self-service. Admin actions on either surface (Assign Member / Remove Signup in Discord, the inline signup controls in the Dashboard) always bypass the lockout — it only gates the public self-service join/leave flow.

Posting & the shift browser

Post to Channel picks a text channel and posts a compact, interactive summary (name, description, times, and each position's fill count) with two buttons:

  • View Shifts & Sign Up — opens a private, personal shift browser listing up to 10 shifts with Join/Leave buttons (or Locked, if the lockout applies).
  • Event Details — opens the event's Secondary Elements as a private message, if any have a value set.

The posted summary keeps itself up to date automatically as you edit the event, its positions, shifts, or elements — you never need to repost it.

The Posted to Discord section (bottom of an event's page) posts a static summary (name, description, times, per-position fill counts) to a channel you pick — not the same interactive message Discord's own Post to Channel produces, and it has no Join/Leave buttons for staff. Unlike the Discord side, it doesn't refresh itself automatically — click Refresh after editing the event to update an existing post, or Remove to take it down. You can post the same event to multiple channels; each one is tracked and managed separately.

Secondary Elements

Discord-only — the Dashboard has no equivalent yet. Elements are small optional info cards on an event: Address, Theme, Syncshell, Party Finder, Shout Run, Greeting, Venue Shout, DJ Info, or Misc, each with an optional title (auto-numbered if you leave it blank, e.g. a second Theme becomes "Theme 2") and a value. Add up to 20 per event from the event's detail screen; only elements with a value set actually show up in the posted Event Details view.

Event Templates

Discord-only — the Dashboard has no template management or "create from template" option.

A template stores its positions, shifts, and elements the same way a live event does, except shift times are stored as offsets (e.g. "2 hours after the event starts") rather than fixed dates — so applying the same template on different weeks schedules everyone at the right relative time automatically. Two ways to create one:

  • Build as Template, from the Templates menu — start from scratch.
  • Save as Template, from a live event's detail screen — snapshots that event's current positions/shifts/elements into a new template, name it and you're done.

To use a template, Add an event → From Template → pick one → pick an anchor date/time (everything else is scheduled relative to it) → confirm. You're then asked whether to post the new event immediately. If a template references a Position that's since been deleted from your catalog, applying it skips that position and tells you, rather than failing or silently dropping it.

Settings

Settings (from the Events menu) has:

  • Signup Lockout — how many minutes before a shift starts to freeze public self-service sign-ups/drops (15 minutes up to 8 hours, or disabled). This is enforced by the API itself, not just hidden in the UI. See Signups above for how this interacts with admin actions on each surface.
  • Require Staffing Qualification — off by default. When on, a shift's Position needs at least one qualified staff member before anyone can self-sign-up for it; admin actions (Assign Member, and the Dashboard's signup controls) always bypass this, same as the lockout. Leaving a shift doesn't retroactively re-gate it, so losing a qualification never traps someone who already signed up.

The venue's Settings page has an Event Signup Lockout (minutes) field alongside its other venue-wide settings (timezone, log channel, accent color, and the VIP warning threshold — see VIP) — same value, same effect, just typed as a plain number instead of picked from Discord's preset list.

  • Positions — every shift belongs to a position from this catalog; set it up first.