Search Over 30,000 FREE Plugins from the Official WordPress Plugin Directory Repository

Easy Appointments

Add Booking system to your WordPress site and manage Appointments with ease. Extremely flexible time management and custom email notifications.

Add Booking Appointments system to your WordPress site and manage Appointments with ease. Extremely flexible time management. Multiple location, services and workers. Email notifications.

Can be used for : Lawyers, Salons, Mechanic, Cleaning services, Doctors, Spas, Personal trainers , Private Lessons, Escape rooms etc,

Live Demo

Responsive Appointment form
Responsive Appointment form - two column layout
Standard Appointment form



  • Multiple Locations
  • Multiple Services
  • Multiple Workers
    • Create dedicated calendar for one location / service / worker
  • Extremely flexible time table
  • Email notifications :
    • Visitor notification
    • Admin notification
    • Employee (worker) notification
    • Custom content and subject
    • Confirm or cancel appointment by link in email
    • HTML content via WYSIWYG editor
  • Single Column Responsive Bootstrap Layout for Appointment form
  • Two Column Responsive Bootstrap layout
  • Custom form fields :
    • Create your own custom form fields in a few clicks
    • textarea
    • select
    • input
    • Make fields required
    • Drag and drop order
  • Internationalization - support for translations (you can create your own translation >> tutorial <<)
    • German translation (thanks to Matthias)
    • Romanian translation (thanks to Vlad)
    • Polish translation (thanks to Maciej Bauza)
    • Finnish translation thanks to Maija
    • Portuguese translation thanks to Antonio
  • Labels
    • Hide price
    • Add custom currency
    • Custom style
  • Localization of datepicker for 77 different languages (day of week, months)
  • Reports
    • Time table overview
    • Export to CSV (for Calc, Excel...)

Need even more like Google Calendar, iCalendar, WooCommerce or Twilio SMS support?

There is extension plugin that you can buy and add to your Easy Appointments plugin :

  • Google Calendar with 2 way sync
  • iCalendar
  • Twilio SMS notifications
  • WooCommerce integration

For more info follow the link for Extension plugin


Author Nikola Loncar
Contributors loncar
Tags appointment, appointments, Booking, calendar, plugin, Reservation, reservation plugin, reservations, schedule, wp appointment
  1. easy-appointments screenshot 1

    Responsive front end shortcode [ea_bootstrap] - part1

  2. easy-appointments screenshot 2

    Responsive front end shortcode [ea_bootstrap] - part2

  3. easy-appointments screenshot 3

    Responsive front end two column [ea_bootstrap layout_cols="2"] - part1

  4. easy-appointments screenshot 4

    Responsive front end two column [ea_bootstrap layout_cols="2"] - part2

  5. easy-appointments screenshot 5

    Standard front end form for Appointment [ea_standard] - part1

  6. easy-appointments screenshot 6

    Standard front end form for Appointment [ea_standard] - part2

  7. easy-appointments screenshot 7

    Admin panel - Appointments list

  8. easy-appointments screenshot 8

    Admin panel - Settings Location. Define your Locations

  9. easy-appointments screenshot 9

    Admin panel - Settings Services. Define your Services

  10. easy-appointments screenshot 10

    Admin panel - Settings Workers. Define your Workers

  11. easy-appointments screenshot 11

    Admin panel - Settings Connection. Set single combination for location, service, worker

  12. easy-appointments screenshot 12

    Admin panel - Customize - Email notifications

  13. easy-appointments screenshot 13

    Admin panel - Customize - Custom form fields

  14. easy-appointments screenshot 14

    Admin panel - Customize - Label customization

  15. easy-appointments screenshot 15

    Admin panel - Report - Time table overview

Install process is quite simple :

– After getting plugin ZIP file log onto WP admin page. – Open Plugins >> Add new. – Click on “Upload plugin” beside top heading. – Drag and drop plugin zip file.


In order to have Appointments form in your Page or Post insert following shortcode


For NEW bootstrap version :


Options :

width : default value 400px scroll_off : default value off layout_cols : default value 1

