Events Made Easy

Description

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 Google maps integration. With Events Made Easy you can plan and publish your event, or let people reserve 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 template tags 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
* People and groups with custom fields per person
* PDF creation for membership, bookings and people info
* RSS and ICAL feeds
* Calendar management, with holidays integration
* Several widgets for event listings and calendar
* location management, with optional Google Maps 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
* Send mails to registered people, automatically send reminders for payments
* Mail queueing and newsletter functionality
* Mailings can be planned in the future, cancelled …
* Multi-site compatible
* Fully localisable and already partially localised in Italian, Spanish, German, Swedish, French and Dutch. Also fully compatible with qtranslate (and mqtranslate): 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 .

Screenshots

Installation

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.

Usage

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

  • The Events page lets you edit or delete the events. The Add new page lets you insert a new event.
    In the event edit page you can specify the number of spaces available for your event. You just need to turn on RSVP for the event and specify the spaces available in the right sidebar box.
    When a visitor responds to your events, the box sill show you his reservation. You can remove reservation by clicking on the x button or view the respondents data in a printable page.
    You can also specify the category the event is in, if you activated the Categories support in the Settings page.
    Also fine grained control of the RSVP mails and the event layout are possible here, if the defaults you configured in the Settings page are not ok for this specific 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 People page serves as a gathering point for the information about the people who reserved a space in your events.
  • The Pending approvals page is used to manage registrations/bookings for events that require approval
  • The Change registration page is used to change bookings for events
  • The CRON page is used to plan automated EME tasks (like sending reminders, cancel unpaid registrations, newsletter)
  • The Settings page allows a fine-grained control over the plugin. Here you can set the format of events in the Events page.
  • Access control is in place for managing events and such:
    – a user with role “Editor” can do anything
    – with role “Author” you can only add events or edit existing events for which you are the author or the contact person
    – with role “Contributor” you can only add events in draft or edit existing events for which you are the author or the contact person

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

FAQ

See the FAQ section at the documentation site.

Installation Instructions

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.

Usage

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

  • The Events page lets you edit or delete the events. The Add new page lets you insert a new event.
    In the event edit page you can specify the number of spaces available for your event. You just need to turn on RSVP for the event and specify the spaces available in the right sidebar box.
    When a visitor responds to your events, the box sill show you his reservation. You can remove reservation by clicking on the x button or view the respondents data in a printable page.
    You can also specify the category the event is in, if you activated the Categories support in the Settings page.
    Also fine grained control of the RSVP mails and the event layout are possible here, if the defaults you configured in the Settings page are not ok for this specific 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 People page serves as a gathering point for the information about the people who reserved a space in your events.
  • The Pending approvals page is used to manage registrations/bookings for events that require approval
  • The Change registration page is used to change bookings for events
  • The CRON page is used to plan automated EME tasks (like sending reminders, cancel unpaid registrations, newsletter)
  • The Settings page allows a fine-grained control over the plugin. Here you can set the format of events in the Events page.
  • Access control is in place for managing events and such:
    – a user with role “Editor” can do anything
    – with role “Author” you can only add events or edit existing events for which you are the author or the contact person
    – with role “Contributor” you can only add events in draft or edit existing events for which you are the author or the contact person

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

Reviews

Terrible experience

I do not recommend this plugin at all!

I didn’t easily understand how it’s organized and the support is quite unfriendly. I am uninstalling this and using another plugin.

No one forces anybody to create a plugin and provide support, so if it’s to be rude to users, might as well do something else.

high customisable and simple

I like this plugin – simple, clear and high customisable. i can do a lot of fancy automated things 馃檪
not to mention is a great support and documentation!

Thank You!

Great plug-in

Great plug-in. Did a little research on which one was best for event management before trying this one and have been really pleased. Once set up my templates it is easy to create and manage new events.

Easily the best events plugin with fantastic support

Events Made Easy is so flexible, we haven’t found anything that we haven’t been able to do with it. Not only that, but when we’ve had issues, we’ve submitted them in the forums and gotten quick replies from the developer. He has worked through some stubborn third party issues with us, whether or not it was on the plugin’s end, just to make something work. EME is the best, and we trust it for all of our client sites – which almost always need an events plugin.

Developer is DA MAN! 6 stars, because it’s one louder!

Franky went far and above the call of duty to help me, found a nasty little typo from hell hidden among the oodles of garbage code I sent him (let’s assume a him…), obviously tested my code on his own system, stuck with me when the going got dark, held my hand without offending my manliness, and in the end his code did just what he said it would. I am awed, proud to be a contributor, and hope he gets all the success he deserves. Plus, the plugin is darn good…best of the ones I tried, so I am happy I could make it work for me. Hope it works for you, too!

