12 min readintermediateLast updated: May 19, 2026

Sub-events & Special Treatments

Real-world events rarely happen in one moment. A wedding has a ceremony, a reception, sometimes a welcome dinner the night before and a brunch the morning after. A multi-day conference has a main event, a VIP networking dinner, and a workshop track only some attendees can access. A milestone birthday has a private family gathering and an open after-party.

Sub-events and special treatments let you model that reality inside a single Fotify invitation. Each guest sees only what applies to them — the ceremony they were invited to, the after-party they qualify for, and the perks you've arranged for their party (hotel discount, transport credit, welcome gift).

Beta: This feature is rolling out in beta. We're iterating quickly based on organizer feedback — if something feels off, ping support and we'll prioritize.

What sub-events and special treatments solve

Sub-events are child experiences within your main event. Each one has its own:

  • Name, description, photo, dress code, accent color
  • Date, time, location with map link
  • RSVP rules: deadline, plus-ones, capacity, waitlist
  • Access rules: public, tag-gated, or explicit per-guest
  • Optional access code for "secret" sub-events
  • Optional dependency on another sub-event (e.g. "must accept ceremony first")

Special treatments are perks you've arranged for some or all guests. Think of them like the VIP track of your event:

  • Hotel block with a group discount code
  • $40 Uber credit for out-of-town family
  • Welcome dinner included (no extra RSVP needed)
  • VIP lounge access for the wedding party
  • Spa pass for the first 20 guests who claim it

Treatments appear privately on each guest's invitation — guests only see what's been assigned to them.

Where to find this in your dashboard

  1. Open your event at dashboard.fotify.app
  2. Go to RSVP in the sidebar
  3. Click the Sub-events & VIP tab (look for the Beta badge)

You'll see two panels: Sub-events at the top and Special treatments below. They're managed independently — a guest can be invited to a sub-event without receiving any treatments, or receive a treatment without being invited to any sub-events.

Heads up: Sub-events and special treatments are part of the premium feature set. They're available on events that are on a paid (credit) tier or have an active subscription. If your event isn't entitled yet, the tab shows an upgrade card instead of the editor.

Step 1: Create your first sub-event

Click Add sub-event in the Sub-events panel. A side drawer opens with the editor.

Basics

  • Name — what guests see ("Welcome dinner", "After-party", "Sunday brunch")
  • Description — a short paragraph shown on the card and details modal
  • Photo URL — a cover image for the card (any public image URL works; we recommend a 3:2 or 16:9 ratio)
  • Accent color — used for the card header strip and the Accept button

When & where

  • Starts at / Ends at — the time window for this sub-event
  • Location name + Address — what to display; if you also paste a Google Maps link in the map URL field, the name becomes a clickable link
  • Dress code — shown as a chip on the card

RSVP rules

  • Requires RSVP — when on, guests must accept or decline. When off, the card is informational only (no buttons).
  • RSVP deadline — past this date, the Accept/Decline buttons disappear.
  • Allow plus-ones + Max plus-ones per RSVP — caps how many people from one party can come. Leave empty for "unlimited (up to the party size)".
  • Capacity — total spots across all parties. Leave empty for unlimited.
  • Enable waitlist — when capacity is reached, new RSVPs are placed on a numbered waitlist instead of being rejected.

Access rules

This is what makes sub-events powerful — you decide who can RSVP:

  • Anyone with an RSVP (public) — every guest of the main event sees this sub-event.
  • Guests with specific tags (tag-gated) — only guests with at least one of the selected tags can see and RSVP. Combine with guest tags like family, wedding-party, or out-of-town to segment cleanly.
  • Only specific guests (explicit) — completely hidden by default. You grant access individually from the Guests tab.

Access codes — for surprise sub-events

For tag-gated sub-events, you can optionally set an Access code. Even after a guest matches by tag, they won't see the sub-event card until they enter the code in the "Have a code?" field at the bottom of their invitation. Use this for surprise parties, secret after-hours rooms, or just-for-fun reveals.

Dependency

If your event has a logical order — say, the reception only makes sense for guests coming to the ceremony — set the reception's "Requires acceptance of" field to the ceremony. The server will block reception RSVPs until the parent is accepted.

Save

