Building a Painkiller for the Appointment Bookings Space in WordPress

Written by Mark Zahra
Written by Mark Zahra
We are in the process of building our EDD Bookings plugin from scratch. Want to know how we're doing it? We're sharing our process as we go and looking for your feedback to help us improve on it.

Partner Sponsors


Full disclosure: If you purchase through a link on our site, we may earn a commission. Learn more.

The bookings space within WordPress is filled with quite a few plugins that offer different levels of functionality. That being said, our extensive research showed that none of them really offered the experience that one would expect. But why are third-party booking services so much better than WordPress plugins? Why is WordPress lacking in this space?

That same research and our experience developing a bookings plugin for the Easy Digital Downloads platform showed us why this is the case. It’s not easy to develop a comprehensive appointments booking plugin. There is so much that could go into it that you won’t know where to start. I believe it’s the main reason that many existing plugins limit what users are able to do.

This is why we decided to do something different with our EDD Bookings plugin. We’re in the process of a complete re-write from scratch. Version 2.2 is still available today and is maintained, but we realized that the approach taken in its initial creation wouldn’t last very long. We were heading down a dead end that would kill the product.

We were faced with two choices; we could either limit the user in what they can do or not be able to offer certain functionality. We took the third option in re-starting the plugin from step one.

Now that we decided to build something new, we want to do it right. Here’s an overview of our process so far and where we plan to go next.

The Painkiller Aspect

The way we approached the initial stages of this project was to get people like you and me to explain what pain they felt when using any of the existing appointment booking solutions. We want our solution to be a painkiller, not a vitamin.

What’s the difference? There are a number of articles out there that go into the difference between the two, so I won’t go into too much detail. What you need to know is that a painkiller is a solution that fixes the pains users feel when using any tool, while a vitamin is a solution that would just be nice to have, but it doesn’t solve any major headaches that other solutions present.

We chose a market where we knew that better solutions are needed. We listened to existing and potential users of booking systems to understand their needs, wants and pain points. We took the time to discuss and find the right solutions to existing problems and limitations in other booking solutions. We are building a plugin on an existing e-commerce platform that already provides many solutions for the requirements that fall outside of the direct scope of the booking system. We have a dedicated team working day in and day out on the bookings plugin and are supported by a dedicated team on the e-commerce platform.

Lastly, we already built a bookings plugin, launched it, sold it (and refunded in some cases), and listened to the feedback we got from the users. The complaints, compliments, and suggestions we received are what drove the production of the brand-new plugin and what inspired the team to commit fully to building something that would make a difference.

The Research

Our research began well over a year ago, and it took many forms.

Demo Site Feedback

Upon the initial release of EDD Bookings in late 2015 we were offering a demo site for users to try the plugin before purchasing. This demo proved to be a vital way of collecting user feedback. We didn’t even look at that data for a while, but it proved pivotal a few months later.

Our demo site has gotten a few thousand submissions in less than two years. Granted, half of that feedback proved fruitless as many users would enter dummy data just to get to the demo itself. That’s expected.

The other half, however, was very useful. Not only did we gather feedback on how users were looking to use our plugin, but we also got to know whether they are existing EDD users or not, among other things.

Pie charts from our research via the EDD Bookings demo site

From the above stats, we saw that the majority of demo site users were not EDD users. This was encouraging as it meant that our existing plugin was already attracting attention outside the EDD space, even with its existing limitations. These percentages are based on over 1400 submissions over a one-year period in 2016.

Direct User Feedback

Some of the best feedback you can get is from existing users of any bookings plugin or software. They can pinpoint the areas where they get stuck and share their experiences with you. That’s why we started gathering direct feedback from users of various plugins, including our own.

We offered visitors to our website a chance to get in touch with our team directly. This resulted in many existing and potential customers sending us messages about their specific use cases and troubles. We took this feedback back to the team, discussed it, and came up with conclusions and recommendations for each one.

This gave us some insight into where we were going wrong with our plugin’s first iteration, and where other plugins/software were either performing well or lacking.

Have a question for us? Just click here and submit your query!

We reply to all the messages we receive and take an interest in all use cases, so we’d love to discuss your needs and troubles. We even stay in touch with the most valuable contacts to make sure we’re moving in the right direction.

Online Polls

From my discussions with other plugin owners/developers, it seemed that many don’t seem to believe that polls can prove to be valuable, mainly due to the lack of user participation. It’s true that our poll got far fewer submissions than the demo site, but it also gave us a different, more specific answer to one of our questions.

That question was “what functionality are users most interested in?” We put together a list of seven features based on the feedback already collected from demo sites and direct emails.