Read all 82 reviews

Contributors & Developers

“Events Made Easy” is open source software. The following people have contributed to this plugin.

Contributors

“Events Made Easy” has been translated into 4 locales. Thank you to the translators for their contributions.

Translate “Events Made Easy” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

2.0.36 (2018/06/26)

  • When showing a calendar day with only 1 event: redirect to that event, solves title issues
  • remove an old code fragment that did php output buffering
  • Added action eme_approve_rsvp_action, executed immediately after booking approval. 1 parameter: $booking (contains all info of the booking in an array)
  • Send an approval mail if total price to pay is 0 (due to discount or so) and auto-approve is set
  • Added an option to add events and locations to the link search when creating links in the wordpress editor
  • Correctly show the payment form for memberships too

2.0.35 (2018/05/28)

  • Fix readonly formfields (disabled formfields are not passed via POST)

2.0.34 (2018/05/25)

  • Bugfix when storing person info after editing a booking in the backend

2.0.33 (2018/05/22)

  • EME is now compatible with the new gdpr functionality of wordpress, but not everybody is willing to update their WP version, so this version takes that into account

2.0.32 (2018/05/21)

  • Fix a bordercase with dynamic data where you use the same custom fields both in the main RSVP form and in the dynamic fields section
  • Documented the eme_people shortcode
  • Added options template_id_header and template_id_footer to the eme_people shortcode
  • Added #_GROUPS to attendee, booking and people placeholders, returning a csv list of the groups a person is in
  • Added #_GROUPS to dynamic data condition placeholders for events and memberships, returning a csv list of groups a user that is entering a form is currently in
  • Added eme_if condition ‘incsv’, so for ex. you can compare if a certain person is in a certain group and based on that show/hide stuff
  • Added extra dynamic data conditions (like ‘contains’, ‘notcontains’ and ‘incsv’)
  • Make EME compliant with the new wordpress gdpr functions

2.0.31 (2018/05/07)

  • Revert the global use of Nuberformatter, not every php installation has the intl extensions loaded (even though it is available in cpanel etc …)

2.0.30 (2018/05/04)

  • Don’t store the IP when creating a booking, this is unneeded info to keep and might be a problem for GDPR compliancy
  • Fix sending custom event mails to specific wordpress users/groups
  • Allow sending a preview mail for event mails
  • Add payment gateway and transaction ID info to booking/member payment info
  • Improve FirstData payments (other currencies except USD accepted now)
  • Add filter eme_add_currency_codes to be able to define the 4217 numeric code for own currencies (next to eme_add_currencies filter)
    Currently this code is only used for FirstData payments
  • NumberFormatter is now a requirement. This is not an issue for any php version >=5.6, which is required anyway.
  • Update DomPDF to 0.8.2

2.0.29 (2018/04/22)

  • Stay on edit page now also includes templates, formfields, people and groups
  • Fix for editing a booking with dynamic fields
  • Show dropdown field tag values too for a formfield of type ‘Person’
  • Fix dynamic pricing for custom fields again
  • Add EME version number to all javascript files, solves caching issues

2.0.28 (2018/04/16)

  • Use older array notation and take into account older mysql versions, both just needed for very old mysql/php installations
  • Correct the default behaviour for an empty location when creating/editing an event
  • Allow javascript to be used in the “booking recorded message”
  • Add an option to stay on the edit page after saving an event

2.0.27 (2018/04/09)

  • Add an option to exclude registered people from event mailings
  • Added creation_date and modif_date columns to virtual every eme table (and removed the unused *_gmt columns)
  • Review #_EVENTFIELD{xx}, #_LOCATIONFIELD{xx}, #_PERSONFIELD{xx}, #_BOOKINGFIELD{xx} and #_ATTENDFIELD{xx} with ‘xx’ being the name of a field for events, locations, persons, bookings or attendees. With the newly (or existing) columns for creation/modif you can use these placeholders for creation/modif timings
  • Allow all mails to be queued (new option in EME settings)

2.0.26 (2018/03/27)

  • Database table definition fixes for new installations
  • Fix for an option that was not saved
  • Show the format settings for rsvp payment success/failure (they were hidden in the options by old javascript)
  • Fix for the case where only 1 country is defined and #_COUNTRY is not used in the rsvp form (in which case #_STATE should return the states for that 1 country)

