How to Create a Booking Form in WordPress (+ Template)

Looking for a WordPress appointment plugin so you can let your clients schedule appointments online with a booking form? In this day and age, online appointment booking is vital for your business.

In this tutorial, we’ll show you how to create a hassle-free appointment booking form in WordPress using a plugin.

Here’s a table of contents to help you navigate the tutorial:

  1. Create an Appointment Booking Form
  2. Customize Your Appointment Booking Form
  3. Configure Your Appointment Booking Form’s Settings
  4. Customize Your Appointment Booking Form’s Notifications
  5. Configure Your Appointment Booking Form’s Confirmations
  6. Add Your Appointment Booking Form to Your Website
  7. Integrate WordPress Appointment Plugin with Google Calendar

Click Here to Make Your Appointment Booking Form Now

WordPress Booking Form Video Tutorial

Here’s a video that shows you the whole process of adding a booking form to WordPress using WPForms.

WPForms is the best WordPress Form Builder plugin. Get it for free!

If you’d prefer to read the instructions, you can follow along below.

How to Use WPForms as a WordPress Booking Form

As the world’s best form builder, WPForms comes with many features and functionalities that can help you manage and organize your business online — including the ability to create appointment booking forms and a reservation form.

Want people to be able to login to your site? Check out our guide on creating a WordPress user registration form template.

Here’s step-by-step instructions to set up your appointment booking form with a template.

Step 1: Create an Appointment Booking Form

The first thing you’ll need to do to start taking booking requests online is install and activate the WPForms plugin. For more details, see this step by step guide on how to install a plugin in WordPress.

Next, you’ll need to create a form inside your WordPress appointment plugin. For help with this step, see our tutorial on how to create a simple contact form as an example to get started.

Simple Contact Form

The simple contact form can act as a booking form template and includes the following default form fields to gather personal details:

  • Name
  • Email
  • Comment or Message

If you need more contact information or other personal information, you can add additional custom fields to your form by dragging them from the left hand panel to the right hand panel. It’s completely customizable.

Then, click on the field to make any changes. You can also click on a form field and drag it to rearrange the order on your contact form.

The same template will work for other types of bookings too, even veterinarian patient intake forms. You can set the whole thing up exactly the way you need it.

Step 2: Customize Your Appointment Booking Form

For our example, we’ll create a form that lets site visitors choose a salon service and pick the day and time they want to come in.

To start, we’ll drag the Multiple Choice form field from the left hand panel to the right and click on it to make changes.

Client Booking Form Multiple Choice

We’ll give clients 3 services to pick from when they want to book an appointment at the salon.

If you want to allow people to choose more than one option, use the Checkboxes form field instead.

simple booking form template checkboxes

Now, too add a booking form to your website that has specific times,  you’ll need to add the Date/Time form field so customers can choose which day and time they’d like to visit the salon.

Locate the Date/Time field from the left hand panel and drag it over to the right hand panel.

completely customizable accept appointments date and time

In the settings for the Date/ Time field, you can specify the dates and times that are open for appointments.

datepicker format example in contact form

Read our full guide on how to make a WordPress form with a datepicker.

When all your form fields are customized to your liking, click Save.

Step 3: Configure Your Appointment Booking Form’s Settings

There are several settings to configure when creating a client booking form in WordPress. We’ll start with the general settings first.

To start, go to Settings » General.

reservation form wordpress site

Here you can configure the following settings like:

  • Form Name — Change the name of your form here if you’d like.
  • Form Description — Give your form a description.
  • Submit Button Text — Customize the copy on the submit button to customize your booking form design.
  • Spam Prevention — Stop contact form spam with the anti-spam feature, hCaptcha, or Google reCAPTCHA. The anti-spam checkbox is automatically enabled on all new forms.
  • AJAX Forms — Enable AJAX settings with no page reload.
  • GDPR Enhancements — You can disable the storing of entry information and user details, such as IP addresses and user agents, in an effort to comply with GDPR requirements. Check out our step-by-step instructions on how to add a GDPR agreement field to your simple contact form.

Click Save.

Step 4: Customize Your Appointment Booking Form’s Notifications

Notifications are a great way to send an email whenever a client books an appointment using your WordPress form. This makes the client booking experience easier since you can reach out right away.

booking enquiry form template notifications

In fact, unless you disable this feature, whenever someone goes through the booking process and books an appointment on your site, you’ll get a notification about it through your WordPress booking plugin.

If you use smart tags, you can also send a notification to your client when they book an appointment, letting them know you received their appointment request and will be in contact shortly. This assures site visitors their forms have gone through properly.

For help with this step, check out our documentation on how to set up form notifications in WordPress.