As you can see, the poll is quite specific. Given that this post is about building a painkiller, not just a vitamin, this was not the ideal approach to take. This poll was begun before we decided on a complete rewrite, so at that time, it made more sense to understand which feature was needed the most.

At the end of the day, this was still useful to us as it showed us where the biggest pain points were for our existing and potential users, and what areas were most important to them.

Post Comments

We have two very popular posts on booking plugins here on WP Mayor, and we also found a few other great ones both in and out of the WordPress space. The comments left on these posts were in the hundreds, and we went through them all. We’re not playing around, we actually did that.

Most comments were concerned with users’ needs and wants, so we took that into consideration when discussing what our plugin will do and how it will be built. Here are the posts from WP Mayor:

Competitor Research

This was a major part of our research that lasted a few months, and it doesn’t stop. We are constantly looking at direct and indirect competitors, both in the WordPress space and outside it. This research dove deeper into existing solutions to find their benefits as well as their flaws and shortcomings.

We documented the pros, cons, user feedback, and much more for each one, further focusing on the most popular ones as the research went on. We still come across new solutions today, and we adjust where necessary if we see that something we planned isn’t right.

So far we have looked into over 30 existing solutions in some detail, and we were able to take something out of each one. Whether it was a UI element that we found useful, or a UX flow that made things user-friendly, or even a feature we hadn’t thought of, it was all taken on board.

Expert Feedback

Although this part of our research came at a later stage, we took this step to heart. We didn’t just want to dive into a rewrite of our existing plugin without consulting experts in various fields beforehand. The experts we spoke to came from various backgrounds and worked on different plugins.

We spoke with WooCommerce bookings experts including Shadi Manna to discuss the benefits and drawbacks present in WooCommerce bookings extensions; we spoke with some top WordPress developers such as Kevin Stover from WP Ninjas to discuss their approach to plugin rewrites and JavaScript implementation; and we spoke to a few more individuals on various other topics along the way.

This feedback helped us in various ways. Not only did we start to understand the bookings space a bit better, but it also gave our developers the opportunity to speak with others in this field, further understanding where they might encounter problems and what they could do to avoid them.

Why Focus on Appointment Bookings?

There is a simple answer to this question.

It’s what our research showed as the most popular and in-demand space for WordPress appointment booking plugins. Below you can see the results of our demo site feedback from 2016 alone. As you can see, appointments, classes, lessons and the like are clearly the most in-demand areas.

We know that the existing plugins for accommodation and event tickets are already providing good solutions and have an established name in the WordPress space. Trying to compete with these bigger players while knowing that it’s not our biggest potential market would not be the smartest route to take for us.

We Still Require the EDD Plugin – Is That a Problem?

As this is an Easy Digital Downloads extension, you would first need to install the free EDD plugin. Although some may see this as a limitation for our plugin, which in some aspects it may be, we also see benefits to it.

The EDD platform is an established and successful e-commerce platform for WordPress backed by Pippin Williamson and a great team of developers and support staff. We receive a lot of support from Pippin and the team. They’re open to discussing new ideas and approaches, even when they don’t agree with them, and they’re also committed to making sure any EDD extension is the best it can be, within the limitations of EDD.

Apart from that, there are already a large number of established extensions for EDD. What does that mean for you, the user? Simply put, if you’re looking for some other functionality that EDD Bookings itself does not offer, you’re highly likely to find an existing extension for it.

So if you’re looking to implement payment gateways, email service integrations, front-end submissions for marketplaces and much more, there is an existing solution waiting for you.

What’s Next?

Our research stage is mostly complete, and we have since moved on to new areas. Right after the market research, we started to look into and discuss what problems the plugin will be solving and how was best to solve them. This stage led to one vital conclusion:

We are building a plugin that provides a complete user-friendly experience, both for the admin and the customer, that would help increase sales, reduce costs and save valuable time.

Following the setting up of the plugin’s requirements, we moved on to two very important stages; one handled by the developers, and the other by myself and other experts in their own fields.

The developers are currently focused on the prototyping of the planned approaches to ensure that it all works as planned, while I’m in the process of working with expert UI/UX designers to put together the mockups for both the back-end and front-end.

This will be followed by the completion of the plugin’s development as well as the start of user testing for both the mock-ups and eventually, the initial iterations of a functional plugin.

As we move forward in this project we will keep you updated on the progress being made, and we’ll be looking forward to your feedback as we start to share our work with the community.

We Want to Hear From You

If you read through the whole post you’ll understand that we are basing this plugin on your feedback. Just using our intuition to develop a new bookings plugin would be a big mistake. We are always ready to adapt, so your thoughts won’t go unnoticed.