example : [ea_bootstrap width="800px" scroll_off="true" layout_cols="2"]


  • Fix for form overlay
  • Added validation for settings
  • Fix for auto focus to next field
  • Small improvements
  • Hungarian translation thanks to Tibor


  • Fix for empty customize settings page


  • Fix for fatal error on PHP 5.2


  • RTL - switched places in booking overview for label and value
  • Now admin email is also send if the Appointment has been changed in backend and option Send email notification marked
  • Better Accessibility - key navigation for selecting time on customer form


  • Small css improvement
  • Right-To-Left option improvement


  • Version bump


  • Fix - Date/Time formatting on Overview section based on General settings. Using MomentJS
  • Additional filters


  • NEW - Right-To-Left option for bootstrap version of form
  • French translation thanks to Philippe


  • Removed slashes from custom form fields value


  • Portuguese translation thanks to Antonio
  • Minor bug fix


  • Finnish translation thanks to Maija


  • Start of week now depends of General Settings for the front end form. If you want to override that but not change settings use short code attribute start_of_week.


  • Small bug fixes
  • Fixed issue with possible double booking on front end
  • Price as decimal number


  • Bug fix: connection clone option didn't copy "date to" value


  • Small change on email links


  • Improved loading of select options in front end
  • Default data


  • WYSIWYG Editor for email notifications - clear undo/redo list after selecting status email
  • Change in selecting time from connections. Now it will include both start date and end date in calculation.


  • Responsive layout for Appointments Admin page


  • New options - send admin email to employee (worker)
  • WYSIWYG editor for email notifications


  • Max length on input / textarea filed
  • Bug fix - error log


  • Bug fix - Report page wasn't visible in some cases
  • Settings > Tools - New error log list view


  • Bug fix - refreshing bootstrap calendar
  • Bug fix - selecting services on frontend


  • Customers form store values between appointments
  • Speed improvements
  • Fix issue with empty customize apge


  • New core architecture
  • Polish translation (thanks to Maciej Bauza)


  • Improved DateTime format in email notifications
  • Improved styles for Bootstrap form on small resolutions
  • Update of German translation (thanks to Matthias)


  • Standard short code - added scroll_off option from bootstrap version
  • Admin notification email - added links for confirm and cancel appointment
  • Fix - issue with PHP version 5.2
  • Fix - localization script prevent from loading Reports page


  • Fix - issue with form validation that was blocking submit
  • Fix - issue with confirm / cancel links
  • Email tag #location# is now #location_location# due to name conflict


  • Support for bootstrap short code - create dedicated calendar for single Location / Service / Worker
  • Clone button inside Appointments page - now you can clone existing appointments
  • New option for default status of newly created appointment by visitor. If you want to place it under confirmed right away


  • Added new email tags : #service_duration#, #service_price#, #worker_email#, #worker_phone#, #location_address#, #location#


  • Fix for editing appointment for non EN translations
  • Added new option for making appointment at end of form subbmition if you want to avoid making reservation at selecting date/time


  • New quick filter on appointments page - filter out appointments for this month, week, day
  • Improved links for cancel and confirm appointment
  • Sending mails to admin for cancel and confirm appointments


  • Fixed issue with non translateble email error notification for frontend form
  • Add new pot file for translations. In previous version there was missing translations for confirm and cancel link message from email.
  • Fixed issue with double email
  • Fixed issue with missing email notifications after hitting confirm or cancel link from email


  • Fixed bug with making last reservation on current day that blocks other slots for that day
  • Email notification for confirm link action
  • Separate cron capability for deleting reservation that are not completed. See FAQ for details


  • New option for user email notification: Link for confirm and cancel appointment
  • NL translation thanks to Renate


  • Fixed - all slots seems to be busy when translation has been used (not english version). If you had this problem plase edit all connections and reselect days in week/
  • Fixed - HTTPS problem on front end, now JS files use same protocol as current page.
  • Added translation for status in email notifications


  • Fixed - Autoselect for Appointments
  • Fixed - Admin notification email for time (00:00)
  • Spanish and Galician translations - thanks to Kike


  • Bug fix - unistall


  • Fix for double click on edited row
  • Autoselect for Appointments
  • New translation file thanks to Vlad and Matthias (RO and DE)
  • Fix autoloader for PHP <5.3
  • Small fixes


  • Block time now works for all day not only for current day
  • Overview report default selection if there is only one option
  • Autoloader, supports only PHP 5.3 or greater


  • Fixed bugs with big phone numbers
  • Formating date/time field in admin notifications


  • New option for max number of reservations by one visitor during one day before alert is shown.
  • Formating of date/time fields in notification emails. It is using site settings for that (Settings > General)
  • Small fixes for two column layout form


  • New report - Export data
  • Time window for making appointment. You can block user from creating appointment just before that Appointment time. For example set that visitor must be two hours before actual time of appointment.
  • Customization of subject for visitor notification email
  • Auto delete of reservation that are not completed (this is done on every hour)


  • Bug fix for start day of week. This is now depend on Calendar localization
  • New option to turn off css files from being included in front-end form
  • New option for redirect after creating appointment (2 second timeout before redirect)


  • New option for subject of email admin notification
  • New option for "Send form" email notifications
  • Unistall script. Now after uninstall database tables of plugin will be removed
  • Bug fix for extended time for appointment after editing in admin panel


  • Fix issue with activating the plugin and error output
  • UTF8 email encoding
  • Option for turning of Location/Services/Worker by setting dummy records. Set name that starts with underscore (for example :_dummy).


  • Compatibility mode for hostings that are blocking PUT and DELETE methods


  • Fix bug with sending email notification
  • Fix bug with filtering appointments in Admin panel
  • New options for worker, before free slots are calculated only for current service type. Now you can calculate free slots for all services for that worker


  • Custom form fields
  • Fix bug with new year and date selection in calendar
  • Fix issue with wrong time after creating appointment in admin panel


  • Fix bug with status change and email notification in admin panel


  • Calendar in bootstrap form now shows the free days and days with out free slots
  • Improved scroll to after cancel option
  • Fix bug with clone button in settings/connection


  • New options for cancel button and scroll
  • I agree option for form


  • Fix install


  • Fix bug with fresh install and customize page of settings


  • Fix for bug on editing location/service/worker that delete connection.
  • New option is customize tab : custom css field
  • Minor css improvement


  • Option for sending user email after completing the form on frontend


  • Fix bug with Media item in menu
  • Ajax spinner
  • Added rows class attributes for overview on bootstrap form


  • Bootstrap widget improvement: scroll_off option, two column layout, custom width value.


  • Fix bootstrap issue that change style on whole page
  • New tags for email notification
  • Improved style of new appointment notification


  • Localization of datepicker for 77 different languages
  • Fix issue with phone that starts with 0


  • Fix translations issue, not including mo files
  • Fix bug with db update in 1.2.2 version


  • Fix timezone issue for current day
  • Fix translations issue
  • Price field in booking overview
  • Database changes (force reference integrity)


  • Included label translation functions
  • Fix : init scroll


  • New shortcode for bootstrap version of frontend form [ea_bootstrap]


  • Fix : select all days in a week
  • Improved styles


  • Improved styles and overview form
  • Translations : done message
  • Notification to custom email on pending appointment
  • Fix scroll for date/time change


  • First release