And, if you want to send more than one email, read this article on how to create multiple form notifications in WordPress.

Lastly, if you want to keep branding across your notification emails consistent, you can check out this guide on adding a custom header to your email template.

Custom Email Header in wordpress appointment plugin

Step 5: Configure Your Appointment Booking Form’s Confirmations

Form confirmations are messages that display to site visitors once they submit an appointment booking form on your website. They let people know that their appointment request has been received and offer you the chance to let them know the next steps and send them time slots.

WPForms has 3 confirmation types to choose from:

  1. Message. This is the default confirmation type in WPForms. When a site visitor books an appointment, a simple message confirmation will appear letting them know it was received. Look here for some great success messages to help boost customer happiness.
  2. Show Page. This confirmation type will take site visitors to a specific web page on your site thanking them for booking an appointment. For help doing this, check out our tutorial on redirecting customers to a thank you page. In addition, be sure to check out our article on creating effective Thank You pages for boosting customer loyalty.
  3. Go to URL (Redirect). This option is used when you want to send site visitors to a different website.

Let’s see how to set up a simple form confirmation in WPForms so you can customize the message site visitors will see when they book an appointment on your website.

To start, click on the Confirmation tab in the Form Editor under Settings.

Next, select the type of confirmation type you’d like to create. For this example, we’ll select Message.

date and time form builder in wordpress appointment plugin

Then, customize the confirmation message to your liking and click Save when you’re done.

For help with other confirmation types, see out documentation on setting up form confirmations.

Step 6: Add Your Appointment Booking Form to Your Website

After you’ve created your client booking form, you need to add it to your WordPress website.

WPForms allows you to add your forms to many locations on your website, including your blog posts, pages, and even sidebar widgets.

Let’s take a look at the most common post/page embed option.

To start, create a new post or page in WordPress and then click on the Add WPForms icon.

completely customizable appointment plugin for wordpress

Next, select your client booking form from the dropdown in the WPForms widget.

wordpress appointment booking plugin tool

Then, click on the blue Publish button in the top right corner to publish your post or page so your client booking form will appear on your website.

appointment form plugin integrates with google calendar

Step 7: Integrate WordPress Appointment Plugin with Google Calendar

To make managing your client appointments much easier, you may want to considering syncing your WPForms entries to Google Calendar.

That way, all booking info is automatically sent to your Google Calendar. It saves you to hassle of having to manually enter each client appointment booked through your website.

wordpress appointments plugin integrates with google calendar

To do this, check out our tutorial on sending WPForms entries to Google Calendar.

Want to let users keep track of the appointment? Be sure to read about how to include an add to calendar option to your WordPress forms.

Click Here to Make Your Online Booking Form Now

In Conclusion

And there you have it! You now know how to accept appointments online and create an appointment booking form in WordPress.

Want to accept payments from your clients at the same time they submit their booking request form? Check out our post Stripe vs Paypal to decide which one works better for you. We also integrate with Authorize.Net.

So, what are you waiting for? Get started with the most powerful WordPress forms plugin today and add a booking form to your website with a WordPress appointment plugin.

And don’t forget, if you like this article, then please follow us on Facebook and Twitter.

Using WordPress and want to get WPForms for free?

