Experiences
Sell tours, classes, and workshops with recurring time slots, a public booking page, Stripe checkout, waivers, and a waitlist.
Experiences are for anything you sell by the session to the public — a walking tour, a cooking class, a tasting, a workshop, a guided hike. You describe it once, set a recurring schedule, and VendorStreet generates bookable time slots on a public page where guests pick a time, pay, and get a confirmation.
Unlike markets, where vendors book spots from you, experiences sell directly to guests. If you run both, they live side by side in one organization and roll up into the same reports.
Find them under Settings → Organization → Experiences, or at /admin/organization/experiences.
What do I need before I start?
Connect your payouts. Every experience on VendorStreet is a paid booking that runs through Stripe — there is no free-booking path, and the price must be greater than zero. If Stripe isn’t connected, guests trying to book will be turned away at checkout.
Set this up first under Settings → Organization → Payouts. See Payments & Payouts.
How do I create an experience?
Use the Create a new experience card — “Set up the tour and pricing details.”
Describing it
- Name — what guests see.
- Slug — the URL-safe short name that appears in your public link. Lowercase letters, numbers, and hyphens only. Must be unique.
- Short description — the one-liner on the listing page.
- Full description — the detail on the experience page. There’s a ✨ Generate button that drafts a couple of sentences for you from the name and a few details; treat it as a starting point and edit it into your own voice.
Where it happens
- City, State, Country
- Meeting point — where guests actually turn up. Be precise; this is the field that generates the most day-of phone calls when it’s vague.
- Location — an optional saved location from your organization’s locations list.
- Instructor — an optional staff member, which also drives per-instructor utilization in your reports.
How it runs
- Duration label — the human-readable version (“About 2 hours”).
- Duration (minutes) — the real number, used to compute each slot’s end time. Required before you can generate slots.
- Default capacity — how many guests per session. Must be at least 1.
- Min attendees — the floor below which the session isn’t viable.
What it costs
- Price (cents) — note the unit.
4500is $45.00. Must be greater than zero. - Currency — defaults to USD.
Booking policy
- Booking cutoff (hours) — how close to start time guests can still book.
- Cancellation window (hours) — how far ahead a guest can cancel themselves for a full refund.
Click Create experience.
New experiences are created active and immediately public. There is no draft state — if you’re not ready for bookings, don’t create it yet, or don’t share the link.
How do I set up sessions and time slots?
Experiences use a two-level model: you define a schedule (a recurrence pattern), and VendorStreet materializes it into individual slots that guests book.
Under Experience schedules, create a schedule with:
- Start date and End date — the range to generate across.
- Start time — the time of day each session begins.
- Days of week — toggle the days it runs.
- Capacity override — a different capacity for these sessions than the experience default.
- Blackout dates (optional) — comma-separated
YYYY-MM-DDdates to skip. Holidays, closures, your vacation.
Creating the schedule generates the slots immediately. Each slot’s end time is computed from your Duration (minutes), and times resolve in your organization’s timezone.
To change a pattern, edit the schedule and click Generate slots again.
This is the one to be careful with: regenerating deletes and rewrites every slot for that schedule. It’s not an incremental update. Get the pattern right rather than regenerating repeatedly against a live schedule. Generation is also capped at 365 days, so build a year at a time.
There’s no way to edit, cancel, or re-capacity an individual slot — the schedule is the unit of control.
Where do guests book?
Two public pages, no login required:
- Your listing page —
/<your-org-slug>/experiences, showing everything you offer with a View experience button on each. - The experience page —
/<your-org-slug>/experiences/<experience-slug>, with the description, details, and the booking form.
On the experience page, guests use the Book a time slot card — “Select an available date and provide your details.” They choose a Time slot, enter their Full name, Email, and Quantity, pick any add-ons, accept the Waiver if you’ve published one, and click Continue to payment.
How does checkout work?
Guests are redirected to Stripe Checkout. The booking is created in a pending state and held for 30 minutes while they pay — that capacity is reserved for them and released automatically if they don’t complete.
When payment succeeds, the booking is confirmed. If a guest abandons checkout, the page tells them plainly: “Checkout canceled — your seat wasn’t booked. You can try again below.”
Confirmation isn’t shown on the experience page — guests get their own booking page at /booking/<booking-id>, which reads the real payment status rather than trusting the redirect. That page shows Confirmed, Pending payment, Cancelled, or Cancelled · refunded, and it’s where guests go to cancel.
Capacity is enforced at the moment of booking, counting both paid bookings and live holds. If a session fills while someone is mid-checkout, they’ll get a clear “not enough capacity” message rather than an oversold session.
Can I add a waiver?
Yes. Use the Waiver card to write your waiver text and click Save waiver. Once published, guests must tick “I have read and accept the waiver” before they can proceed to payment.
How does the waitlist work?
When a session is full — or a guest just wants to be told if something opens — they use the Join the waitlist link on your experience page. They get: “You’re on the waitlist — we’ll email you if a spot opens.”
When a booking is cancelled, VendorStreet automatically emails the earliest person waiting for that slot, telling them a spot has opened. It’s first-come, first-served from there — the email is a notification, not a reservation.
You can see your waitlist in the operator Waitlist card. It’s read-only: there’s no manual promote or remove, and no way to convert a waitlist entry directly into a booking.
How do cancellations and refunds work?
Guests cancel from their booking page at /booking/<booking-id>, which tells them the policy: “You can cancel up to [N] hours before the session for a full refund” — the number you set as Cancellation window (hours). Past that window, self-service cancellation is refused and they’re pointed at your organization to sort it out directly.
You can cancel and refund any paid booking at any time using Cancel & refund, regardless of the cancellation window. Refunds go back through Stripe, including reversing the transfer and the platform fee.
Cancelling also triggers the waitlist notification for that slot.
What else ships with experiences?
- Bookings roster, grouped by session — your guest list for each date.
- Performance card with revenue collected, guests, upcoming sessions, upcoming occupancy, repeat customers, and per-instructor utilization. More in Reporting & KPIs.
- Add-ons attached per experience, priced server-side with inventory enforcement. See Add-ons.
Common gotchas
- Price is in cents.
45is forty-five cents, not forty-five dollars. - Regenerating slots wipes and rewrites them. Never a partial update.
- Duration (minutes) is mandatory for slot generation even though it looks optional next to the friendly duration label.
- No draft state. Creating an experience publishes it.
- No free experiences. Price must exceed zero.
- No operator-side booking creation. You can’t add a guest manually — everyone goes through the public checkout.
- Stripe must be connected, or guests hit a wall at payment.
- Add-ons should share the experience’s currency. Mixed currencies aren’t blocked on the experience checkout path, so an add-on priced in a different currency will be summed as though it matched.
Next steps
- Add-ons — sell extras at checkout
- Payments & Payouts — connect Stripe and get paid
- Reporting & KPIs — occupancy, revenue, and repeat guests