Events Made Easy


Events Made Easy is a full-featured event and membership management solution for WordPress. Events Made Easy supports public, private, draft and recurring events, membership and locations management, RSVP (+ optional approval), several payment gateways (Paypal, 2Checkout, FirstData, Mollie and others) and OpenStreetMap integration. With Events Made Easy you can plan and publish your event, or let people book spaces for your weekly meetings. You can add events list, calendars and description to your blog using multiple sidebar widgets or shortcodes; if you are a web designer you can simply employ the placeholders provided by Events Made Easy.

Main features:
* Public, private, draft and recurring events with custom and dynamic fields in the RSVP form
* Membership management with custom and dynamic fields
* Attendance reporting for events and memberships if the rsvp or member qrcode is scanned by someone with enough rights
* Page and post content protection through memberships or via shortcodes
* Drip content via memberships
* People and groups with custom fields per person
* PDF creation for membership, bookings and people info
* Membership card or booking ticket can be sent as PDF via mail automatically, with optional QR code to scan for attendance/payment info
* RSS and ICAL feeds
* Calendar management, with holidays integration
* Several widgets for event listings and calendar
* Location management, with optional OpenStreetMap integration
* RSVP bookings with custom fields and dynamic fields, payment tracking, optional approval, discounts
* Templating for mails, event lists, single events, feeds, RSVP forms, … with specific placeholders for each
* Lots of shortcodes and options
* Payment gateways: Paypal, FirstData, 2CheckOut, Mollie, Worldpay, Sagepay, Stripe, Braintree, Paymill, Instamojo, Mercado Pago
* Send mails to registered people, automatically send reminders for payments
* Automatically send reminders for memberships that are about to expire or have expired
* Mail queueing and newsletter functionality
* Mailings can be planned in the future, cancelled …
* Multi-site compatible
* Has several GDPR assistance features (request and view personal info via link; delete old records for mailings, attendances, bookings)
* Fully localisable and already fully localised in German, Swedish, French and Dutch. Also fully compatible with (m)qtranslate(-xt): most of the settings allow for language tags so you can show your events in different languages to different people. The booking mails also take the choosen language into account.

For more information, documentation and support forum visit the Official site .

Capturi ecran


Always take a backup of your db before doing the upgrade, just in case …
1. Upload the events-made-easy folder to the /wp-content/plugins/ directory
2. Activate the plugin through the ‘Plugins’ menu in WordPress
3. Add events list or calendars following the instructions in the Usage section.


After the installation, Events Made Easy add a top level „Events” menu to your WordPress Administration.

  • The Events page lets you manage your events. The Add new page lets you insert a new event.
    Generic EME settings concerning RSVP mails and templates can be overriden per event.
  • The Locations page lets you add, delete and edit locations directly. Locations are automatically added with events if not present, but this interface lets you customise your locations data and add a picture.
  • The Categories page lets you add, delete and edit categories (if Categories are activated in the Settings page).
  • The Holidays page is used to define and manage holiday lists used in a calendar
  • The Custom fields page lets you manage custom fields that can be used for events, locations, people, members, memberships and RSVP definitions
  • The Template page lets you manage templates for events, memberships, mails, pdf creation, …
  • The Discounts page lets you manage discounts and discount groups used in RSVP or membership definitions
  • The People page serves as a gathering point for the information about the people who booked a space for one of your events or for members personal info.
    It can also be used to add custom info for a person based on the group he’s in, so as to reflect the structure of an organization or just store extra info
  • The Groups page
  • The Pending bookings page is used to manage bookings for events that require approval.
  • The Change bookings page is used to change bookings for events.
  • The Members page is used to manage all your members (e.g. membership status, custom member info).
  • The Memberships page is used to define and manage your memberships.
  • The Countries/states page can be used to define countries and states (in different languages) for personal info in membership and RSVP forms
  • The Send mails page allows the planning, creation and management of mailings for events or generic info (many options possible)
  • The Scheduled actions page is used to plan automated EME tasks (like sending reminders, cancel unpaid bookings, newsletter)).
  • The Cleanup actions page
  • The Settings page is used to set generic EME defaults for events, payment gateways, mailserver info, mail templates, …
  • Fine-grainded configurable access control (ACL) for managing events, locations, bookings, members, …

