---
title: Building an event RSVP form with limited spots
description: Build an event RSVP form with a limited number of spots on your B12 website, with a live spots-left count, a waitlist, and an owner-only guest list.
---

[Skip to content](https://support.b12.io/en/v3/building-an-event-rsvp-form-with-limited-spots#main-content)

[![2026 B12 company logo.](https://support.b12.io/hubfs/B12_logo.svg)](https://support.b12.io/en?hsLang=en)

- [B12 Website](https://www.b12.io/)
- Products
  
  Show submenu for Products

    - Sites
      
      Show submenu for Sites

          - [AI builder](https://www.b12.io/ai-website-builder)
          - [Backends](https://www.b12.io/backends)
    - Client engagement
      
      Show submenu for Client engagement

          - [Client intake forms](https://www.b12.io/client-intake-forms)
          - [Contact manager](https://www.b12.io/contact-manager)
- [Templates](https://www.b12.io/ai-website-prompt-gallery)
- Resources
  
  Show submenu for Resources

    - [Resource center](https://www.b12.io/resource-center)
    - [Case studies](https://www.b12.io/case-studies)
- [Pricing](https://www.b12.io/pricing)
- [Log in](https://b12.io/dashboard/)

Open main navigation

Close main navigation

- [B12 Website](https://www.b12.io/)
- Products
  
  Show submenu for Products

    - Sites
      
      Show submenu for Sites

          - [AI builder](https://www.b12.io/ai-website-builder)
          - [Backends](https://www.b12.io/backends)
    - Client engagement
      
      Show submenu for Client engagement

          - [Client intake forms](https://www.b12.io/client-intake-forms)
          - [Contact manager](https://www.b12.io/contact-manager)
- [Templates](https://www.b12.io/ai-website-prompt-gallery)
- Resources
  
  Show submenu for Resources

    - [Resource center](https://www.b12.io/resource-center)
    - [Case studies](https://www.b12.io/case-studies)
- [Pricing](https://www.b12.io/pricing)
- [Log in](https://b12.io/dashboard/)
- [Start for free](https://b12.io/signup/)

[Start for free](https://b12.io/signup/)

 How can we help?

- There are no suggestions because the search field is empty.

1. [B12 Help Center](https://support.b12.io/en?hsLang=en)
2. [Adding functionality](https://support.b12.io/en/adding-functionality?hsLang=en)
3. [Scheduling & Productivity Integrations](https://support.b12.io/en/adding-functionality?hsLang=en#scheduling-productivity-integrations)

# Building an event RSVP form with limited spots

## Let guests reserve a spot, see how many are left, and get turned away automatically once your event is full.

| ![ronnel](https://support.b12.io/hs-fs/hubfs/Ronnel%20DG.png?width=60&height=60&name=Ronnel%20DG.png) Written by: Ronnel DG Last updated: 04 Nov., 2026 |
| --- |

A limited RSVP form is an RSVP page that stops taking reservations once a set number of spots is filled. It's useful for a workshop, class, or party that only has room for so many people. The AI Agent can build one for you, with a count of spots left, a waitlist, and a private guest list that only you can open.

The steps below use a 40-seat pottery workshop as the example. Copy each prompt and swap in your own event details.

**Note:** A limited RSVP form works differently from a regular contact form:

- It uses `Backends`, B12's built-in database. The AI Agent asks you to turn it on.
- Guests sign in with a link sent to their email before they can RSVP.
- RSVPs are saved in your database, not in `Form submissions`.

### Why guests sign in to RSVP

To keep an accurate count, your website has to save each RSVP in a database. B12 only lets signed-in visitors save information this way. This keeps strangers and bots from filling your spots.

Signing in takes guests less than a minute, and they don't need a password. They enter their email address on your RSVP page and receive an email with the subject **Your magic link**. When they click **Log in** in that email, they're taken back to your RSVP page, signed in and ready to reserve their spots.

![The “Magic link” sign-in email from the website with a Log in link](https://support.b12.io/hs-fs/hubfs/image-png-Nov-04-2026-02-38-23-4348-PM.png?width=500&height=166&name=image-png-Nov-04-2026-02-38-23-4348-PM.png)

Two things to tell your guests, for example in your event invitation:

- **Check spam.** The sign-in email is short and plain, so it sometimes lands in the spam folder.
- **Open the link in the same browser.** The link has to be opened in the same browser where they asked for it. If they ask on a laptop, they should open the email on that laptop too.

### Creating your RSVP page

Describe your event, the number of spots, and what guests should see when it's full, all in one prompt. Include your own email address so the AI Agent knows you're the site owner. You'll need it later to open your guest list.

**To create your RSVP page:**

1. In the B12 Editor, open the `Chat` tab.
2. Copy the prompt below into the AI Agent chat and replace the bracketed details with your own:
   
   ```
   Add an RSVP page for my event "[Spring Pottery Workshop]" on [Sunday, May 16, 2027, at 10 a.m.] Limit it to [40] spots. Guests sign in with an email link to RSVP, then enter their name and number of guests ([1 to 4]). Each guest counts toward the limit. Show how many spots are left above the form. When all spots are taken, hide the form and show "This event is full." I'm the site owner, and my email is [your email address].
   ```
3. Send the prompt. When the AI Agent asks to turn on Backends, click `Enable` on the Backends card.  
   ![AI Agent chat asking to turn on Backends, with Decline and Enable buttons on the Backends card](https://support.b12.io/hs-fs/hubfs/image-png-Nov-04-2026-02-38-54-7283-PM.png?width=300&height=186&name=image-png-Nov-04-2026-02-38-54-7283-PM.png)
4. Wait while the AI Agent works through its task list. When it's done, it replies with the address of your new page, for example **/rsvp**.  
   ![AI Agent task list with one step done, one in progress, and one waiting while it builds the RSVP page](https://support.b12.io/hs-fs/hubfs/image-png-Nov-04-2026-02-39-31-0122-PM.png?width=300&height=171&name=image-png-Nov-04-2026-02-39-31-0122-PM.png)
5. To see the page, type its address in the address box above the [preview](https://support.b12.io/en/v3/previewing-and-publishing-your-website?hsLang=en), then select it from the list.  
   ![RSVP page showing 40 spots left and a Sign in to RSVP box with an Email me a sign-in link button](https://support.b12.io/hs-fs/hubfs/image-png-Nov-04-2026-02-39-50-8816-PM.png?width=300&height=399&name=image-png-Nov-04-2026-02-39-50-8816-PM.png)

Your page shows how many spots are left, followed by a **Sign in to RSVP** box where guests enter their email address and click **Email me a sign-in link**.

### Testing your RSVP page

Before you share the page, RSVP once yourself to make sure everything works. Use a different email address from the one in your prompt, so you see exactly what a guest sees.

**Tip:** If you don't have a second email address, many email providers, including Gmail, let you add **+test** before the @ sign (for example, you+test@yourdomain.com). The email still reaches your inbox, but your RSVP page treats it as a different guest.

**To test your RSVP page:**

1. Click ![Open preview in new tab](https://support.b12.io/hubfs/B12%20UI%20Icons/Editing/page-preview.svg) above the preview to open your RSVP page in a new tab.
2. In the **Sign in to RSVP** box, enter your test email address and click **Email me a sign-in link**.
3. Open the **Your magic link** email in the same browser and click **Log in**.
4. Enter a name, choose the number of guests, and send your RSVP.
   
   ![RSVP page showing 39 spots left above a You’re registered confirmation](https://support.b12.io/hs-fs/hubfs/image-png-Nov-04-2026-02-40-44-9367-PM.png?width=500&height=233&name=image-png-Nov-04-2026-02-40-44-9367-PM.png)

You'll see **You're registered**, and the spots-left count goes down by the number of guests in the RSVP. When only a few spots remain, guests can't choose more guests than there are spots left. Those options are grayed out in the dropdown.

### Publishing your RSVP page

Guests can only see your RSVP page after you publish your website.

**To publish your RSVP page:**

1. Click `Publish` at the top of the editor.
2. Share the RSVP page's link in your event invitation.

For more details, see [Previewing and publishing your B12 website](https://support.b12.io/en/v3/previewing-and-publishing-your-website?hsLang=en).

### Changing your RSVP page

You can change your RSVP page at any time by asking the AI Agent. RSVPs you've already received are kept when you make these changes.

#### Changing the number of spots

If you move to a bigger room or need to hold back seats, ask the AI Agent to change the limit:

```
Increase the [Spring Pottery Workshop] limit from [40] to [50] spots.
```

The page updates to show the new total. For example, if one guest has already registered, it shows **49 spots left** and "Each guest counts toward the 50-person limit."

#### Adding a waitlist

A waitlist lets people who missed out leave their details in case a spot opens up. Waitlist sign-ups don't count toward your limit.

```
When the [Spring Pottery Workshop] is full, show a waitlist form instead of "This event is full," and don't count waitlist sign-ups toward the limit.
```

![Full event page showing This event is full. and a Join the waitlist box](https://support.b12.io/hs-fs/hubfs/image-png-Nov-04-2026-02-41-12-8405-PM.png?width=500&height=409&name=image-png-Nov-04-2026-02-41-12-8405-PM.png)

Once all spots are taken, new visitors see **This event is full.** along with a **Join the waitlist** box. Like RSVPs, joining the waitlist requires signing in.

#### Hiding the full message from registered guests

After you add a waitlist, guests who already have a spot may also see the "full" message above their **You're registered** confirmation, which can be confusing. To show registered guests only their confirmation, send this prompt:

```
On the [Spring Pottery Workshop] RSVP page, guests who are already registered should only see "You're registered," not the "This event is full" or waitlist message.
```

Registered guests then see only their confirmation, while new visitors still see the full message and the waitlist.

#### Closing RSVPs on a set date

You can stop taking RSVPs before the event, even if spots are still open. Always include the year and your time zone. Otherwise, the AI Agent stops to ask for them.

```
Stop accepting RSVPs for the [Spring Pottery Workshop] at [11:59 p.m. on Friday, May 14, 2027, New York time], even if spots are left. Show the closing date above the form.
```

The page then shows the closing time with the spots-left count, for example "RSVPs close Friday, May 14, 2027 at 11:59 p.m. New York time." After that time, the page shows "RSVPs are closed." and stops taking new RSVPs.

### Managing your guest list

Because RSVPs don't appear in Form submissions, the easiest way to see and manage them is a private guest list page. Only the owner email from your first prompt can open it.

#### Viewing and canceling RSVPs

**To set up and use your guest list:**

1. Send this prompt in the AI Agent chat:
   
   ```
   Add a private page only I can see that lists every [Spring Pottery Workshop] RSVP and waitlist entry, with a button to cancel an RSVP and free up its spots.
   ```
2. When the AI Agent replies with the page's address (for example, **/workshop-admin**), open that page in the preview.
3. In the **Owner sign-in** box, enter the email address from your first prompt and click **Email me a secure sign-in link**.
4. Open the email in the same browser and click **Log in**.  
   ![Private guest list showing confirmed RSVPs with guest counts, emails, and Cancel RSVP buttons](https://support.b12.io/hs-fs/hubfs/image-png-Nov-04-2026-02-41-35-3420-PM.png?width=500&height=398&name=image-png-Nov-04-2026-02-41-35-3420-PM.png)
5. To free up spots, click **Cancel RSVP** next to a guest, then click **OK** to confirm.

The guest list shows each RSVP's name, number of guests, email address, and the date it was added. After you cancel an RSVP, the page confirms the spots are available again, and the public RSVP page updates its count. The AI Agent also hides this page from search engines.

**Caution:** Only the email address you gave as the site owner can open the guest list. If you left your email out of the first prompt, tell the AI Agent which email to use before you ask for the private page.

#### Viewing RSVPs in the database

You can also see the raw data in the editor.

1. In the `Menu` tab, select `Backends`, then `Database`.
2. Select the RSVP or waitlist table. The table names depend on your event, for example **workshop\_rsvps** and **workshop\_waitlist**.

Each guest who signs in also appears under `Backends` \> `Users`.

### FAQ

→Can guests RSVP without signing in?

⇒Not when the form has a limit. B12 only lets signed-in visitors save information to your database, and that's what keeps the count accurate. If you don't need a limit, a regular contact form doesn't require sign-in. See [Adding and editing contact forms](https://support.b12.io/en/v3/adding-and-managing-forms?hsLang=en).

→Will I get an email each time someone RSVPs?

⇒No. Regular contact forms send you an email for each submission, but RSVP alerts aren't set up for you. Check your private guest list page to see new RSVPs.

→Do extra guests count toward the limit?

⇒Yes. An RSVP for 2 guests takes 2 spots. When only a few spots remain, the guest dropdown grays out any number larger than the spots left, so no one can overbook.

→A guest clicked the sign-in link, but it didn't work. What happened?

⇒Each sign-in link works only once, and it has to be opened in the same browser where the guest asked for it. An old, used, or wrong-browser link doesn't show an error. The page simply shows the sign-in form again. Ask the guest to enter their email again and open the new link in the same browser.

→What if two people try to take the last spot at the same time?

⇒Your website checks the count each time an RSVP is saved, so the event shouldn't go over its limit. If it ever does, cancel the extra RSVP from your guest list.

### Next steps

- [Adding backend functionality](https://support.b12.io/en/v3/adding-backend-functionality?hsLang=en)
- [Adding and editing contact forms](https://support.b12.io/en/v3/adding-and-managing-forms?hsLang=en)
- [Writing your first prompt and generating your site](https://support.b12.io/en/v3/writing-your-first-prompt-generating-your-site?hsLang=en)

- [Getting started](https://support.b12.io/en/getting-started?hsLang=en#main-content)

    - [Introduction](https://support.b12.io/en/getting-started?hsLang=en#introduction)
    - [Detailed guides](https://support.b12.io/en/getting-started?hsLang=en#detailed-guides)
- [Working with B12's AI Agent](https://support.b12.io/en/working-with-b12s-ai-agent?hsLang=en#main-content)

    - [Agent Skills](https://support.b12.io/en/working-with-b12s-ai-agent?hsLang=en#agent-skills)
- [Built-in features](https://support.b12.io/en/built-in-features?hsLang=en#main-content)

    - [Visual edit](https://support.b12.io/en/built-in-features?hsLang=en#visual-edit)
    - [Code editor](https://support.b12.io/en/built-in-features?hsLang=en#code-editor)
    - [Data & users (Backends)](https://support.b12.io/en/built-in-features?hsLang=en#data-users-backends)
    - [Forms & submissions](https://support.b12.io/en/built-in-features?hsLang=en#forms-submissions)
    - [Commerce](https://support.b12.io/en/built-in-features?hsLang=en#commerce)
    - [Contact manager](https://support.b12.io/en/built-in-features?hsLang=en#contact-manager)
    - [eSignatures](https://support.b12.io/en/built-in-features?hsLang=en#esignatures)
    - [Email Marketing](https://support.b12.io/en/built-in-features?hsLang=en#email-marketing)
    - [Team](https://support.b12.io/en/built-in-features?hsLang=en#team)
    - [Analytics](https://support.b12.io/en/built-in-features?hsLang=en#analytics)
    - [Website settings](https://support.b12.io/en/built-in-features?hsLang=en#website-settings)
- [Adding functionality](https://support.b12.io/en/adding-functionality?hsLang=en#main-content)

    - [Third-party integrations](https://support.b12.io/en/adding-functionality?hsLang=en#third-party-integrations)
    - [Scheduling & Productivity Integrations](https://support.b12.io/en/adding-functionality?hsLang=en#scheduling-productivity-integrations)
    - [Multimedia Integrations](https://support.b12.io/en/adding-functionality?hsLang=en#multimedia-integrations)
- [Publishing & growing](https://support.b12.io/en/publishing-growing?hsLang=en#main-content)

    - [Connecting your Domain](https://support.b12.io/en/publishing-growing?hsLang=en#connecting-your-domain)
    - [Domains FAQ](https://support.b12.io/en/publishing-growing?hsLang=en#domains-faq)
    - [Email Forwarding & Sending](https://support.b12.io/en/publishing-growing?hsLang=en#email-forwarding-sending)
    - [Growth & Marketing](https://support.b12.io/en/publishing-growing?hsLang=en#growth-marketing)
- [Troubleshooting](https://support.b12.io/en/troubleshooting?hsLang=en#main-content)

    - [FAQs](https://support.b12.io/en/troubleshooting?hsLang=en#faqs)
- [Account & billing](https://support.b12.io/en/account-billing?hsLang=en#main-content)

    - [Account Login & Password](https://support.b12.io/en/account-billing?hsLang=en#account-login-password)
    - [Subscription & Payment Information](https://support.b12.io/en/account-billing?hsLang=en#subscription-payment-information)
    - [Your Account](https://support.b12.io/en/account-billing?hsLang=en#your-account)
    - [Managing Multiple Websites](https://support.b12.io/en/account-billing?hsLang=en#managing-multiple-websites)
    - [Multi-user](https://support.b12.io/en/account-billing?hsLang=en#multi-user)
- [Getting support](https://support.b12.io/en/getting-support?hsLang=en#main-content)

    - [Professional & Advanced Plan Support (B12 2.0)](https://support.b12.io/en/getting-support?hsLang=en#professional-advanced-plan-support-b12-2-0)
- [B12 2.0](https://support.b12.io/en/b12-2-0?hsLang=en#main-content)

    - [Website Structure and Content](https://support.b12.io/en/b12-2-0?hsLang=en#website-structure-and-content)
    - [Website Style & Design](https://support.b12.io/en/b12-2-0?hsLang=en#website-style-design)
    - [Sitewide Settings](https://support.b12.io/en/b12-2-0?hsLang=en#sitewide-settings)
    - [Using the B12 Editor](https://support.b12.io/en/b12-2-0?hsLang=en#using-the-b12-editor)
    - [Analytics & SEO](https://support.b12.io/en/b12-2-0?hsLang=en#analytics-seo)
    - [Integrations - General](https://support.b12.io/en/b12-2-0?hsLang=en#integrations-general)
    - [Integrations - Communication](https://support.b12.io/en/b12-2-0?hsLang=en#integrations-communication)
    - [Integrations - Language](https://support.b12.io/en/b12-2-0?hsLang=en#integrations-language)
    - [Integrations - Ecommerce](https://support.b12.io/en/b12-2-0?hsLang=en#integrations-ecommerce)
    - [Professional & Advanced Plan Features](https://support.b12.io/en/b12-2-0?hsLang=en#professional-advanced-plan-features)
    - [Troubleshooting & Resources](https://support.b12.io/en/b12-2-0?hsLang=en#troubleshooting-resources)
    - [Contact Forms](https://support.b12.io/en/b12-2-0?hsLang=en#contact-forms)
    - [Online Scheduling](https://support.b12.io/en/b12-2-0?hsLang=en#online-scheduling)
    - [Advanced Editing (Experts Only)](https://support.b12.io/en/b12-2-0?hsLang=en#advanced-editing-experts-only)

[![B12\_logo\_2025](https://support.b12.io/hs-fs/hubfs/B12_logo_2025.png?width=53&height=24&name=B12_logo_2025.png "B12_logo_2025")](https://www.b12.io)

© 2025 B12. All rights reserved.

<https://twitter.com/b12> <https://www.facebook.com/B12io> <https://www.youtube.com/@b12io> <https://www.instagram.com/b12io>

×