Events Made
Easy
The complete event management toolkit for WordPress. Events, bookings, memberships, payments, maps, calendars one plugin, zero compromises.
Everything you need to
manage events at scale
Events & Calendars
Public, private, draft and recurring events. Interactive calendar with month navigation, category filtering, and holiday integration.
RSVP & Bookings
Custom registration forms with approval workflows, waiting lists, multi-pricing, custom fields, and automatic email confirmations.
15 Payment Gateways
PayPal, Stripe, Mollie, Braintree, Mercado Pago, SumUp, Bancontact/Wero, 2Checkout, FirstData, Worldpay, Instamojo, Fondy, Opayo, Webmoney. All free, no add-on fees.
Maps & Locations
OpenStreetMap integration with marker clustering, custom balloons, location management with coordinates and venue details.
Memberships
Full membership lifecycle: registration, renewals, drip content, PDF cards with QR codes, family memberships, and expiry reminders.
Email & Newsletters
Mail queueing, scheduled mailings, payment reminders, membership expiry alerts, and newsletter functionality with attachments.
See it working right here
These are real shortcodes rendering live data. No mockups, no static images.
[eme_events]- 17 Mar 2026 - 16:00
Orality in James Joyce Conference
Galway - 17 Mar 2026 - 22:00
6 Nations, Italy VS Ireland
Galway - 19 Mar 2026 - 22:00
6 Nations, Italy VS Ireland
Galway - 21 Mar 2026 - 22:00
6 Nations, Italy VS Ireland
Galway
- March, 2026
- 17 Mar 2026 - 16:00
Orality in James Joyce Conference
Galway - 17 Mar 2026 - 22:00
6 Nations, Italy VS Ireland
Galway - 19 Mar 2026 - 22:00
6 Nations, Italy VS Ireland
Galway - 21 Mar 2026 - 22:00
6 Nations, Italy VS Ireland
Galway - 23 Mar 2026 - 22:00
6 Nations, Italy VS Ireland
Galway - 24 Mar 2026 - 16:00
Orality in James Joyce Conference
Galway - 25 Mar 2026 - 22:00
6 Nations, Italy VS Ireland
Galway - 27 Mar 2026 - 22:00
6 Nations, Italy VS Ireland
Galway
- 5 Mar 2018 - 12:00
test
- 7 Sep 2015 - 00:00
test123
Galway - 5 Sep 2015 - 10:19
test future recurring event
- 6 Jun 2015 - 10:19
test future recurring event
[eme_calendar][eme_locations]- Aarhus
- Ambrosius Center for Essential Health
- Areafiftyone Skatepark
- Arts Millenium Building
- Berlin, Germany
- Biekorf Lebbeke
- Bonheidense Hondenvrienden vzw
- Café The Jack
- Café Wilhelmina
- De Wasvenboerderij
- Dresden, Germany
- Dresdner Schlössernacht
- Effenaar
- Effenaar - Eindoven
- Eve Club
- Eve Nightclub Crown Casino
- Firstsite Colchester
- Hotel Cellino, Kunstraum, Galerie
- Hotel Schloss Zeilitzheim
- In Elmau 2, 82493 Krün, Deutschland
- Kaaitheater
- Kaaitheater
- Konstanz, Germany
- LATINmania
- Moriska Paviljongen
- Moriskans Bistro
- Muziekgebouw Eindhoven
- Nieuwpoort-Bad
- Nordstern
- Obere Hauptstraße 3, 76863 Herxheim bei Landau (Pfalz), Deutschland
- Q43 Dubai
- R F Bergs plats Limhamn
- R F Bergs plats Limhamn
- R F Bergs plats Limhamn
- Räucherei - Kiel
- Sibbarp, Sweden
- Stadtcafe
- Stage Music Cafe
- Stuttgarter Straße 31, 72250 Freudenstadt, Deutschland
- Taaffes Bar
- Team Århus Floorball
- The Crane Bar
- The Crane Bar
- thuis
- thuis
- thuis
- thuis
- Tribal Sports Events
- vroeger
- Wittenberg, Germany
- Zimmer 16
- Zum fröhlichen Nix
- Arts Millenium Building
- Taaffes Bar
- The Crane Bar
One-click event registration
Custom booking forms with real-time seat availability, pricing, and instant confirmation.
[eme_add_booking_form id=42]
Form adapts based on
your selections
EME’s dyndata engine shows or hides fields in real time based on conditions like equal to, greater than, contains, and more.
A complete back-office
at your fingertips
19 dedicated admin pages for events, locations, bookings, members, templates, mailings, and more.
Built-in Jodit WYSIWYG editor
WordPress ships with TinyMCE — a legacy editor showing its age. EME allows you to optionally switch to Jodit, a modern, lightweight HTML editor purpose-built for today’s web.
More than meets the eye
A deep feature set built over 10+ years of real-world event management.
Custom & Dynamic Fields
Add unlimited custom fields to events, locations, people, members, and booking forms. Dynamic fields change based on user input.
PDF Generation
Automatic membership cards and booking tickets as PDF via email, with optional QR codes for attendance and payment verification.
GDPR Compliance
Built-in privacy tools: personal data requests, view/edit via secure links, and automated cleanup of old records for mailings, attendances, and bookings.
Attendance Tracking
Scan QR codes on membership cards or booking tickets to instantly verify attendance and payment status at the door.
Templating Engine
200+ placeholders for emails, event listings, feeds, RSVP forms, and more. Full control over every piece of output.
Content Protection
Gate pages and posts behind membership requirements. Drip content over time. Control exactly who sees what.
Scheduled Automation
Automatic payment reminders, membership expiry alerts, unpaid booking cancellations, and newsletter scheduling.
Volunteer Management
Define tasks per event and let volunteers sign up. Track who does what with dedicated task management shortcodes.
People & Groups
Centralized contact management with custom fields per person. Organize into groups to reflect your organization structure.
Form Security
Protect all forms with built-in captcha, Google reCAPTCHA, or hCaptcha. Prevent spam without third-party plugins.
Multi-lingual
Fully localized in 7 languages: German, Swedish, French, Dutch (NL+BE), Slovak, and Chinese. Compatible with qtranslate-xt and supports in-text language tags.
Fine-grained Permissions
Role-based access control for events, locations, bookings, members, and mailings. Multi-site compatible.
Frontend Event Submission
Let users create events from the frontend without admin access. Configurable notifications and optional submission fees.
Schema.org SEO
Automatic JSON-LD structured data for every event. Google rich results, Open Graph headers, and compatibility with Yoast SEO.
CSV Import & Export
Bulk import events, locations, members, payments. Export booking reports and volunteer signups as CSV.
Built for every type of event
Conferences
Multi-track schedules, speaker management, ticket tiers, early-bird pricing, and attendee check-in via QR codes.
Concerts & Festivals
Recurring events, multi-day festivals, venue maps, capacity management, and payment gateway integration.
Community Groups
Membership management, volunteer task signups, group communications, and recurring meetup scheduling.
Sports & Fitness
Class bookings, attendance tracking, membership tiers with drip content, and automatic renewal reminders.
A shortcode for everything
Drop a shortcode on any page. Customize with parameters. Style with 200+ placeholders in templates.
Display
[eme_events scope="future" limit="6"]
List events filtered by date, category, location, or author
[eme_calendar full=1]
Interactive calendar with month navigation and event popups
[eme_locations_map width="100%" height="400"]
OpenStreetMap with clustered markers for all locations
[eme_countdown id=42]
Live countdown timer to any event start
[eme_event id=42]
Display a single event anywhere using its template
Booking & RSVP
[eme_add_booking_form id=42]
Full registration form with custom fields, pricing, and payment
[eme_add_multibooking_form ids="1,2,3"]
Book multiple events at once in a single form
[eme_mybookings]
Logged-in visitors see and manage their own bookings
[eme_attendees id=42]
Public attendee list with configurable detail level
[eme_filterform]
Search and filter form for events by date, category, location
Members & People
[eme_add_member_form membership_id=1]
Membership signup with payment, custom fields, and family members
[eme_mymemberships]
Members view and renew their own memberships
[eme_change_personal_info]
Frontend profile editor for contact details and custom fields
[eme_gdpr]
GDPR data request form — view, edit, or delete personal data
Logic & Feeds
[eme_if condition]...[/eme_if]
Conditional content based on login, groups, dates, or custom logic
[eme_for var="i" from=1 to=5]...[/eme_for]
Loop over a range — generate repeated HTML from a template
[eme_tasks_signupform id=42]
Volunteer task signup with slot management per event
[eme_rss_link] / [eme_ical_link]
Auto-generated RSS and iCal feed URLs for any event scope
What happens when
someone books?
From form to confirmed ticket — every step is automated, configurable, and transparent.
Fills out the booking form
Name, email, seats, ticket type, dietary needs — whatever fields you’ve configured. Dynamic fields appear based on selections.
16-point validation
Anti-spam honeypot, nonce check, seat availability, email uniqueness, required fields, location capacity, discount validity — all checked in one pass.
Person record + booking created
Returning visitor? Existing record updated. New? Person created and optionally added to groups. Booking saved with status pending.
Pays via chosen gateway
Redirected to Stripe, Mollie, PayPal, or 13 other gateways. Price = base × seats + extras − discount. Free events skip this step entirely.
Payment confirmed via webhook
Gateway sends server-to-server confirmation. Double-payment protection built in. Booking marked as paid.
Booking auto-approved
If configured, paid bookings are approved instantly. Otherwise stays pending for manual admin review. The delayed pending-email is silently discarded.
Confirmation emails sent
To attendee: booking confirmation with event details, payment receipt, and PDF ticket attached.
To event manager: new booking notification with attendee info.
Automated reminders
Configurable reminder emails sent X days before the event. Separate templates for pending and approved bookings. All via the built-in mail queue.
Check-in & attendance
QR code on ticket, attendance tracking, real-time seat counts. The full cycle — from click to check-in — handled by one plugin.
See EME in action
A quick walkthrough of everything Events Made Easy can do.
Video Chapter index
Getting started
0:00 Introduction & installation 0:51 Default event display 1:18 Event format & templates 2:30 Recurring events 3:53 Permalinks & the Events pageShortcodes & content
5:02 Frontend display & shortcodes 5:54 Shortcode options & scope 7:56 Categories 8:40 Locations & maps 9:05 Placeholders & templatesCustom fields & data
10:50 Copy events & CSV import 11:33 Attributes vs. custom fields 12:56 Creating custom fields 15:05 Custom field placeholdersRSVP & booking
16:43 Booking activation & options 20:24 Seats, prices & waiting list 23:38 Payment gateways 24:12 Customizing the booking form 26:34 Multi-price seat categories 29:25 Dynamic price calculationReady to manage events
the easy way?
100% free. No premium tier. No per-gateway fees. No feature gating.
Open source, GPLv2 licensed, and built for WordPress and ClassicPress.
Built with love, sustained by donations
EME has been free and open source for over 10 years. No investors, no premium tier, no corporate backing. Every feature you see is funded entirely by the community. Your donation keeps the project alive, maintained, and growing.
EME relies on 3 vanilla JS libraries, all maintained by the same author:
ftable (a full jTable rewrite),
fdatepicker, and
snapselect.