Events list and calendars can be added to your blogs through widgets, shortcodes and placeholders. See the full documentation at the Events Made Easy Support Page.

Întrebări frecvente

See the FAQ section at the documentation site.


24 iulie 2020
It's work very well as shortcode - [eme_calendar author=#_MYSELF]. Each user can keep their own personal private calendar
26 martie 2020
It would be great if I could have added even a single event. Or if the video the developer posted showed how to do the MOST BASIC THING POSSIBLE... that being actually showing how to add a new event. And don't be fooled at over 40 minutes long, the video is NOT a "quick rundown". Every time I tried to add even a simple test event, I kept getting this type of error Table 'db822076813.ieThOZcyeme_events' doesn't exist
30 octombrie 2019
Ich verwende EME seit mehreren Jahren und bin top zufrieden damit! Auch wenn es einem als Nicht-Programmierer schwer fällt, die ein oder andere persönliche Anforderung an das Plugin umzusetzen, die Möglichkeiten sind jedenfalls schier unendlich. Das Plugin wird ständig weiter entwickelt und realisierbare Feature-Wünsche werden auch umgesetzt.
22 octombrie 2019
After several tested plugins for ticket bookings, I decided to go with EME because it is very flexible and you can get used to it very quickly. Also a good export function is built in order to be able to print booking lists. Very important: The developer regularly provides updates and responds quickly to notifications about bugs or new ideas/features/requests in the EME-forum. ... and it's absolutely free - which is a good reason for a donation (everyone has to pay for his coffee)! Keep it up...
14 iulie 2019
The Events Made Easy plugin can do just about everything I need to create, manage, and ticket events. Flexible with lots of settings to customise it, and the ability to take payments built in. Just understand that there's a little learning curve, so take some time to read the documentation to get started.
7 iulie 2019
Il offre de très nombreuses possibilités et répond à de très nombreuses situations sans forcer la main. Il demande cependant un investissement certain pour en tirer toutes les subtilités. Sa traduction récente en français apporte une aide non négligeable.
Citește toate cele 94 de recenzii

Contributori și dezvoltatori

„Events Made Easy” este un software open-source. La acest modul au contribuit următoarele persoane.


„Events Made Easy” a fost tradus în 7 locale. Mulțumim traducătorilor pentru contribuția lor.

Tradu „Events Made Easy” în limba ta.

Te interesează dezvoltarea?

Răsfoiește codul, vezi depozitarul SVN, sau abonează-te la jurnalul de dezvoltare prin RSS.

Istoric modificări

2.1.88 (2020/08/03)

  • Logic fix to be able to allow rsvp until 0 hours before the evend ends
  • Allow date to be set when manually adding an attendance
  • Correct some EME option explanations

2.1.87 (2020/07/27)

  • Sanitize fix for templates (was being too strict now …)
  • Captcha fix

2.1.86 (2020/07/27)

  • Fix #_MYSELF as an calendar day argument too
  • Added a search mail functionaility to allow to search all sent emails, even those not belonging to a specific mailing (if queuing is on)
  • Allow to add an attendance record manually
  • Added specific access rights to list or manage (add/delete) attendances
  • Fix showing values for option textarea fields (typo for showing option values if those were a html textarea)