How to set custom cron task for clearing reserved slots

Create cron task on your host that have this link : wget -q -O - <STIE_URL>/?_ea-action=clear_reservations > /dev/null 2>&1 . This will delete all reservations older than 6min.

How to translate labels

Form labels can change in settings page but if you want to translate rest of it you need to create translation file. Here is video tutorial for that : Screencast

How to hide service / location / worker in front end part of form?

To do this you must create one location / worker or service and set Name that starts with underscore. For example : _dummy, _location...

In admin panel all pages from plugin are blank?

You have probably turned on option in PHP called asp_tags, you need to turn it off in order to plugin work properly.

I can't edit or delete any settings?

Your hosting is probably blocking HTTP PUT and DELETE method. You must mark option called 'Compatibility mode' in settings.

How to set multiple slots for one combination of location, service, worker?

To add more slots per (location, service, worker) combination just clone the existing one. For two slots you need to have that connection twice.

How to insert Easy Appointments widget on Page/Post?

Place following shortcode into your Page/Post content:




For bootstrap there are options : width : default value 400px scroll_off : default value off layout_cols : default value 1

Example :

[ea_bootstrap width="800px" scroll_off="true" layout_cols="2"]

How to set form in two columns?

You can set bootstrap form in two columns with layout_cols option. Example :

[ea_bootstrap width="800px" scroll_off="true" layout_cols="2"]

How to create calendar only for one worker / service / location

If you want to have separate calendars base on worker for example. You can do that by setting default worker inside short code.

[ea_bootstrap worker="1"]

Value is worker #id number. Examples :

[ea_bootstrap worker="1"]
[ea_bootstrap worker="1" location="1"]
[ea_bootstrap worker="1" location="1" service="1"]

Note: you can have only one calendar on one page.

Feature requests

This is list of all features that will be added at some point of time :

  • Multi select slots (select more than one slot at time)
  • Whole day selection (for example if you are renting something on daily basis)
  • County field in Location along with improved dropdown selection
Version 1.9.23

Requires WordPress version: 3.7 or higher

Compatible up to: 4.7.2

Last Updated 11 Feb 2017

Date Added: 29 May 2015

Plugin Homepage


4.8 stars
31 ratings


Not Enough Data

Works: 0
Broken: 0