Click Save. The sub-event appears in the panel with a capacity progress bar and status chip. Click it to edit again at any time.

How party size and plus-ones interact

Two limits apply simultaneously to every sub-event RSVP:

  • The sub-event's Max plus-ones — the per-RSVP cap you set (e.g. "max 1 plus-one to the after-party").
  • The guest's confirmed party size — how many people they confirmed on the main RSVP.

The effective cap is the smaller of the two. So if the main RSVP confirmed 2 of 3 invited, and the sub-event allows up to 3 plus-ones, the guest can still only bring 2 people to the sub-event. Decline the main RSVP and sub-events are hidden entirely — there's no version of "skipping the ceremony but coming to the party".

Naming who's coming

When a guest accepts a sub-event, they're prompted to enter the names of each attendee from their party. If you turned on Collect guest names on the main RSVP, those names are pre-filled — guests can keep them, edit them, or replace them.

The same applies to special treatments: when a treatment uses a per-guest unique code, the guest picks which members of their party the perk applies to. A $40 Uber credit for 2 of 4 family members works exactly as expected.

Step 2: Create a special treatment

In the Special treatments panel, click Add treatment. Pick a type — the form rearranges itself based on what you choose:

Type — what kind of perk is this?

TypeWhen to use it
BadgeRecognition only ("VIP Guest", "Wedding party") — no redemption, just shown
Discount codeHotel block, restaurant 20% off, retail coupon
Allowance / credit"$40 Uber credit", "$100 transport budget"
Included serviceWelcome dinner, photographer hour, spa session — already paid by you
Lodging / hotelA hotel block with a booking link
TransportationShuttle pickup, airport transfer details
GiftWelcome bag, gift card, custom present
Ticket / passVIP pass, backstage access, all-access wristband
Concierge contactA WhatsApp number or contact for any need
CustomAnything that doesn't fit above

Category — how it's grouped on the invitation

Each treatment also belongs to a category — Stay, Travel, Experience, Gift, Service, or Recognition. On the guest's invitation, treatments are visually grouped by category, so "Where to stay" shows your hotel options together and "Getting there" groups transport perks.

Provider, value, validity

  • Provider — "Marriott", "Uber", "Fotify Concierge" — shown as a subtitle on the card
  • Value + Currency — optional, e.g. "$40 USD" displayed as a price badge
  • Valid from / Valid until — if set, the redemption window is enforced server-side
  • Limited quantity — leave empty for unlimited; set a number for first-come-first-served (e.g. "First 20 guests get a spa pass")

How guests redeem

Pick a Redemption mode:

  • No redemption (display only) — pure information, no claim flow
  • Shared code for all guests — one code everyone sees ("WEDDING2026") with an optional booking URL
  • Unique code per guest — pop one code from your pool per guest (great for personalized Uber/Lyft promo codes)
  • Redemption URL — a button that links out to a booking page
  • Contact someone — instructions for getting in touch
  • QR voucher — a one-shot QR code for in-person redemption

When you pick Unique code per guest, a code pool manager appears at the bottom of the drawer. Paste codes (one per line or comma-separated) and click Import codes, or hit Generate 25 codes to have Fotify create them for you. Each guest who claims gets one unique code from the pool — first-come, first-served.

