Tickets & pricing

Ticket types

Ticket types define what attendees can buy: name, price, capacity, tax, and sale window. Free or paid, public or unlisted, audience-segmented or universal.

Every event on Events sells through ticket types. You can have one or many per event, General Admission, VIP, Student, each with its own price, capacity, sale window, and audience. Tickets work the same way whether your event is free, paid, single-day, or multi-day.

Create a ticket type

Most workspaces can create as many ticket types as they need. If your workspace is on a plan without multi-day or price-tier features, you're limited to one ticket type per event; upgrading to a plan with either feature removes the cap.

Open your event, go to the Tickets & pricing tab, and select New ticket type in the page header. The form asks for:

  • Name: required. What attendees see on the registration form.
  • Description: optional. Shown under the ticket name on the registration page.
  • Price: in your event's currency. Set to 0 for free tickets; there's no separate free/paid toggle.
  • Quantity: total available for this ticket type. Leave blank for unlimited.
  • Tax: choose Use event / org default to inherit your workspace's default tax setup, Custom rates to pick one or more of your active tax rates (they stack), or No tax to exempt the ticket. Rates themselves are managed on the Tax tab.
  • Sales open / Sales close: when this ticket is on sale. Times are in your event's timezone.
  • Days included: multi-day events only. Pick which days this ticket covers. Leaving everything unchecked makes it a full-event pass.
  • Hide from public listing: keeps the ticket off your portal listing for the event. Anyone with the direct link can still buy it.

Free vs paid tickets

The flow at checkout depends on price, not a flag. A ticket priced at 0 is free: the attendee completes registration without entering payment, and the ticket is issued immediately. A ticket priced above zero sends the attendee to Stripe Checkout. Their seat is held during Stripe's checkout session (about 30 minutes) and confirmed only when payment succeeds.

If you want to sell a discounted bundle, like five General Admission tickets for the price of four, use a package instead of a new ticket type. A package wraps a fixed number of copies of one existing ticket type in a single purchase at its own flat price. Packages live in their own section on the Tickets & pricing tab, below the ticket type list. See Ticket packages for the full field list.

Managing ticket types after publish

Each ticket row on the Tickets & pricing tab has a dropdown with four actions:

  • Edit: change fields anytime. Existing purchases keep their original price; new purchases use the new price.
  • Copy share link: generates a direct link that jumps straight to this ticket type at checkout, bypassing paths and unlisted status. Useful for comp or VIP tickets you only want to share by email or DM.
  • Pause / Resume sales: temporarily stops the ticket without deleting it. Existing purchases stay valid. Use this for sold-out, post-deadline, or staff-only-for-now states.
  • Delete: removes the ticket type from sale. Existing purchases are not touched; those tickets stay valid.

Toggling Hide from public listing keeps a ticket off your portal listing for the event without removing it: it still checks out normally for anyone with the share link. Use this for comp tickets, sponsor and speaker tickets, or pre-release access for a mailing list.

Capacity, walk-ins, and over-selling

Quantity is set per ticket type, not per event. If you want to cap your total attendance, set matching quantities across all ticket types or watch the live count in the dashboard.

Walk-in registrations, when you or a staffer adds an attendee at the door, sit in a pending queue and don't count toward the ticket type's sold quantity until you approve them. That way a busy door doesn't accidentally oversell the online cap.

Showing different tickets to different audiences

If you need to show one set of tickets to Members and another to Guests, or Speakers vs Attendees, or Internal vs External, use registration paths. Each path is an audience segment. You assign tickets to a path from the path's own editor, under Tickets on this path, not from the ticket's edit dialog. A ticket assigned to no path is visible on every path.

Paths control audience visibility, not pricing. If you need to charge different prices to different buyer types, such as Student vs Professional rates, don't create separate ticket types; set up price tiers instead. Each ticket type can carry a different price per tier, and the attendee picks the tier that applies to them at checkout.

What the attendee sees

Public registration runs as a multi-step wizard, at a link you can share directly: /e/<your-event-slug>/register.

  1. Pick a path, if your event has multiple.
  2. Choose ticket types, packages, and quantities. The per-order cap is 20 tickets, so how many of a package you can add depends on how many tickets that package bundles.
  3. Enter contact details: email, name, phone. Email is verified by code if you have email verification turned on.
  4. Answer any event-specific custom questions.
  5. Agree to any attestations you've configured (privacy, data sharing, conduct).
  6. Review and submit. Free orders confirm immediately; paid orders hand off to Stripe Checkout.

If the event sells out, step 2 switches to Join the waitlist on workspaces with the waitlist feature enabled. Attendees join in signup order and get an email when a spot opens. The per-order cap of 20 still applies, but availability limits don't, since there's nothing to run out of on a waitlist.

Updated