How to Add Event Registration to Your WordPress Website
WordPress doesn't collect event registrations out of the box. Here are the three realistic ways to add it — a plugin, a third-party platform, or an embedded widget — and when each one makes sense.
Jen manages a coworking space. She runs four or five events per week — lunch-and-learns, networking evenings, skill-sharing sessions. The coworking space has a WordPress website. It looks professional, the branding is consistent, and the community knows it well.
When someone wants to register for an event, Jen sends them to Eventbrite.
The registration works, but the experience breaks. Someone on the coworking space's website, reading about Thursday's networking session, clicks the link and lands on a generic Eventbrite page with the coworking space's event alongside unrelated events in the same city. The brand continuity stops at the click. After registration, Eventbrite shows its own suggestions, its own events, its own logo.
The coworking space pays the fees. Eventbrite gets the post-registration attention.
This isn't unique to Eventbrite — it's the trade-off of using any third-party platform for registration. The question is whether there's a better option for WordPress sites that want registration to feel native.
There are three approaches. Each makes different trade-offs.
The WordPress events landscape
Unlike some website builders, WordPress doesn't have a built-in events module that handles both display and registration. Events on WordPress usually come from one of two situations:
The site already uses The Events Calendar (free): This plugin is one of the most widely installed WordPress plugins. It handles event display well — calendar views, event listings, detail pages. What the free version doesn't include is registration or ticketing. To add those, you need a paid add-on.
The site uses a page builder with no events plugin: Sites built with Elementor, Divi, or similar page builders often have no events setup at all. Events get added as regular pages or blog posts. There's no calendar view, no registration, and no structure for tracking who's coming.
Both starting points lead to the same question: how do you add registration without rebuilding everything?
Three options for adding event registration to WordPress
Option 1: The Events Calendar + Tickets add-on
If the site already uses The Events Calendar, the natural extension is the Events Tickets plugin (the paid tier with full registration and ticketing features).
What works: The integration is seamless. Registration is tied directly to each event — no separate form to manage, no manual connection. If you're already in The Events Calendar ecosystem and need ticketing with multiple ticket types, attendee management, and event check-in, this is the most complete solution in that stack.
Where it falls short: The Tickets paid add-on is priced for serious event programmes. At $99–$199/year (depending on the tier), it's a meaningful cost for a small business running monthly workshops or weekly community events. The feature set that justifies the price — multiple ticket types, complex pricing, seat maps — is also more than most small organisations need. If you're running recurring events where you need headcount and reminders, you're paying for a lot of functionality that doesn't apply to your use case.
Right for: Sites already invested in The Events Calendar that need full-featured ticketing — multiple ticket types, complex pricing, or events at scale. The cost is easier to justify when the full feature set is in use.
Option 2: A form plugin (Gravity Forms, WPForms, Contact Form 7)
WordPress has no shortage of form plugins. The approach here is to add a form to the same page as the event — someone reads the event details above, fills in the form below, and submits.
What works: Familiar pattern. Every WordPress site either already has a form plugin installed or can add one in minutes. Non-technical to manage once set up. Works with any theme, any page builder. Contact Form 7 is free; WPForms and Gravity Forms offer free tiers with basic registration fields.
Where it falls short: Form plugins are general-purpose tools. The form doesn't know it's attached to an event — it's a form that happens to be on the same page as an event description.
Practically, this means:
- No capacity enforcement. The form accepts submissions until you manually close it or notice you've exceeded your limit.
- No event-specific confirmation email. The registrant gets whatever the form plugin is configured to send — usually a generic submission confirmation, not an event confirmation with date, time, and location.
- No reminder emails. There's no mechanism to send a 24-hour reminder to everyone who submitted the form unless you export the list and send it manually.
- No registrant dashboard. Submissions go to the form plugin's inbox. Checking headcount before an event means opening the plugin, filtering by the right form, and counting rows.
Right for: Informal events where manual follow-up is acceptable, you know most attendees personally, and you're comfortable checking submissions by hand before the event. Works well for one-off events with small guest lists.
Option 3: Embed a registration widget
Paste a script tag into any WordPress page or post. The calendar renders on your site — inside your WordPress layout, with your navigation, your fonts, your brand — and visitors can browse your upcoming events and register without leaving.
What works: Registration stays on your domain. The visitor who reads about Thursday's networking session on the coworking space's website can register for it on the same page, not on a third-party platform. Confirmation emails go out automatically. Reminder emails go out 24 hours before the event. The dashboard shows who's registered in real time — no counting, no exporting, no manual checking.
Capacity management is built in. Set a limit on an event, and the widget automatically switches to a waitlist form when the limit is reached. No manual intervention required.
WordPress-specific note: the script tag goes into a Custom HTML block (standard in the Gutenberg editor) or an HTML/Code widget in page builders like Elementor or Divi. This is standard functionality on virtually all WordPress setups — if you can embed a YouTube video, the process is the same.
Where it falls short: Adding a Custom HTML block requires access to the WordPress page editor. On most WordPress sites, this is routine — if you can edit a page, you can add the block. On heavily locked-down managed WordPress hosting where inline scripts are blocked, a plugin that injects header/footer scripts is the workaround. This is not a common scenario, but worth checking with your hosting provider if you're unsure.
Right for: WordPress sites where registration should feel like part of the site — not a redirect, not a third-party page, not a separate platform. Best fit for recurring events (weekly classes, monthly workshops, regular community events) where automatic reminders, real-time headcount, and capacity management save meaningful time each week.
How to add Turnout to a WordPress page
- Sign up at getturnout.app and create your calendar
- Add your event — title, description, date and time, location, and optional capacity limit
- Add any custom form fields beyond name and email (dietary requirements, experience level, workshop preference)
- Go to Embed in the Turnout dashboard and copy the script tag
- In WordPress, open the page or post where you want the calendar to appear
- Add a Custom HTML block — in the Gutenberg editor, click the "+" button, search "Custom HTML," and add the block
- Paste the script tag into the block
- Click Update or Publish
The calendar renders on the page. Visitors see your upcoming events, click the one they want, and register without leaving your site.
For page builder users: In Elementor, add an HTML widget to your layout and paste the script tag there. In Divi, use a Code module. The result is the same — the calendar renders inside your existing layout.
What happens after someone registers
Once someone submits the registration form:
- A confirmation email goes to the registrant automatically — event name, date, time, location, and a summary of any custom fields they filled in.
- A reminder email goes out 24 hours before the event — no setup required, no manual sending.
- If the event has a capacity limit and it fills up, the widget switches to a waitlist form. When a spot opens, the next person on the waitlist is promoted automatically and notified.
- The Turnout dashboard shows who's registered, how many spots remain, and the full registrant list — updated in real time.
Which option is right for you
Use The Events Calendar + Tickets if you're already deep in that ecosystem, need ticketed events with multiple ticket types or complex pricing, and the annual add-on cost fits your budget.
Use a form plugin if you run occasional, informal events, know your attendees, and handle confirmation and follow-up manually.
Embed a registration widget if you run recurring events, want registration and reminders automated, and want everything on your own WordPress site without a platform redirect.
Turnout works with any WordPress theme or page builder. There's a 14-day free trial — no credit card required.
If you're building out your events setup and want more context on the embedding approach, the full breakdown is in Embedding an Events Calendar on Your Website: The Complete Guide.
The Turnout vs Eventbrite comparison covers the redirect problem and fee structure in more detail.
For teams and organisations running recurring events at a coworking space, the coworking spaces use case page covers the specific setup in that context.