2.0.25 (2018/03/26)

  • Planned mailings now get their conditions reevaluated before the mailing starts (groups and such) so the result of the mailing will be as close to reality as possible on that moment
    This change is kindly sponsored by Alex Floris
  • Cancelled mailings had wrong statistics (reported 0 cancelled), this has been fixed
  • Added event placeholders #_STARTDATE{xx}, #_ENDDATE{xx}, #_EVENTCREATIONDATE{xx}, #_EVENTMODIFDATE{xx} with ‘xx’ being the date format of your liking (php date format compatible)
  • Added event placeholders #_DAYS_FROM_START and #_HOURS_FROM_START
  • Member extension javascript fix
  • Event location edit fix: the edit was not retained due to the location id of the current event having priority over the text entered
  • Discount code fixes when showing/editing dynamic prices in the admin backend
  • Deleting a person when deleting a member was not working as expected

2.0.24 (2018/03/16)

  • Undo clickable links, too much unwanted side-effects for now

2.0.23 (2018/03/15)

  • Added placeholders #_PAIDSPACES and #_PAIDSPACES{xx}
  • Allow to completely delete a person when deleting a member
  • Rename #_PAYED to #_PAID and #_IS_PAYED to #_IS_PAID
  • In case of multibooking the thank-you message was shown for each booking, has been corrected
  • Mentioned http/https/mailto addresses in events descriptions/notes/… are now clickable by default if you don’t create your own clickable link
  • Add an option to automatically add a person to a group when rsvp-ing or becoming a member
  • Discount fixes in case use per seat is set and max discount usage is 0
  • Discount edit was not saving the “use per seat” if it was unset after update

2.0.22 (2018/03/07)

  • Total seats for an event can be 0 now, to indicate no limit
  • Make discounts work again
  • Rename conditional tag #_IS_NOT_START_OR_END_DATE to #_IS_NOT_START_OR_END_DAY

2.0.21 (2018/03/01)

  • Bugfix: fix country/state required validation in the rsvp form
  • Bugfix: if mail queuing was not activated, custom mails for events were not possible
  • Fix num-3 validation

2.0.20 (2018/02/28)

  • Better country/states management
  • Set default country if only one country is defined
  • Don’t complain for sending an email if the receiver email is empty, just act as if it is ok
    This allows us to have persons in EME without email info now (it might seem archaic, but it happens …)
  • Bugfix: make state edit work again

2.0.19 (2018/02/24)

  • Use and enfore a list of states/countries for RSVP and people/members
  • Add marker_clustering option to eme_locations_map shortcode (allows to cluster a umber of markers together, values: true/false)
  • Autocomplete discount and discountgroup selection in the event RSVP setting screen
  • Allow people to be added to a static group from the people admin screen
  • Added a new template type “HTML output”, can be used in peple/members/rsvp admin screen. This allows you to create your own layout/lists
  • Allow to add a category to a list of selected events in the admin interface
  • Add option show_ongoing to shortcode eme_rss_link
  • Limit rsvp autocomplete to WP users if WP membership is required for the event
  • Global locations map now obeys the eme_filter shortcode too
  • Improvement: take into account deleted locations for event location updates
  • Removed a function that deleted old planned but unsent mailings after 7 days. This was ok in the past, but now interferes with planned mailings
  • Added option ignore_filter to shortcodes eme_events, eme_locations and eme_locations_map, so you can use several
    shortcodes on 1 page and only some are optionally influenced by the eme_filter
  • Bugfix: make notcategory work again in eme_calendar
  • Bugfix for taking into account WP membership and “register only once”

2.0.18 (2018/01/13)

  • Added the possibility to store the filter for people or member lists as a dynamic group, so you can send mail to that group
  • Make #_CAPTCHAHTML{…} obey newlines
  • More mailing options (archiving + better cleanup done)
  • Allow sending of mails to specific EME people and groups for event mails
  • More search-functionality in people/member admin screens
  • Show the applied discount i(group) names in the rsvp csv and printable report, and when editing a booking
  • Add rsvp placeholder #_APPLIEDDISCOUNTNAMES, returns a csv-list of applied discount names for a booking
  • Fix planning of generic mails again

2.0.17 (2018/01/08)

  • Allow planning of event mails too
  • Some more mailing stats
  • Extra RSVP setting per event to optionally require an unique person or email registration
  • Add option to check lastname/firstname without_accents when required (for unique registrations or the cancel form)
  • Allow an option to track discount usage per booked seat
  • Add the correct surrounding div to the payment form if shown standalone
  • Remove a wordpress db-debug statement
  • Better account for wordpress br-issues …

2.0.16 (2017/12/31)

  • GDPR improvements and corrections
  • Cron tip
    In crontab: */5 * * * * php -q /path/to/wordpress/wp-cron.php >/dev/null 2>&1
    And in wp-config.php: define(‘DISABLE_WP_CRON’, true);

