Free tool · no signup
Event Registration Form for Your Website
Last updated · plan facts checked against /pricing
This free generator builds a registration form for your event: name, email, phone, ticket or session, number of attendees, dietary or accessibility needs and how people heard about you. Edit the fields and copy the HTML or React code, no signup needed to generate it. Paste it into any website and splitforms emails you every registration.
Build your registration form, then copy the code
1. Backend
where submissions goDon't have one? Get a free splitforms key: 500 submissions total, no credit card.
2. Fields
Click a type to add a field, then use ↑ ↓ to reorder.
3. Button, style + spam
Style preset (HTML + React)A hidden botcheck checkbox people never see. If a bot ticks it, splitforms silently drops the submission; rule-based spam filtering runs on every submission either way.
Live preview
preview only · submit is disabledevent-registration-form.html
<style>
form { max-width: 480px; font-family: system-ui, sans-serif; }
label { display: block; font-size: 13px; font-weight: 600; margin: 14px 0 6px; }
input:not([type=checkbox]):not([type=radio]), textarea, select { width: 100%; padding: 10px 12px; border: 1px solid #d6d6d1; border-radius: 6px; font: inherit; box-sizing: border-box; }
textarea { min-height: 100px; resize: vertical; }
fieldset { border: 0; margin: 14px 0 0; padding: 0; min-width: 0; }
legend { font-size: 13px; font-weight: 600; margin: 0 0 4px; padding: 0; }
label.sf-choice { display: flex; align-items: center; gap: 8px; margin: 8px 0 0; font-size: 14px; font-weight: 400; }
label.sf-choice input { margin: 0; accent-color: #ff4f00; }
button { margin-top: 18px; padding: 12px 20px; background: #ff4f00; color: #fff; border: none; border-radius: 6px; font-size: 14px; font-weight: 600; cursor: pointer; }
button:hover { background: #c93d00; }
</style>
<form action="https://splitforms.com/api/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY">
<input type="hidden" name="subject" value="New event registration">
<!-- Honeypot — bots fill every field, humans don't see this -->
<input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off">
<label for="field-name">Full name <span style="color:#ff4f00">*</span></label>
<input id="field-name" name="name" type="text" placeholder="Jane Builder" required>
<label for="field-email">Email <span style="color:#ff4f00">*</span></label>
<input id="field-email" name="email" type="email" placeholder="[email protected]" required>
<label for="field-phone">Phone (optional)</label>
<input id="field-phone" name="phone" type="tel" placeholder="+1 415 555 0142">
<label for="field-ticket">Ticket or session <span style="color:#ff4f00">*</span></label>
<select id="field-ticket" name="ticket" required>
<option value="">Choose…</option>
<option value="General admission">General admission</option>
<option value="VIP">VIP</option>
<option value="Morning workshop">Morning workshop</option>
<option value="Afternoon workshop">Afternoon workshop</option>
</select>
<label for="field-attendees">Number of attendees <span style="color:#ff4f00">*</span></label>
<input id="field-attendees" name="attendees" type="number" placeholder="1" required>
<label for="field-access_needs">Dietary or accessibility needs</label>
<textarea id="field-access_needs" name="access_needs" placeholder="Optional"></textarea>
<label for="field-referral_source">How did you hear about us?</label>
<select id="field-referral_source" name="referral_source">
<option value="">Choose…</option>
<option value="Search engine">Search engine</option>
<option value="Social media">Social media</option>
<option value="Email">Email</option>
<option value="Friend or colleague">Friend or colleague</option>
<option value="Other">Other</option>
</select>
<button type="submit">Register</button>
</form>
<p class="splitforms-attribution" style="margin-top:12px;font-size:11px;color:#888;text-align:right">
Powered by <a href="https://splitforms.com" style="color:#888;text-decoration:none" target="_blank" rel="sponsored noopener">splitforms</a>
</p>Paste into any HTML page, a WordPress Custom HTML block, a Webflow or Carrd embed, or a static site. Replace YOUR_ACCESS_KEY with your key (get one free) and submissions start arriving in your inbox and dashboard.
How to
How to add an event registration form to your website
- Generate your registration form. Edit the fields in the builder above (rename, reorder, mark required), pick a style, then copy the HTML, React JSX or Tailwind code.
- Get a free access key. Sign up at splitforms and create a form to get its access key. Free covers 500 submissions total, with no credit card and no expiry.
- Paste the code into your site. Replace YOUR_ACCESS_KEY in the code with your key, then paste it where the form should appear. In WordPress use a Custom HTML block; in Webflow, Squarespace or Wix use a code or embed block; on a hand-coded event page paste it into the HTML.
- Send a test submission. Fill in the form once on your live page and check that it arrives in your inbox and in your splitforms dashboard.
Running several events? Create one splitforms form per event, so each has its own access key and its own list of registrations.
Example output
Event signup form HTML.
This is the generator's starting registration form with no CSS preset and the honeypot spam trap on. Change the ticket and session options to match your event, replace YOUR_ACCESS_KEY with your key and paste it in.
<form action="https://splitforms.com/api/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY">
<input type="hidden" name="subject" value="New event registration">
<!-- Honeypot — bots fill every field, humans don't see this -->
<input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off">
<label for="field-name">Full name <span style="color:#ff4f00">*</span></label>
<input id="field-name" name="name" type="text" placeholder="Jane Builder" required>
<label for="field-email">Email <span style="color:#ff4f00">*</span></label>
<input id="field-email" name="email" type="email" placeholder="[email protected]" required>
<label for="field-phone">Phone (optional)</label>
<input id="field-phone" name="phone" type="tel" placeholder="+1 415 555 0142">
<label for="field-ticket">Ticket or session <span style="color:#ff4f00">*</span></label>
<select id="field-ticket" name="ticket" required>
<option value="">Choose…</option>
<option value="General admission">General admission</option>
<option value="VIP">VIP</option>
<option value="Morning workshop">Morning workshop</option>
<option value="Afternoon workshop">Afternoon workshop</option>
</select>
<label for="field-attendees">Number of attendees <span style="color:#ff4f00">*</span></label>
<input id="field-attendees" name="attendees" type="number" placeholder="1" required>
<label for="field-access_needs">Dietary or accessibility needs</label>
<textarea id="field-access_needs" name="access_needs" placeholder="Optional"></textarea>
<label for="field-referral_source">How did you hear about us?</label>
<select id="field-referral_source" name="referral_source">
<option value="">Choose…</option>
<option value="Search engine">Search engine</option>
<option value="Social media">Social media</option>
<option value="Email">Email</option>
<option value="Friend or colleague">Friend or colleague</option>
<option value="Other">Other</option>
</select>
<button type="submit">Register</button>
</form>
<p class="splitforms-attribution" style="margin-top:12px;font-size:11px;color:#888;text-align:right">
Powered by <a href="https://splitforms.com" style="color:#888;text-decoration:none" target="_blank" rel="sponsored noopener">splitforms</a>
</p>Fields
Which fields should an event registration form have?
Enough to run the event and nothing more: who is coming, how to reach them, which ticket or session they want and how many seats. Ask about dietary and accessibility needs if you serve food or have venue constraints, and leave the rest optional.
| Full name | For the attendee list and name badges. |
|---|---|
| To confirm the registration and send joining details. splitforms sets reply-to to it, so you can answer from your inbox. | |
| Phone (optional) | Useful for day-of changes; optional because many people would rather not share it. |
| Ticket or session | Tells you who goes where. Edit the dropdown options to match your schedule. |
| Number of attendees | Your headcount when one person registers a group. |
| Dietary or accessibility needs | Free text so you can plan catering, seating and access before the day. |
| How did you hear about us | Shows which promotion channel brings people in, for your next event. |
No platform fees
For free or invite-only events you don't need a ticketing platform: the form lives on your own page.
Honeypot on by default
A hidden botcheck field ships with every form, and splitforms runs smart spam filtering on every registration.
Free email alerts
Every registration is emailed to you and saved in a searchable dashboard, on every plan including Free.
How SplitForms works
What happens after someone submits your form?
splitforms receives the submission, filters spam, saves it to your dashboard and emails you — then, on paid plans, sends it on to your webhooks and integrations. No backend infrastructure to build.

Add your endpoint
Point your form to your unique SplitForms endpoint. That's it.

Receive submissions
We instantly capture and organize every submission in your inbox.

Route anywhere
Send data to email, spreadsheets, CRMs, webhooks, and 7,000+ apps.

No credit card required. Set up in under 60 seconds.
Connect & automate
Where can submissions go besides email?
On paid plans, submissions can also go to Slack, Discord, Google Sheets, Notion, Airtable, Zapier or any signed webhook — and splitforms works on the platforms you build on, from WordPress and Shopify to Next.js. With Stripe connected, your forms can take payments too.

Questions
Event registration form questions.
View all FAQsHow do I add a registration form to my event website?
Build the form in the generator on this page and copy the HTML. Replace YOUR_ACCESS_KEY with a free splitforms access key, paste the code into your event page (a Custom HTML block in WordPress, a code or embed block in Webflow, Squarespace or Wix), then register once yourself to check it reaches your inbox.
Is this event registration form free?
Yes. Generating the form is free with no signup, and each registration counts as one submission. The splitforms Free plan covers 500 submissions total (one-time, no credit card, no expiry). Pro is $5/month for 5,000 submissions a month, and Annual is $49/year for 15,000 a month. Email notifications are free on every plan.
Can I use Google Forms or Eventbrite instead?
Yes. Google Forms is free and fine for an internal sign-up sheet, but it is embedded as an iframe with Google's look. Eventbrite and similar platforms handle ticket sales, check-in and capacity limits, which this form does not. Use this generator for free or invite-only events where you want the registration form on your own site, styled like your pages, with every signup emailed to you.
Can I charge for tickets with this form?
The generated form collects registrations, not payments. splitforms does support Stripe payments on forms for paid plans; see the payment form page. For a simple paid event you can also send a payment link in your confirmation email.
Can I limit the number of registrations?
Not automatically: the form keeps accepting signups until you take it down. Watch the count in your splitforms dashboard and remove the form, or swap in a "registration is full" note, once you reach capacity.
Can registrants get a confirmation email?
Yes, on a paid plan: auto-responder emails to the person who registered are part of Pro and Annual. On every plan, including Free, you get an email for each registration and can send people to your own confirmation page with a redirect URL.
Simple pricing
How much does splitforms cost?
Free gives you 500 submissions for $0 — no card, no time limit. Pro is $5/month for 5,000 submissions a month, and Annual is $49/year for 15,000 a month with every Pro feature.
Free
For side projects and indie devs.
- 500 free submissions
- Unlimited forms
- Email notifications included
- Smart spam filtering
- Submissions dashboard
- Redirect after submit
- MCP server included
Pro
Every paid feature, for agencies and growing products.
- 5,000 submissions / mo
- Unlimited forms
- Webhooks and integrations
- CC/BCC, auto-replies and routing
- File uploads with 500 MB storage
- Stripe payments on your forms
- 3 team seats
- Cancel anytime
Annual
Every Pro feature with triple the volume — $0.27 per 1,000 at full use.
- 15,000 submissions / mo
- Unlimited forms
- Everything in Pro
- File uploads with 5 GB storage
- 3 team seats
- Priority email support
No credit card required on Free • Cancel anytime • Full pricing and FAQ