How to create an appointment booker using WordPress

If you offer consultations or provide either digital or on-site services – you need to have a way for your customers to book appointments with you or your employees.

You can have a booking platform through a simple contact form on your website, but that can get logistically messy.

It’s much better to configure an automated system to save yourself time and keep things synced up with your calendar.

WordPress has tons of excellent plugins that can help you automate the booking process, having your clients check schedules and book appointments on their own.

We’re going to work with the Easy Appointments plugin for this guide because it’s both free and versatile in the appointment types you can set up on it.

Easy Appointments allows you to handle appointments in multiple locations for different service providers, and you can see the overview of the schedule right from your WordPress Dashboard.

What’s also important is that the plugin is regularly updated and has an excellent rating in the WordPress plugin directory.

Tip: on Skystra’s Managed WordPress dashboard, you can enable automatic plugin updates so that when Easy Appointments is updated, it automatically pushes the new version to your site.

Let’s start!

Head to the Plugins > Add New, and input Easy Appointments in the top-right search field. Click on the Install Now button under the first plugin in the list:

Make sure to choose the correct plugin as there are a few plugins with a similar name.

Once the plugin is installed, click the Activate button to enable it on your website.

Next, go to the Easy Appointments > Settings option on the left hand side and click the Add New Location button. Add your location and fill the Name, Address, and Location fields.

If you, for example, offer digital consultation or services – you don’t have to fill the address or location fields. The plugin allows you to add multiple locations if you have several different physical locations.

Now, click on the Services tab, which allows you to input all the services you offer at your locations. There are several fields you can fill, such as Name, Duration, Slot time, Block time, and Price. Again, you don’t have to fill in all the fields. For example, if you offer a free consultation service – leave the Price field blank.

Next, click on the Workers tab, and add all your employees on schedule and available for bookings using the Add New Worker button:

The Connections tab is where you connect all services, employees, and locations. If you’re the only employee, it’s straightforward to set up, but if you have multiple people working the same schedule, take your time and configure things properly.

For example, you can set that an employee (call her Sarah) is working in Salon #1 Monday through Friday, etc.

To add a new connection, click the Add New Connection button and select the desired options.

Here’s an example of a connection:

The plugin can also add connections in bulk using the Bulk Add New Connections button.

Next, head to the Customize tab where you can configure:

  • General settings, such as the maximum number of appointments, auto reservations, etc.
  • Email notifications to your customers.
  • Custom labels.
  • Date/time.
  • Custom form fields.
  • Spam protection (captcha).
  • Custom CSS styles for your forms.
  • Enable and customize GDPR if your business resides in Europe.
  • Money format.

Click on the Mail Notifications tab, and set a custom notification for each of the statuses (Pending, Reservation, Canceled, Confirmed, Admin), so visitors get the correct message once they book a slot.

You can use tons of tags to insert dynamic content into emails.

For example:

#worker_name# – automatically replaces with the actual name of the employee

#date# – inserts the date

#start# – inserts the date/time appointments start

Available tags that you can use are:

#id#, #date#, #start#, #end#, #status#, #created#, #price#, #ip#, #link_confirm#, #link_cancel#, #url_confirm#, #url_cancel#, #service_name#, #service_duration#, #service_price#, #worker_name#, #worker_email#, #worker_phone#, #location_name#, #location_address#, #location_location#, #email#, #name#, #phone#, #description#

Make sure to configure all the available fields such as email subjects and from email to ensure proper delivery.

Next, click on the Custom Form Fields tab, and customize the form fields the way you want it setup:

Now that we’ve fully configured our forms, we need to display it on our website. Create a Booking Form page via Pages > Add New option, and input the title of the page. You can use all sorts of shortcodes to customize the look of your form, as explained in this article. In this guide, we’ll provide you two examples:

[ea_bootstrap] – this is the default one-column form

[ea_bootstrap width="800px" scroll_off="true" layout_cols="2"] – the recommended two-column form

Paste the desired shortcode into the body of the page, and click the Publish button:

Here’s how the booking page looks like when it’s published:

As you can see, since we haven’t put any of our employees to work on weekends – they are greyed out automatically.

When a visitor books an appointment, it will be automatically created with the pending status in the Easy Appointments > Appointments section.

You will also receive an email notification email, and the appointment will be added to the employees time table.

To approve the booking, click the Edit button under the Action column, and change the status to Confirmed:

You can now see that time slot reserved in Easy Appointments > Reports > Time Table for that specific employee:

That’s it!