2.0.15 (2017/12/30)

  • Use even less sessions (no sessions in admin backend needed at all for eme)
  • Track queued mails (count the times a mailing is read and when someone read the mail)
  • Allow include/exclude in #_EVENTCATEGORYDESCRIPTIONS too, and allow html in the cat description
  • Allow multiple category ids in the eme_add_multibooking_form shortcode
  • When deleting locations, you can now select to transfer associated events to another location
  • Bugfix for sending mails to “all” for events (and in cron)
  • Added filters eme_event_categories_sep_filter, eme_event_categorydescriptions_sep_filter, eme_linked_event_categories_sep_filter
    Also added options for these (in the ‘Other’ section), so the filters shouldn’t be needed
    These control the separator for #_EVENTCATEGORIES (default: “, “), #_EVENTCATEGORYDESCRIPTIONS (default: “, “) and #_LINKEDEVENTCATEGORIES (default: “, “)

2.0.14 (2017/12/20)

  • Remove an old polylang workaround
  • Make sure we don’t interfere with wordpress ajax when using sessions (although sessions are not recommended, so that will get replaced in the future)
  • Add action hook eme_insert_member_action, so you can add custom code after a member signed up. One param: $member (to get the answers of that member and more: see the doc on hooks and filters)
  • Cron tip
    In crontab: */5 * * * * php -q /path/to/wordpress/wp-cron.php >/dev/null 2>&1
    And in wp-config.php: define(‘DISABLE_WP_CRON’, true);

2.0.13 (2017/12/15)

  • Another discount fix (for dynamic price calc)
  • Added creation/modif datetime columns for events in the admin backend

2.0.12 (2017/12/13)

  • Fix discounts (discount usage was increased each time for dynamic price calculation and showing in paypal,… resulting in discounts not to apply when the max usage was set to 1)
  • Fix for adding a location

2.0.11 (2017/12/13)

  • Stripe and Braintree payment gateway corrections
  • Added payment gateway Paymill
  • Correct some CSS (not all relevant messages were being shown)
  • Correct dropdown_multi (typo fix)
  • Bookings with price 0 (after discount and such) are now marked paid and (if set) auto-approved
  • Fix paging header for events (paging and monthly/daily/weekly scope did not show the paging header anymore if a period had no events)
  • BEHAVIOUR change: from now on a custom page will always be shown after payment, so the option itself to decide wether or not to show it has been removed

2.0.10 (2017/12/06)

  • Allow more HTML5 formfield types
  • Handle some datetime exceptions more gracefully for membership status calculation
  • Fix so event authors can edit own events again
  • Fix for template parsing (added a possible newline too much at the end)
  • Make location autocomplete for events more predictable

2.0.9 (2017/12/02)

  • Show category slug (SEO permalink) and allow to change it
  • Make mailing reports useful again
  • Add bulk action to resend mail to pending members
  • Updating dynamic fields for members was not working
  • Remove the deprecated ‘fields’ option for the filterform shortcode, making it work more logically
  • Cron tip
    In crontab: */5 * * * * php -q /path/to/wordpress/wp-cron.php >/dev/null 2>&1
    And in wp-config.php: define(‘DISABLE_WP_CRON’, true);

2.0.8 (2017/11/24)

  • Add “Send email” mass action to rsvp-list
  • Fix for dynamic pricing field
  • Delete answers not linked to anything when updating members/people/rsvp
  • Fix for replacement of booking/attendee placeholders in the EME header/footer settings for bookings/attendees
  • Fix for mail to all people
  • Initial support for GDPR (General Data Protection Regulation, [eme_gdpr] shortcode)

2.0.7 (2017/11/17)

  • Adding/editing a membership was not saving its properties
  • The displayed start/end date for new members was not correct when signing them up in the backend interface

2.0.6 (2017/11/13)

  • Allow shortcodes in the rsvp and member forms (allows you to use conditional tags and e.g. only show certain fields in the admin section)
    For this #_IS_ADMIN and #_IS_LOGGED_IN now work in member forms
  • Better handling of answers (update when needed), to alleviate the pressure on the answers table
  • Integrate better with wordpress images, so:
    • for people, we can use #_IMAGETITLE, #_IMAGEDESCRIPTION, #_IMAGEALT, #_IMAGECAPTION (the 4 properties you can set for a wordpress image)
    • for events, we can use #_EVENTIMAGETITLE, #_EVENTIMAGEDESCRIPTION, #_EVENTIMAGEALT, #_EVENTIMAGECAPTION (the 4 properties you can set for a wordpress image)
    • for locations, we can use #_LOCATIONIMAGETITLE, #_LOCATIONIMAGEDESCRIPTION, #_LOCATIONIMAGEALT, #_LOCATIONIMAGECAPTION (the 4 properties you can set for a wordpress image)
  • Fix for inserting persons in the database (was causing a WP-prepare error)