Enter the URL to your WordPress website to install.


  1. I will like the user to be able to see a preview of the form submitted and print it. Also that the preview form should have a distinct form no

  2. Do you have the ability to hide certain days of the week or times? Example: business isn’t open on Saturday or Sunday. Could those days be hidden? If yes, how would I go about that? Same example for times as well. If they are only open until 6:00 pm, for example, how could I hide time slots after 6:00 pm?

      1. Hi,

        You reference these pages on your comment however both are invalid links. Can you update please?

        [URL Removed]

        Thanks, Simon

      2. Hey Simon- Thanks for the heads up here! We have updated the valid links now 🙂

        Have a good one 🙂

  3. Hi SYED

    WPForms gets a lot of positive reviews so I tried out the Lite version for evaluation. There’s hardly anything there and it’s basically a marketing tool to get you to upgrade to a paid version. My boss won’t pay for anything unless I’ve evaluated it, so I’ll have to go elswhere.

    1. Hi Jeremy,

      I’m sorry to hear you weren’t satisfied with the free version of WPForms. If you have any questions or concerns you’d like to address, please definitely let us know.


  4. Hi,

    first of all, want to thank you for the informative article about the product!

    I need a form that witch after submitting makes the product inactive on the field “select”. Can we do that with your wpforms?

    Thank you in advance,

    1. Hi Dimitrios,

      We don’t have a way to do this right now, but I’ve made a note on our feature request list so we can keep it on our radar! Thanks for the suggestion 🙂

    1. Hi Marnix,

      We don’t have a way to do this right now, but I’ve made a note on our feature request list so we can keep it on our radar! Thanks for the suggestion 🙂

  5. This is straightforward enough, but I don’t see a way to prevent something like double bookings since it just adds to the Google Cal but doesn’t block out dates/times based on availability. Is there a way to check the calendar to make sure no one has already scheduled that time slot?

    1. Hi Andrew,

      Unfortunately we don’t have a way to do this right now, but I’ve made a note on our feature request list so we can keep it on our radar! Thanks for the suggestion 🙂

      1. Hey Elizabeth- Currently, we do not have the inbuilt inventory/ slot management feature. We’ve added your vote to the feature request list.

        Appreciate your interest here! Thanks, and have a good one 🙂

      2. Exactly what I am looking for, there are many advanced booking apps, but I just need a simple form with 4 appointments slots. Slot would disappear if a client books it. Let me know if you have any updates.

      3. Hey John,

        We currently do not have an inbuilt slot management feature available. I have added your vote to the feature request list for future enhancements.

        Appreciate your interest here! Thanks, and have a good one 🙂

  6. Hi there , thanks for the nice plugin.
    We also need to block dates/times based on availability. We were able to achieve that with other plugin. but we wold love to have this in wpforms. Do you have any updates on this metter? or is in your roadmap ?
    Thanks agains for the nice job

    1. Hi Lucas!

      Currently, we don’t have the time ocupation feature in WPForms. I do agree it would be super helpful, though. I’ve made a note of the feature request and we’ll keep it on our radar as we plan out our roadmap for the future.

      Have a good one 🙂

  7. This feature looks awesome, but I don’t want the submissions sent directly to my Google Calendar.

    Is it possible to attach a link/button on the form submission that I can click to add it to Google calendar IF I approve the request from the customer?

    1. Hi Jørn, thanks for your question!

      You should be able to achieve this by adding a custom link to the Notification email sent to you under the form Notification settings.
      The link should contain all the needed parameters to be able to generate a calendar event, such as:
      And you can take the values for those parameters from the form submission through the fields’ Smart tags.
      In case it helps, we have a great tutorial on how to use Smart tags in the form notifications.

      I hope this helps!
      Have a good one 🙂

  8. Please when a customer books with the form I created, where would I receive the email?? Is it on the WPForm in my WordPress or on my Google email . Thanks

    1. Hi Lawrence!
      Yes, you can absolutely set up automatic form notification emails, for both yourself and anyone else you like (including the person who filled out the form). We have a great tutorial on that here
      The notification email will be sent to the email address chosen in the notification settings.
      I hope this helps.
      Have a good one 🙂

  9. Hello, I am using you form for taking online order and it is working well.

    I would like to add the option of selecting a collection day but want to allow a 24 hour gap to prepare orders before collection. Is there a way of block off the next day ? For example orders placed on Monday cannot be collected on Tuesday the user has to select from Wednesday onwards.

    Many thanks in advance.

  10. Are there any plans to add Zoom integration with the Appointment Booking Form? If so – would this be implemented with OAuth tokens or just API key? Thanks!

    1. Hey Alexis – That sounds like an interesting integration to have! I do agree it would be super helpful, and we’ll keep it on our radar as we plan out our roadmap in the future.

      I am afraid I can’t provide any ETA or details at the moment but I will make sure to suggest to the dev team for future consideration.

      Have a good one 🙂

  11. If you integrate with Google Calendar, do the available dates and times in the form date picker update to reflect when they are no longer available for booking or does this have to be done manually?

    1. Hey Matt – I am afraid this feature is currently not available. I have gone ahead and added a feature request for you so that the dev team can consider this in future.

      Thanks for the suggestion!

    1. Hi Tara! We don’t have a specific feature for limiting the # of people who can book per day, but there is a way you could achieve this with our current features.

      That would be to basically to have a copy of your form per day, and each of those forms would have a limit on the number of entries it can receive set via our Forms Locker addon. This addon is available with our Pro level (or higher) license, and you can find more details about this specific feature here.

      So essentially you would have a copy of your form for (in example) Sept 25th, then a new copy for Sept 26th, and so on. It would mean though you’d need to switch which form is being embedded on your booking page each day, but it would be an easy task to do, just by deleting the block and then embedding the next days copy of the form 🙂

      I hope this helps to clarify 🙂 If you have any further questions about this, please contact us if you have an active subscription. If you do not, don’t hesitate to drop us some questions in our support forums.

Add a Comment

We're glad you have chosen to leave a comment. Please keep in mind that all comments are moderated according to our privacy policy, and all links are nofollow. Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.

This form is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.