In recent years, doctor booking websites are gaining popularity since they provide a lot of advantages. For example, they allow people to find and book in-person or remote appointments for medical care, provide a more organized environment, better planning of services, etc. Moreover, such websites can also be used as a searchable directory of the doctor profiles, where patients can compare all the specialist profile details and check the verified reviews.

In this tutorial, we’ll show you how to create a doctor appointment booking website with WordPress. We’ll explain how to launch your website, set it up, adjust the booking functionality and finally, show you how it’s going to work for end-users.

In this guide, we will use:

Both HivePress and ExpertHive are lightweight, easy to use and fully integrated to ensure the smooth operation of your website.

So, let’s dive in!

Installing a Service Marketplace Theme

Let’s start with the theme installation. In order to install the ExpertHive theme, navigate to the Appearance > Themes > Add New > Upload Theme section and upload the theme ZIP file. Then click on the Install Now button and proceed by activating ExpertHive.  

Upon the theme installation, you’ll get a recommendation to install the suggested plugins, including HivePress, the plugin that will enable the marketplace functionality on your website. You can easily install and activate all the plugins by following the suggested link. 

However, if you have any issues installing the ExpertHive theme, you can follow the screencast below, which shows the whole process step-by-step.

Now in order to add the booking functionality to your doctor appointment platform, it’s necessary to install the Bookings extension. You can easily do it by going to the Plugins > Add New > Upload Plugin section. Then you need to select the add-on ZIP file to upload and proceed by installing and activating it.

Okay, now you have all the necessary prerequisites to launch a doctor directory, so let’s move to the next step and add some listing categories based on the medical specialties.

Adding Listing Categories to the Doctor Directory

To make it easier for patients to navigate your website, it’s better to create different service categories based on the medical specialties. For example, let’s add “Psychiatry,” “Dermatology,” and “Cardiology” categories. To do that, go to the Listings > Categories section.

Firstly, you need to add the category title and fill in the description if necessary. Then you can select a category icon that will be displayed on the front-end. Finally, there’s an option to create a hierarchy of categories by turning your category into a subcategory (in this case, simply set a parent category for it).

Adding listing categories to the doctor appointment booking website.

When finished, click on the  Add Category button. Similarly, you can add as many categories as necessary for your doctor appointment booking website.

Adding Custom Listing Fields

Once you split your doctor directory into categories, it’s time to add some fields specific to the services listed on the doctor appointment websites. You can add custom listing fields and search filters in the Listings > Attributes section. For example, let’s add the “Price” attribute to allow doctors to set the basic service price, while patients will be able to search and filter services by the price range.

You can adjust your custom field in three different contexts, so let’s cover each of them:

  • Editing. In this section, you decide whether you allow users to edit this field via the front-end forms and define the field type for your attribute. In the case at hand, we’ll mark the “Price” field as editable and select the “Number” field type for it.
  • Search. Here, you can allow users to use this attribute as a search filter. To do that, mark it as filterable and sortable. Then you need to select the search field type, and we recommend setting the “Number Range” field type to allow filtering services by the price range instead of some specific price.
  • Display. Finally, you can choose how your custom field will appear on listing pages by assigning it to certain template areas and setting its display format. For example, for this custom “Price” field, we’ll use the following display format $%value%.

Once you are done, click on the Publish button.

Adding custom listing fields to the doctor appointment website.

Keep in mind that there are no limitations, and you can add as many custom fields and search filters as required for your doctor appointment website.

Adding Doctor Profile Fields

Alright, we’ve just added some custom listing fields, but let’s also add some custom doctor profile fields and search filters, so users will be able to search for doctors directly instead of the services they provide. You can do it in the Vendors > Attributes section. For example, let’s add the “Work Experience” field to allow doctors to indicate their experience when they register on your website, and patients will be able to filter specialists by their work experience.

First of all, enter the attribute name, allow its front-end editing and choose the field type. We’ll use the “Select” type for this custom field. Then it’s necessary to mark it as filterable, sortable and select the search field type (here, we use the “Select” field type as well). Finally, define the display format for this attribute and click on the Publish button.

