Skip to content

Events

Run paid, free, or donation-based events end-to-end — from creating an event with multiple ticket tiers, to Stripe-backed checkout for attendees, through QR-code check-in at the door.

Ticketed Events is a separate feature from the Gancio event calendar integration — Gancio publishes shift-based community events, while Ticketed Events handles commerce, capacity, and attendance tracking for in-person or online gatherings.

Feature flag

Enable in Settings → Feature Toggles, or set enableTicketedEvents=true in the site settings. Payments must also be enabled for paid tiers to work.


In This Section

  • Ticketed Events


    Create events, configure tier types (paid, free, donation), publish, and manage attendees.

  • Check-in Scanner


    QR scan or manual lookup to check attendees in at the door.


How It Works

  1. Create an event in the admin at /app/events — title, date, venue, format (in-person / online / hybrid).
  2. Add ticket tiers — at least one tier is required. Each tier has a type (PAID, FREE, DONATION), price, and capacity.
  3. Publish — the event transitions from DRAFTPUBLISHED and becomes available at /event/:slug on your public site.
  4. Attendees register — the public event page uses Stripe Checkout for paid tiers, a simple email form for free tiers, and a suggested-amount flow for donation tiers.
  5. Tickets are emailed — each buyer receives an email with a unique ticket code (QR-scannable).
  6. Check-in at the door — organizers use the Check-in Scanner on a phone or tablet to mark tickets as checked in.

Event Lifecycle

Events move through the following statuses:

Status Meaning
DRAFT Work in progress — not visible publicly
PENDING_APPROVAL Submitted for review (if organizer is a non-admin)
PUBLISHED Live on the public site; tickets can be purchased
CANCELLED Event cancelled — tickets marked for refund
COMPLETED Event has ended

Visibility controls who can see a published event:

Visibility Behavior
PUBLIC Listed on /events and indexable
UNLISTED Only reachable by direct link (slug URL)
PRIVATE Requires an invite code to access

Admin Routes

  • /app/events — event list, create, edit, publish
  • /app/events/:id — event detail with tickets and check-ins
  • /app/events/:id/checkin — full-screen check-in scanner

Public Routes

  • /events — browse public events (if enableEvents is on)
  • /event/:slug — event detail with ticket purchase
  • /event/:slug/ticket/:ticketCode — ticket confirmation with QR code