2.0.5 (2017/11/12)

  • Show more error messages on screen to catch php issues for people …
  • Make global map work again
  • Simple search added in mailing reports
  • Person image column deleted and moved to properties, this allows more person properties in the future without needing to change the db
  • Added title/description to person image, together with the placeholders #_IMAGETITLE, #_IMAGEDESCRIPTION
  • Removing a person from the last group he was in was not working
  • Removed the option “Add payment id to return page info” (added by default now) and as a result simplified the code for custom return/error pages for bookings (works for multi-bookings too now)
  • Small interface fix for the membership and forever-period (to show an empty end-date and not the date of today)

2.0.4 (2017/11/10)

  • Add #_FIELDCOUNTER and #_FIELDGROUPINDEX for dynamic field formfields, so you can indicate the number used
  • Small bugfix to make “Show all bookings” link work as expected again
  • The mailing report showed all mails sent, not the one from the selected mailing
  • Allow individual mails from the report to be reused
  • Allow people to have a picture
  • Add shortcode [eme_people] with option group_id (to show a specific group) and template_id (for the formatting)
    All people placeholders can be used in the format
  • Added extra people placeholders #_IMAGE, #_IMAGEURL, #_IMAGETHUMB, #_IMAGETHUMBURL
    #_IMAGETHUMB{xx} and #_IMAGETHUMBURL{xx} (‘xx’ being a thumbnail format)

2.0.3 (2017/11/09)

  • Default ordering for people was not correct (should be lastname/firstname)
  • The filtering fields for the people search form is now limited to those of fields with purpose “people”
  • Corrected the startdate calculation for members
  • The mailings tab is now ajaxified, showing correct results all the time without needing to refresh the page
  • PDF output for people was no longer working due to typo

2.0.2 (2017/11/08)

  • Some mobile screen improvements in the admin
  • Bugfix for answers table (was not storing answers for fresh EME installations)

2.0.1 (2017/11/05)

  • Allow some basic membership placeholders to be used in the memberform: #_MEMBERSHIPNAME, #_MEMBERSHIPDESCRIPTION, #_MEMBERSHIPPRICE
  • New actions in people and members: send mail to selected rows
  • Mailing can now be reused too
  • Layout improvements for selecting people, groups and defining a mailing
  • Bugfix: on new installations the answers and queue tables were not created due to a typo

2.0.0 (2017/11/03)

Because of new membership functionality, this is a major update.
* INCOMPATIBILITY: Dynamic field conditions are now much more flexible, but not backwards compatible!
* “Add event” submenu is now part of “Events”
* Allow mails to be sent concerning multiple events
* Revamp the send-mails, holidays, categories, templates and formfields screens
* Form fields with multiple choice can now have different values in the backend as in the frontend
* Groups added, and the possibility to send mails to groups
* Mailings can now be planned, making EME into a very nice mailing system
* Custom fields are now possible for people (even with the possibility to conditionally show them for a specific group), and FIELDVALUE can be used in people placeholders now
* Add custom formfield type Date (JS) ==> to show a datefield via jquery
* Add custom formfield type Dropdown (Multi) ==> to show a dropdown multi-select field
* Membership functionality added
Member placeholders: see doc
Membership form placeholders: see doc
Membership form shortcode eme_add_member_form: see doc
* PDF can be generated for both members and bookings (based on a choosen template with new type ‘PDF’)
* API search function eme_wordpress_search_events can now take an argument “scope” (values=past/future/all, default=future)
* More visual feedback in the rsvp admin section when executing actions
* Added option to change the “bookings no longer allowed on this date” text
* Also check for free available seats when updating a booking in the backend
* Show dyndata in CSV export
* Allow “month=next_month” in the calendar shortcode
* Add new people placeholder #_MASSMAIL
* Updated Stripe API to 5.5.0
* Bugfix: when someone cancelled a booking from the frontend, no mail was sent to the contact person
* Bugfix: #_FIELD was not working anymore in the multibooking rsvp form
* Bugfix: template type ‘All’ was not working as expected
* Cron tip
In crontab: */5 * * * * php -q /path/to/wordpress/wp-cron.php >/dev/null 2>&1
And in wp-config.php: define(‘DISABLE_WP_CRON’, true);

Older changes can be found in changelog.txt