Who gets it

  • Assign to tags — every guest with any of the selected tags receives this treatment automatically.
  • Private — when on, the treatment is invisible unless explicitly assigned (use this for VIP perks you don't want generally-tagged guests to see).
  • Assign to specific guests — from the Guests tab, you can grant individual treatments.

What the guest sees

Sub-events and special treatments are hidden until the guest accepts the main RSVP. This is intentional: it keeps the first impression focused on the headline event and prevents teasing extras for guests who decline.

Once the guest taps Accept on the main RSVP:

  1. They see the usual "Thanks for confirming!" toast.
  2. About 2 seconds later, if they have any sub-events or treatments available, a follow-up toast appears: "We've also unlocked 2 additional sub-events and 1 special perk for you — scroll down to explore."
  3. The Other moments for you section reveals the sub-event cards, in the order you set.
  4. The Just for you section shows their assigned treatments, grouped by category, with copy-to-clipboard buttons for codes and redemption URLs.

Guests with no extras assigned never see either section and never see the follow-up toast.

Sub-event RSVP flow

Each sub-event card shows the photo, date, location, dress code, and capacity status (with a "spots left" hint when running low). Below that, the guest:

  1. Picks how many of their party are coming (capped at their confirmed party size and the sub-event's plus-one limit)
  2. Confirms names for each attendee (pre-filled from the main RSVP if you collected guest names)
  3. Taps Accept or Decline

After submitting, the card shows a status chip — Going, Not going, or Waitlisted #3 if capacity was reached and the waitlist is enabled.

Treatment claim flow

Display-only and shared-code treatments require no claim — they show up immediately with a Copy button for the code. For limited-quantity or unique-code treatments, the guest taps Claim to lock in their slot. If the treatment allows specifying who it applies to, the guest first ticks the boxes for which members of their party the perk covers.

Tracking responses & exporting CSV

Open any sub-event or treatment from the dashboard panel to see live stats inside the editor drawer:

  • Sub-events: counts of accepted, declined, waitlisted, and pending — plus an Export CSV button that downloads every response with guest contact info, attendee names, and timestamps.
  • Special treatments: counts of assigned, claimed, and redeemed — with an Export CSV that includes unique codes, who the treatment applies to, and redemption state.

CSVs use semicolons as separators (matching the main guest list export) and open cleanly in Excel, Numbers, and Google Sheets.

Tips & patterns

Wedding multi-day flow

A great default for weddings:

  • Welcome dinner (Friday) — tag-gated to out-of-town-family. Capacity 30.
  • Ceremony (Saturday afternoon) — public, no plus-ones beyond party size.
  • Reception (Saturday evening) — public, depends-on the ceremony.
  • Sunday brunch (Sunday morning) — tag-gated to wedding-party + immediate-family.

Pair with treatments:

  • "Marriott Downtown — 20% off room block, code WEDDING2026" → tag out-of-town-family
  • "$40 Uber credit (unique per guest)" → tag out-of-town-family
  • "Welcome bag at your hotel" → tag wedding-party
  • "VIP lounge access" → tag wedding-party, private

Conference VIP track

  • Main conference — public
  • VIP networking dinner (Thursday night) — explicit access only, capacity 50, dependency on main accepted
  • Speaker breakfast (Friday) — tag-gated to speakers

Treatments:

  • "Premium hotel block — code CONF26" (shared code) → tag out-of-town
  • "Backstage pass" (limited quantity 25) → first-come first-served, no tag

Surprise event

  • Tag-gate the surprise to a small list of close friends + set an Access code. The friends still need to enter the code on their invitation to see the card. The rest of the guests are completely unaware it exists.

Frequently asked questions

Q: Can a guest RSVP to a sub-event without accepting the main one? A: No. Sub-events only appear after the main RSVP is accepted. Declining the main RSVP hides all extras.

Q: What happens if I change a sub-event's capacity after people have RSVPed? A: Existing accepted responses stay valid. New RSVPs are checked against the new capacity. If you lower it below the current count, no one is removed — but the next person to RSVP either gets blocked or goes to the waitlist (depending on your settings).

Q: Can I assign a treatment to one specific guest without using tags? A: Yes. The Guests tab lets you assign treatments individually. This is also how the "Private" toggle is intended to work — private treatments don't auto-assign from tags; they require explicit per-guest assignment.

Q: Do guests get an email or SMS reminder for sub-events? A: The current beta surfaces sub-events on the invitation itself. Per-sub-event reminders are on the roadmap — we'll wire them into the existing SMS/email scheduling.

Q: Can guests change their mind after accepting a sub-event? A: Yes, until the sub-event's RSVP deadline. Decline simply swaps the status — the seat is freed back into the capacity, and the next waitlisted RSVP can be promoted.

Q: What about translations? I run events in multiple languages. A: The UI strings are translated alongside the rest of the dashboard and invitation. Sub-event names, descriptions, dress codes, and treatment content live in the database in whatever language you write them in — we don't auto-translate user content.

Q: How are exports formatted? A: Semicolon-delimited CSV, UTF-8 encoded, same format as the main guest list export. Columns include guest contact info, status, attendee names, tags, and timestamps. Treatment exports also include unique codes and redemption state.

Next steps

Was this article helpful?

Related Articles