Adding custom doctor profile fields to the doctor appointment website.

Now, if you want to make this field mandatory, you have to mark it as required and save changes.

Setting up a doctor profile custom field.

Then, you need to add some options by clicking on the Edit Options button. For example, let’s add “5+ Years,” “10+ Years,” and “15+ Years” options. Simply enter the title and click on the Add Option button.

Adding options to the custom search filter.

Okay, once you are done with custom fields, let’s set up a front page for your doctor appointment booking website.

Setting Up the Front Page

It’s crazy easy to add and customize new layouts since HivePress is integrated with the WordPress block editor. To add a new page, go to the Pages > Add New section.

Firstly, set the page title (e.g., “Home”). Now, let’s add some layout blocks. For example, let’s start with a “More” block to separate the header section from the main page content. To add a new block, click on the ➕ icon and select the block you need. Similarly, you can add the listing search form, a block that displays listing categories and another one that shows doctor profiles.

Creating a front page of the doctor appointment website using WordPress.

Also, you can upload a few featured images that will be displayed in the page header section by clicking on the “Set featured image” icon and uploading your images. You can check this screencast to set up your header images in the way they are displayed on the ExpertHive demo site.

When you finish customizing the page content, click on the Publish button. To use this page as a front page, navigate to the WP Dashboard > Settings > Reading section, select it from the drop-down list, and save changes.

Listing a Service

Alright, you’ve just created a fully functional doctor appointment booking platform, but now it’s time to test it to get a better understanding of its features. For example, let’s list a new medical service from the front-end to check how it works for doctors. To do that, go to your website, click on the List a Service button and choose one of the categories.

Then, you’ll be taken to the listing submission page, where you can upload preview images, set the service title and fill in other required fields. Also, there will be a custom “Price” field that we’ve added previously.

The listing submission form on the doctor booking website.

Once you are done with listing details, you can scroll down and adjust the booking settings. For example, you can set how many days are required before the appointment date, then specify the booking window that defines how many days an appointment can be made in advance. Also, you can set the earliest and the latest time available for an appointment, define the booking slot duration and frequency (in minutes) and so on.

Please note that you can enable the “booking requests” option to accept each booking request manually.

Booking settings on the doctor appointment website.

When you complete the listing form, click on the Submit Listing button to get this service listing published and available in the search results (if moderation is enabled in the HivePress > Settings > Listings section, the admin will have to approve it before the listing appears on the front-end).

Booking an Appointment

Finally, let’s check how this doctor appointment booking website works for patients. Let’s log out, register a new account and try to book an appointment, just to test your website from both sides.

Once you register a new account, you need to locate the listing that you’ve added in the previous step and try to book it. 

An example of the listing category on the doctor appointment website.

You’ll notice that the appointment dates and time slots follow the booking restrictions you previously set (in the listing settings form). So, when you pick a date and time, click on the Request to Book button.

Booking an appointment on the doctor appointment website.

After that, you’ll be redirected to the confirmation page, where you can verify all the details and add some booking notes if necessary.

Verifying booking details.

Bear in mind that as a website owner, you can require extra details from patients by adding custom fields to the booking form. Once you verify all the details, click on the Send Request button.

That’s it! Now a doctor will get a pending booking request and will be able to accept or decline it (as shown on the screenshot below).

Accepting a booking request.

If the booking request is accepted, the patient will be notified via email. Also, if there are some changes or issues, doctors and patients can easily communicate with each other via private messages. Additionally, patients can leave reviews about the provided services or bookmark them.


By following these steps, you can build a doctor appointment booking website with WordPress in next to no time. When you get it off the ground, you can start promoting your website to attract doctors to it. Once there are enough doctor profiles on your platform and you get decent traffic, you can start monetizing your website.

Keep in mind that you can easily launch your doctor appointment website with the ExpertHive theme and the HivePress plugin, along with its Bookings extension. Both ExpertHive and HivePress are lightweight, easy-to-use and packed with all the essential features for building a doctor appointment platform right out of the box, such as doctor profiles, private messages, location-based search, and so on.

Related Articles

Get notified about new HivePress themes & extensions

Subscribe Now