We want to hear from you at every stage of the process, so don’t be shy. You’re all welcome to leave comments below, or contact us directly, or even try out the demo site for the current version of EDD Bookings.

We look forward to hearing your thoughts on our approach!

An Update On This Project

In short, it didn’t work out.

There’s a lot more that goes into a robust booking solution than one might realize, and after investing a lot of time into EDD Bookings, we decided that the original approach just wasn’t going to be sustainable in the long-run. That being said, we learnt many valuable lessons through this project that have helped us in the years that followed.

This article was filed in our archives.
Written by Mark Zahra
Mark is the CEO behind the WP Mayor project. He has been using WordPress since 2012, joining the WP Mayor team in 2014. Since then, he has helped to review, test, and write about hundreds of WordPress products and services; educating the community of millions of WordPress users around the globe.

In this article

Discover More

7 Responses

  1. Hey! Good to hear someone is taking the challenge of a really good appointment booking plugin. We are working for two years now with “Bookly Appointment Booking” plugin, which is actually quite good already and maybe something you could basically build on from the way it works. But it still lacks some essential functionality and features. But compared to all the others I think it is at the moment the best on the market. And we tried almost every single one of them, I guess. Invested so much time in installing, testing and removing everything again. Finally we kept “Bookly”. What we like is the easy way it does bookings for clients on front-end. Step by step, simple and well designed (what is essential in our opinion). Not looking like a backend UI. Related to functionality it is simple but effective and convenient for both clients and admins. You have a graphical UI for both, easy to manage everything (employees, clients, appointments, notifications etc.). However, to make it short, we still criticize some aspects. I.e. there is no possibility to make appointments with multiple services. A big lack of efficiency. And as far as we noticed probably one of the most complicated things to do in such a plugin. Then there is the connection with WordPress users to use other WP functionalities. And then there is the payment issues. Payments are not refunded automatically, if an appointment is cancelled. And then there is the notifications stuff. We need a very flexible notifications system which should easily integrate with service providers like SMS services, or zapier or ifttt to maximally customize our notification system. This is actually all things where Bookly lacks. But these are the difference between really good and great or even perfect. However, we have a lot of experience with appointment bookings from both sides (managing the booking system on our servers ourself and using the system for our own clients – so not an agency working for a client, we do all technical stuff ourself).

    Anyway, if you’re really going to create a great booking plugin, we are your customers. And if you like to get more detailed feedback or any other input from our experience and knowledge, pls. just ask whatever you like. We’d really like to provide you with whatever we can contribute.



    1. Hi Andy, thanks for your feedback!

      We have looked into Bookly and many other plugins and services. Our plans for the front-end are similar, and we’ll be sharing them with you further down the line.

      You mentioned the “possibility to make appointments with multiple services” – are you referring to making an appointment for one service then adding another appointment for another service in the same cart? Or do you want customers to be able to add multiple appointments for the same service to the cart?

      What are you referring to exactly when you mention “the connection with WordPress users to use other WP functionalities”?

      We will be catering for booking handling, including cancellations, in the future versions, so we’ll look into automatic refunds. Do note that not all payment gateways allow for this, and EDD already offers this option for PayPal purchases. EDD also has a number of other extensions for various integrations.

      We look forward to learning more from you. You can even contact me directly via the contact form on our website ( for more information.

      1. Hey, Mark

        Good to hear from you and that my feedback was some kind of help or at least some useful input. I really love the online booking issue because it is so important for us and our customers. More than 60% of our bookings are done online.

        Looking at your questions, the first one was about booking different services adding up to one appointment (let’s say I have a facial treatment, then I want to do nails, and afterwards I need a pedicure. So I make an appointment at 10:00 some day and include all these services one after the other to get all things done at that time. I even would want to pay that online so I don’t need to take any money with me. In case I cancel that appointment, I’d like to get the money refunded. Maybe even partially. In my confirmation and the reminder I can see all the services I have booked as one appointment. A perfect one would be if I could cancel some parts of that appointment again.). But to answer your question completely, booking a second appointment on another day with different services in one single process would be sensational 😉 But first one is essential.

        Your second question was about WP users. Well, every new client booking an online appointment should be registered as a WP user, so we can mange him/her like a regular WP user concerning all the data (phone number, email, username etc.) and connect him/her with other WP functionality (like shop, commenting, posting or any functionality connected with other plugins).

        One big lack of Bookly (and other plugins) is the possibility to combine different services into one appointment from frontend but also from backend (hard to manage appointments without that for planning, notification, payment and so on). I know that the problem is to precalculate the necessary time especially concerning the available time slots which are shown to the client at the beginning of the booking process to select an available time slot. But maybe that could be a step for later in the process when the final services are selected?

        Maybe a perfect or standard appointment booking process would look like this:

        Visit website for appointment booking Choose appointment date and time (maybe later after selecting all services) from available slots Add wanted services (with live update of duration and cost) with selected location and provider (if available) Fill in personal data (for getting notifications and automatic registration) Decide how to pay (on premise or directly online) and how to be notified (email, SMS if data given) Finalize booking (overview and confirmation, if chosen online payment)

        If you want to cancel (fully or partially) or postpone your appointments you need to login and can do that on your account page (with booklet you can only cancel a full appointment and then make a completely new one – not very convenient)

        Backend booking looks like this:

        Client calls or stops by Employee checks backend calendar for available time slots (or maybe later after choosing the services) Employee selects wanted services (with live update of duration and cost) with wanted location and provider (if available) New user is registered or existing user selected Appointment is reviewed and confirmed (perfect would be an easy option for a deposit, which is lost if someone doesn’t show up cancel too late) Customer gets a confirmation (email and/or SMS like chosen)

        Finally I need to mention the usability on smart phones. A mega factor for the success of such a tool.

        It would be great if a SMS service provider could be chosen. Bookly has it’s integrated one which charges an enormous amount for every SMS. One more reason to switch 😉

        However, sorry for texting you to death 😀 We think that actually the process itself is rather simple, but the implementation is quite a challenge for sure. So we keep our fingers crossed for you (and ourselves) that in the end there is finally a really great plugin for that much needed purpose.

        1. Andreas this is very valuable feedback for us, thank you.

          We will have the ability to accept payments online as this is already a feature included in Easy Digital Downloads, the e-commerce plugin we’re building EDD Bookings for. It also has a lot of extensions that you can see on the links below for payment gateways, sms notifications, etc. Cancellation of appointments will also be included in the future versions of EDD Bookings, and we will also look into linking that with the payment gateways to directly refund the payments. We know that EDD already does this with PayPal, but unfortunately it’s not possible for all payment gateways.

          Official extensions:
          3rd Party extensions:

          We are taking the idea of booking multiple services in one go into consideration right now as we happen to be working on the customer-facing design of the plugin.

          With EDD Bookings, when a customer makes a purchase, they have a WordPress user generated for them. This is already a part of the plugin today (version 2.2) and we have no plans to remove that functionality.

          As for your proposed process for the customer-facing side of the plugin, we are almost on the same page. Our plans are very similar to your proposals, so we will see how we can improve them based on your feedback.

          As for the back-end, we will have an option to easily manually add a booking from scratch, both for an existing customer or a new one. All corresponding options, including services, notifications, etc will be included there.

          We are working hard on making all our screens, both front-end and back-end, completely responsive, and we’re working with UI/UX experts to make sure this is done right.

          On a final note, I just want to clarify that our next version, 3.0, will not include ALL functionality right away. Certain features such as staff, locations, resources, and a few others will be introduced in the coming months as development continues and feedback comes in.

          1. Hey Mark!

            Thanks for your answer. I’m happy if I can help creating some useful appointment booking plugin. Whenever you need some more input or need some testing or whatever, let me know.

  2. Love that you’re launching into something new for your team. The challenge is, when you say “you’re building a plugin thats intuitive and user friendly experience”… it really comes down to reality of the end users experience. I’m sure you can do it, but then what will the customer think. Are you building this for WordPress only or are you going to branch out to ecommerce platforms like shopify so people like myself can use it on our sites? Thanks for the post and best of luck with developing things.

    1. Thanks for the feedback Gary. Yes, it very much depends on the end user’s perspective. We’ll be running user tests as we go, and we have experts we’re consulting along the way too. We are always open to changes based on user feedback too, so the first design won’t be the last, that’s for sure.

      For the time being we are focused on WordPress and the EDD platform, but we won’t rule anything out for the future.

      How would you use a bookings solution for your use-case in particular? I can’t see any bookings on the site right now, unless I missed something.

Share Your Thoughts

Your email address will not be published. Required fields are marked *

New discoveries, every week.
Join thousands of designers, developers, and builders that come to WP Mayor to find the best guides, tools, and services for their next website. One email, once a week.
WP Mayor Newsletter

Claim Your Free Website Tip 👇

Leave your name, email and website URL below to receive one actionable improvement tip tailored just for your website within the next 24 hours.

"They identified areas for improvement that we had not previously considered." - Elliot

By providing your information, you'll also be subscribing to our weekly newsletter packed with exclusive content and insights. You can unsubscribe at any time with just one click.

What's missing?