Events
Manage club events with support for multiple types, paid/free bookings, QR check-in, and results tracking.
Event Types
| Type | Description |
|---|---|
SOCIAL | Social gatherings, meetups |
RACING | Competitive racing (with asset assignment) |
MEETING | Club meetings, AGMs |
TRAINING | Training sessions, workshops |
Event Lifecycle
DRAFT → PUBLISHED → ONGOING → COMPLETED
→ CANCELLED| Status | Description |
|---|---|
DRAFT | Being created, not visible to members |
PUBLISHED | Visible, accepting bookings |
ONGOING | Currently happening |
COMPLETED | Finished, results can be added |
CANCELLED | Cancelled, bookings refunded |
Creating an Event
- Navigate to Events → Create Event
- Fill in title, description, date/time
- Pick a location from the dropdown — the list comes from Settings → Event Locations. Choose Other / type below to enter a one-off venue that won’t be saved to your reusable list.
- Select event type
- Set capacity (optional)
- Set ticket price (0 for free events)
- For racing events: set racing fee, configure asset assignment, and pick which pre-race disclaimers apply (defaults to all active — see Settings → Racing Disclaimers)
- Save as Draft or Publish immediately
Bookings
Free Events
Members can book directly. Confirmation email is sent automatically.
Paid Events
Members are redirected to Stripe Checkout. Booking is confirmed after payment via webhook.
Guest Bookings
If enabled, non-members can register with name and email, verify via OTP, then complete booking.
Racing Events & Per-Category Asset Selection
Racing events can require asset assignment per category. Each event category (e.g., “Senior Kart”, “Junior Kart”) can be configured to require participants to select a specific asset (e.g., kart, plane) when booking.
Per-Category Asset Requirement
- When creating or editing an event category, enable Requires Asset to make asset selection mandatory for bookings in that category.
- If Requires Asset is enabled, the booking form will show an asset picker for that category. The participant must select an available asset to complete their booking.
- Asset selection is enforced both in the admin UI and at the API/service layer. Bookings without a required asset will be rejected.
Booking Flow
When a participant books a racing event with one or more categories that require assets:
- The booking form displays an asset picker for each such category.
- Only available assets are shown (not already booked for the event).
- The participant must select an asset for every required category line.
- Asset assignments are saved per booking line and visible to admins in the booking detail and exports.
Additional Booking Questions
When booking a racing event, participants are also asked:
- Will you have pit crew/guest? Y/N — if Yes, the pit crew/guest name is required (covered by the club’s personal accident insurance).
- Pre-race disclaimers — one answer per disclaimer attached to the event. Y/N disclaimers render as Yes/No radios; Text disclaimers accept a short free-text answer (max 500 chars).
Answers are stored on the booking and shown to admins on the booking detail.
Booking Statuses
| Status | Description |
|---|---|
PENDING | Awaiting payment or confirmation |
CONFIRMED | Booking confirmed |
CANCELLED | Cancelled by user or admin |
CHECKED_IN | Checked in at the event |
Exporting Registrations
Two CSV exports are available from the bookings table on any event page.
| Export | Columns | Filtered by tabs? | Best for |
|---|---|---|---|
| Quick attendee list | 8 — name, email, status, ticket #, asset (per category), etc. | Yes | A fast door list or quick share |
| Full registration export | All registrant, asset (per category), licence, membership and disclaimer fields, with one column per disclaimer attached to the event | No (always all bookings) | Insurance reporting, post-event audits, motorsport licence checks |
The full export contains personally-identifiable information (date of
birth, address, emergency contact, licence numbers). Access is
restricted to Club Admin and Event Admin, and every download is
recorded in the audit log under EXPORT_EVENT_REGISTRATIONS.
The file opens directly in Excel and Google Sheets — encoding is UTF-8 with a BOM so non-ASCII names display correctly.
QR Check-In
Each confirmed booking generates a QR code. At the event:
- Admin scans the QR code
- System validates the booking
- Status changes to
CHECKED_IN - Prevents duplicate check-ins
Event Results
After an event is completed, admins can add results:
- Go to the completed event
- Click Add Results
- Enter participant positions, times, or scores
- Results are visible to all members
Calendar View
Events can be viewed in a calendar layout showing all upcoming and past events by Week, Month, or Year.
A second toggle switches the layout between:
- Calendar — the traditional grid (Week/Month) or month overview (Year).
- Agenda — a chronological list of days that have events, using the same event card styling as the Week view. Useful for scanning everything in a period at a glance.
Both toggles are independent: pick any view (Week/Month/Year) and any layout (Calendar/Agenda).
WordPress Display
Published events are automatically available via the [clubms_events] WordPress shortcode. See WordPress Shortcodes.
Sending Email Updates
From any event detail page, admins can send a one-off email blast to keep members in the loop — perfect for reschedules, last-minute changes, or hyping up upcoming races.
- Open the event detail page
- Click the mail icon in the action bar — a side panel slides in
- Enter a subject and message body
- Pick the audience:
- Attendees only — everyone with an active booking on this event (registered members + try-driver guests who opted in)
- All members — every active member, donor, and collector across the club
- Click Send update
Each blast is recorded with the recipient count and the number that delivered successfully. The same panel shows a chronological list of every previous email sent for this event so you can see what’s already gone out and avoid duplicate messages.
Privacy: every recipient is sent their own individual email — no one ever sees another member’s address in the To: or CC fields, even when the audience is “All members”. This protects member contact info and avoids accidental reply-all chains.
Try-driver guests who have unsubscribed or opted out of marketing emails are excluded automatically. Members are emailed via the normal transactional channel and can manage delivery from their account.
Activity History
Every event has a complete audit trail. Click the clock icon in the action bar to open the history panel — it lists every change in reverse-chronological order:
| Activity | When it’s logged |
|---|---|
| Created | The moment the event is first saved (Draft or Published) |
| Updated | Any field edit (title, date, capacity, price, etc.) |
| Status change | DRAFT → PUBLISHED → ONGOING → COMPLETED transitions |
| Email sent | Every “Send update” blast, with the audience and recipient count |
| Cancelled | When the event is cancelled |
Each entry shows who performed the action, what changed, and the time. The history is read-only and is preserved even if the event is later deleted from the dashboard.