Plugin Directory

Test out the new Plugin Directory and let us know what you think.

Events Made Easy

Manage and display events, recurring events, locations and maps, widgets, RSVP, ICAL and RSS feeds, payment gateways support. SEO compatible.

1.7.12 (2017/02/14)

  • Dutch language updates (thanks to Benny De Vuyst)
  • The location placeholders #_PASTEVENTS, #_NEXTEVENTS, #_ALLEVENTS now have an optional parameter so you can decide the sorting order of the events shown. Default is ASC, so e.g.: #_PASTEVENTS{ASC} #_NEXTEVENTS{DESC} More complex ordering can be used too, see the eme_events shortcode for tips
  • Allow the status of the event to be given as an url parameter for the admin list of events, so you can quickly show the list of e.g. draft events: /wp-admin/admin.php?page=events-manager&status=2 (1: public, 2: private, 5: draft)
  • The text "Required field" in the rsvp form can now be customized in the rsvp settings
  • The ical location format for an event can now be customized in the ical settings
  • Bugfix: eme_filters shortcode could skip a month for the month filter

1.7.11 (2017/01/21)

  • Allow to search for location countries too (placeholder FILTER_COUNTRIES added for the eme_filter shortcode layout)
  • The shortcode eme_filterform can now also be used together with the shortcode eme_locations (using the filters FILTER_LOCS, FILTER_TOWNS, FILTER_COUNTRIES)
  • Added API function eme_wordpress_search_locations, to allow you to search for locations (as eme_wordpress_search_events). See the doc
  • Put js as much in the footer as possible, and defer the execution also, to speed up page rendering
  • RSS pubdate was being localised and it should be RFC822 format, this has been corrected now
  • The people table can now be exported, printed and searched like the events table
  • The locations table has been ajaxified too
  • The 'order' option in [eme_events] can now contain own columns you want to order on. The default is "event_start_date ASC, event_start_time ASC, event_name ASC"
  • Try to remove yoast SEO headers from the special page
  • The shortcode eme_if now also accepts "eq" as an alternative for "value" and "ne" as an alternative for "notvalue" This is more in line with the other options (lt, gt, ge, ...)

1.7.10 (2016/12/16)

  • Split out mail templates in separate section, so we can easily take the option to send html mails into account and disable the html editor if not needed
  • Fixed some location issues

1.7.9 (2016/12/11)

  • Offline fix

1.7.8 (2016/12/10)

  • Add new discount type "fixed discount per seat"
  • Add offline-payment setting
  • Backwards incompatibility: renamed the multibooking option eme_register_empty_seats to just register_empty_seats (and documented it)
  • Backwards incompatibility: for a multibooking, events that use the attendance option won't store empty seats (the 'no'-answer) unless you use the option register_empty_seats=1 (default=0)
  • The HTML editor is shown for many settings/templates now, more will follow after feedback
  • Add extra fields for location info: address1, address2, city, state, zip, country (the old address field is now address1; the old town field is now city).

1.7.7 (2016/11/01)

  • Make the delete icon for events and discounts actually work again
  • Add option to make captcha case insensitive
  • Make notices permanently dismissable again

1.7.6 (2016/10/14)

  • Added eme_for shortcode, to be able to show certain html multiple times (2 values: min, max, see doc for examples)
  • Bugfix: show the no-longer-allowed-to-book message again if the end-date has passed (not for multi-booking)
  • Bugfix: allow 0-seats for attendance-like events again
  • Bugfix: the extra attributes field for formfields was not showing the correct value when editing the formfield
  • Add the possibility to send a test email via the "Send Mails" page
  • Bugfix: the smtp port setting was not correctly taken into account (always resulting in port 25 being used)

1.7.5 (2016/09/14)

  • Client clock functionality was not working anymore
  • Fix setting 'Age of unpaid pending bookings in minutes'
  • Make captcha work again (although sometimes it worked ... the quirks of php session autostart I guess)

1.7.4 (2016/09/13)

  • Mail was not being sent after payment arrived for autoapproval

1.7.3 (2016/09/12)

  • Moving a registration to another event was not working anymore

1.7.2 (2016/09/07)

  • Make sure mail is sent out when denying a registration
  • Correct the link to RSVP in the Pending registration menu
  • When adding a booking in the backend, don't mark it immediately as paid
  • Add booking ID back to rsvp overview

1.7.1 (2016/09/06)

  • Small fix: make sure payments received via ipn approve the booking if auto-approve is set
  • Improvents in the event overview: you can now click on pending bookings

1.7.0 (2016/09/06)

  • Paging events for the last day of the month failed if the next month has fewer days. E.g. if you're on August 31 and tried to go to the next month via event paging, it would give you October because Sept 31 doesn't exist
  • Added the possibility to send mails after payment notification from payment gateway was received. You just need to set what you want in the regular mail settings page of EME.
  • Added shortcode [eme_holidays], with 1 parameter: the id of the holidays list. Will return a simple html list of your holidays list
  • The event listing in the backend is now ajax based, this will result in much better performance if you have many events
  • Bugfix: typo: payed => paid

Older changes can be found in changelog.txt

Requires: 4.0 or higher
Compatible up to: 4.7.2
Last Updated: 1 week ago
Active Installs: 10,000+


4.6 out of 5 stars


22 of 24 support threads in the last two months have been marked resolved.

Got something to say? Need help?


Not enough data

0 people say it works.
0 people say it's broken.

100,3,3 67,3,2
100,3,3 75,4,3
50,2,1 80,5,4 100,1,1 100,1,1 100,1,1
100,1,1 100,2,2 100,1,1 100,1,1 100,1,1 0,1,0 100,1,1 100,1,1 100,1,1 100,1,1 100,2,2 100,1,1
33,3,1 100,2,2 100,1,1 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 0,1,0 100,2,2 100,3,3 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,2,2
0,1,0 100,1,1
100,1,1 67,3,2 100,1,1 100,1,1
100,1,1 100,1,1 50,2,1 0,1,0 50,2,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,2,2 100,1,1
100,1,1 100,1,1 100,1,1
100,2,2 100,1,1