2.1.85 (2020/07/24)

  • For new installations, the mail sending method now defaults to WP Mail and allows html by default too.
  • Update select2 to 4.1.0-beta.1
  • New option to redirect pages protected with EME memberships to a custom url. The original page will be added to the query string in the form of „redirect=URL”.
  • Allow author or contact_person to be „#_MYSELF” if you want to limit events to only those where you’re the author:
    [eme_events author=#_MYSELF]
    or the contactperson:
    [eme_events contact_person=#_MYSELF]
    or both of course 🙂
    This is also possible for the [eme_calendar] shortcode, and also for the event and calendar widget options.
  • Fix the access rights when updating a recurrence (it denied access even when it should be allowed to update)

2.1.84 (2020/07/11)

  • Localize multiprice too
  • Change the attendance field on RSVP forms from dropdown to checkbox, and add a class to it
  • Added the conditional placeholder #_IS_RSVP_STARTED
  • Reuse input from custom fields of type „people” in the frontend too
  • Make sure no newsletter mail is sent if no events are planned
  • Add a new menu to consult attendance reports on memberships or past events
  • Prepare for new 5.5 release of wordpress (5.5 has a newer phpmailer version included in a new location)
  • If booking approval is needed and auto-approve after payment is on and the price to pay is 0 (due to discount reduction for example), then mark the booking as approved and not pending
  • Attendance records are now stored (for events or memberships that want it) if an EME admin scans the RSVP attendance QRCODE or the member QRCODE

2.1.83 (2020/06/26)

  • Allow empty discounts being entered if no discount is required
  • Obey the ignore massmail setting for mailings to all people
  • Fix the #_RSVP_STATUS placeholder

2.1.82 (2020/06/23)

  • Fix the switch for Instamojo from sandbox to live
  • Fix hiding existing comments for memberships
  • Fix the newsletter functionality

2.1.81 (2020/06/13)

  • Hide comments/pings/trackbacks and disable comment form on pages that are members-only
  • Also hide the featured image for member protected pages
  • Renamed some global constants to avoid conflicts. If you use these in your functions, please verify and correct:
  • Allow online payments to succeed for membership extensions
  • Added #_SUBMIT to the list of filter form placeholders, so you can put the submit button (with custom text) wherever you want it
  • #_FILTER_CATS, #_FILTER_LOCS, #_FILTER_TOWNS and #_FILTER_COUNTRIES (and their #_EVENTFUL equivalents) now allow an argument to indicate the title for that search field
  • Added a setting to disable refunds globally

2.1.80 (2020/06/05)

  • #_ATTENDANCE_QRCODE and #_MEMBER_QRCODE now support an argument to define the size. The options: any number from 1 to 8 or the predefined sizes small (=1), medium (=2, the default), large (=4), huge (=8)
    Examples: #_ATTENDANCE_QRCODE{huge} or #_MEMBER_QRCODE{4}
    Since the default is 2, this can change the size of the generated image (it used to be 3 for #_ATTENDANCE_QRCODE). If your layout depends on this, please verify.
  • Revert an attempt to optimize the filter the_content
  • Added placeholders #_MEMBERNEXTENDDATE (identical to #_MEMBERENDDATE, but will give the end date of the next period if the person would pay again)
  • Member placeholder #_PAYMENT_URL now allows to pay for active members too, this also works for #_MEMBERSHIP_PAYMENT_URL

2.1.79 (2020/06/02)

  • Fix to allow non-ASCII characters in the global e-mail template settings (thanks to Sebastian Lisken)
  • The placeholders #_USER_HAS_CAP, #_USER_HAS_ROLE, #_USER_IN_GROUP, #_USER_IS_MEMBER_OF, #_IS_USER_MEMBER_PENDING and #_IS_USER_MEMBER_EXPIRED now also allow multiple arguments (separated by „,”)
  • Revert an attempt to optimize the filter the_title

2.1.78 (2020/05/30)

  • In the frontend, allow the edit of firstname, lastname or email in the rsvp/member form if the respective value is empty, even for logged in users. Also allow edit of all other info in the frontend (so people can correct their address, … on a subsequent signup)
  • Generate a payment id for imported members too
  • The placeholders #_ADDBOOKINGFORM_IF_USER_HAS_CAP, #_ADDBOOKINGFORM_IF_USER_HAS_ROLE, #_ADDBOOKINGFORM_IF_USER_IN_GROUP and #_ADDBOOKINGFORM_IF_USER_IS_MEMBER_OF now allow multiple arguments (separated by „,”) so you can e.g. show the form to only users that are in one of the mentioned EME groups, with certain rols, or if member of one of the mentioned memberships
  • Added an option so you can set the text when WP membership (login) is required for a membership
  • Added a new bulk action in the members admin interface so you can resend the mail for paid memberships
  • Improve the logic to send paid mails (if total price=0 due to a discount, it will be sent too)
  • Added an option to disable browser caching of pages (and I recommend activating it …)
  • Added attendance count to CSV export report for bookings
  • Added eme_if condition ‘notincsv’, so for ex. you can compare if a certain value is not in a CSV list (like groups/categories) and based on that show/hide stuff. Also added this as a test condition for dynamic data.
  • Fix the #_USER_HAS_ROLE placeholder

2.1.77 (2020/05/20)

  • Improve custom field purpose behaviour (you can use ‘generic’ again, to indicate a field can be used as a member or rsvp field and the usage of these 3 purposes has become a bit more blurred, so in fact ‘generic’ is no longer deprecated).
  • Use all available basic person info in RSVP/member forms when user is logged in
  • Officially add the eme_mymemberships shortcode (it already existed but just returned a comma-separated list of membership names, now it has a template/header/footer that can contain member and membership placeholders
  • Added placeholder #_RSVPSTART and corrected #_RSVPEND, these give in localized date/time the start or end date/time when rsvp can be done

2.1.76 (2020/05/02)

  • Improve paypal error output
  • PDF output now has a configurable font setting, which defaults to the unicode font „Dejavu Sans” (setting in section „Other”)
  • Add organizer info to google ld+json html header

2.1.75 (2020/04/24)

  • Actually release the new version …

2.1.74 (2020/04/23)

  • Make google metadata datetime headers show up in correct format for online-only events
    For that, the event placeholders #_STARTDATETIME_8601 and #_ENDDATETIME_8601 have been introduced
  • Refund made possible for paypal payments (not for existing stored payments though, since the stored paypal id was not the correct one to be able to refund)
  • Expand eme_for to allow also lists with a custom separator, and also allow #_LOOPVALUE (plus #URL_LOOPVALUE) and #_LOOPCOUNTER in the repeating content (see doc)
  • Fix copy/paste error that causes auto-approve after payment to not approve the booking

2.1.73 (2020/04/15)

  • Fix the usage of discount groups
  • Make sure sanitized event properties are stored in the event
  • Add Mercado Pago the the list of payment gateways
  • Fix some SQL for retrieving bookings for registered users

2.1.72 (2020/04/04)

  • Fix some undefined variables
  • Fix call to wp_kses when saving the EME access denied option

2.1.71 (2020/04/04)

  • Fix some undefined variables
  • Fix the location url for the google ld+json html header

2.1.70 (2020/04/02)

  • When adding a person, custom person field weren’t saved upon creation but only upon edit
  • Location admin interface overhaul
  • Added #_LOCATION_EXTERNAL_URL, as a location can now be totally online (virtual), physical or a combo (and then you might need the url)
  • Added eventAttendanceMode to google json+ld output for events
  • Existing filter eme_extra_event_headers_filter renamed to eme_extra_event_headers_json_filter, to indicate it is really only used for the json-part of the extra headers for an event
  • New filter eme_extra_event_headers_filter that can filter on other extra event headers being added (meta tags)
  • You can now receive partial payments for a booking too (only via the admin itf for bookings)
  • Added refund option (only for Mollie and Instamojo for now)
  • Updated Mollie api to 2.17.0

Older changes can be found in changelog.txt