You can accept appointments or bookings on your form using an Appointment Scheduling field. You can also connect a calendar to control your availability and create calendar events.

With flexible configuration options, you can accept appointments for anything from a brief meeting to an extended stay in your guest house. You can even display responses to other questions in the appointment details with answer piping.

Example of a selected appointment time with the Name and Contact Number fields piped into the Appointment details.

How it works

Using slash commands

  1. On a blank line in the form editor, type /appointment and select "Appointment" from the dropdown menu.
  2. Enter details for the question title and description.
  3. Some defaults are set, such as timezone and mode (minutes or days), so you only need to configure a few things. However, if you want to edit those options, click the Configure (cogwheel) icon to the right of the question.

Using action buttons

  1. In the form editor, click the line where you want to add an appointment field. Click the "Add questions" icon to the left or the "Add Question" button below an existing question.
  2. Select "Appointment" from the question type dropdown on the right of the new question.
  3. Enter details for the question title and description.
  4. Some defaults are set, such as timezone and mode (minutes or days), so you only need to configure a few things. However, if you want to edit those options, click the Configure (cogwheel) icon to the right of the question.


The default settings will allow people to book 30-minute appointments between 9 am and 5 pm, Monday through Friday. The defaults aren't always what you're looking for, so let's dive into the options and what you can do.


Should I connect a calendar?

Connecting a calendar allows your form to add new appointments to your calendar and ensure you aren't double-booked. You can check availability and add appointments to multiple calendars on selected plans.

You can accept appointments without a connected calendar. However, appointments will be restricted to what you configure as your set availability—general availability, blockout dates, etc. Double bookings will also be allowed.

Tip: We recommend not connecting a calendar for use cases where multiple, distinct customers can schedule overlapping times (e.g., ordering food to go) so that double bookings will be accepted.

Connecting a calendar

To connect a calendar:

  1. Click "Configure" or select the Configure (cogwheel) icon to the right of your Appointment question.
  2. Click "+ Calendar" to connect to a new Google Calendar.
  3. Click "Add Account +" and follow the prompts to connect your Google account.
  4. Select the calendar you want to use for your appointments from the dropdown and give your calendar a recognizable name.
To add a calendar you will need to connect your Google Account, select a calendar associated with your account, and give the calendar a name in the Calendar Name field.


Appointment timezone

This is the timezone in which appointments will be made on your calendar. This defaults to your local timezone.

Lock timezone

Locking the timezone will prevent users from selecting a timezone different from the Appointment timezone when choosing an appointment time.

Appointment mode

  • Minutes - Configure appointments by minutes in blocks specified by the "start time interval" and "length of time" options. You might want this option if you accept appointments for meetings, services (e.g., haircut), or consultations.
  • Days - Configure appointments by days. This option is excellent for appointments that require whole days, such as accepting appointments for your guest house, a car rental, or a multi-day tour.
Select either "Minutes" or "Days" from the "Appointment mode" dropdown.

Time format

  • am / pm - This displays the time selector as AM or PM.
  • 24 hour - This displays the time selector as 24-hour time.

Event Details

Setting Event Details

Set the event's details, including the Title, Description, and Location. These details will be saved to your calendar when the appointment is created and will also be used to display that appointment in your submission.

Tip: You can use answer piping to populate the details with values that the respondent has entered when filling out the form.

The Event Details tab of the Appointment Configuration, showing answers piped into the Title and Description.

Start time interval

This setting controls the interval between appointment start times that respondents can select. If you're using a connected calendar and the appointment time covers one or more other potential appointment selections, those selections will be appropriately blocked out for future respondents. This is set to 15-minute intervals by default.

For example, say you have a "Start time interval" of 15 minutes and a "length of time" (covered below) of 45 minutes. If someone takes a slot at 9:15 am, the appointment will run from 9:15 am until 10 am. That means the appointments that could have been chosen starting at 9:15 am, 9:30 am, and 9:45 am will no longer be able to be selected.

Length of time

This sets the length of time for appointments. You can customize the length of time in a variety of ways:

  • In minutes or days, as specified by your "Appointment mode" selection.
  • Chosen by the respondent (you can optionally define the minimum and maximum length they can choose).
  • Custom: fixed or passed through answer piping.

Caution: If you allow a custom length of time through answer piping, the piped answer must be a number. Otherwise, the question will not work.

If "Is the length of time chosen by the submitter" is "NO," you can select "Custom" from the "Choose the length of time" dropdown and anser-pipe a length of time from a different question on your form.

Using answer piping is especially useful when used alongside calculations to determine the required length of an appointment based on other answers.

Invite emails

You can enter email addresses manually or collect them through your form and pipe them into this field. You can also combine these options. You need to enter multiple email addresses as a comma-separated list regardless of your choice. These email addresses will be added as invitees to the appointment and will receive notifications about the appointment.

When this field is connected to one or more Google Calendars, we will send all invitees your default Google Calendar event notification(s). Additionally, you can toggle "Send Invite from Paperform" to have Paperform send simple invites directly to these email addresses.

For more complex emails, you can set up custom emails.

You can hard-code or answer-pipe email addresses in the "Invite emails" field. Different emails need to be separated by a comma.


Setting Availability

Set the Appointment availability details, including when you are available, how soon respondents can book an appointment, and how many appointments can be scheduled per day.

General Availability

You can set the days or times you are generally available for appointments (e.g., your office hours). When "Appointment mode" is in days, you can toggle the days you are available. When it is set to minutes, you can select the blocks of time you are available each day (e.g., 9 am to 11 am).

When "Appointment mode" is set to "minutes", you can select the blocks of time you are available each day. This is 9am - 5pm, Monday - Friday by default.

Blockout dates

Blockout dates allow you to set dates or ranges when you are unavailable. This is great for blocking out holidays or office closures to ensure people can't book appointments during those times.

Blockout dates section showing 16th August and 23rd - 25th August blocked out.

Number of days in advance an appointment can be made

Limit how far in advance people can book appointments.

Minimum number of hours / days notice

Limit how close to the current date and time people can book appointments. This determines how much notice you receive.

Maximum # of appointments in a day

When a calendar is connected, you can set a limit for the total number of appointments booked in one day. All appointments will be counted, even those not created by your form. All appointments will be counted if you check availability across multiple calendars.

Minimum time between appointments (days/minutes)

Use this to require a gap between appointments. This is useful if you need a break between meetings or time to clean your guest house between bookings.

Example Templates

Simple Meeting Template

View template

All plans

Create a custom meeting scheduling form to let others book a time with you. Set your availability directly on the form, and connect a Google Calendar to prevent double bookings.

How it works:

This template uses an appointment field where name, email, and description are piped in from other questions.

Accommodation Bookings Template

View template

Please note that this feature is exclusively available with specific pricing plans.

This template is a fantastic example of combining appointments and calculations to take paid bookings. When the Appointment field is attached to a Google Calendar, you can automatically block off dates as they're booked.

How it works:

  1. The Appointment field is set to "Days" mode, allowing the submitter to choose the booking length.
  2. The calculation field uses the {{ key.dayLength }} property of the Appointment field to calculate the total cost of the stay, with a discount for bookings longer than six days.
  3. A custom pricing rule adds the calculation result to the price of the form so that the submitter is charged the correct amount.

Chef Reservation Template

View template

Please note that this feature is exclusively available with specific pricing plans.

This template shows off how you can calculate the length of time required for an appointment based on answers to other questions and then have the submitter choose a timeslot that's available on your calendar. The booking price is calculated based on the number of guests and the selected package.

How it works:

  1. A calculation is used to determine the length of time the package requires.
  2. In the appointment field, the calculation is answer piped as the length of time required for the meeting (Event Details → Length of time).
  3. Another calculation determines the package price depending on how many people are coming, the package selected, and whether it is a dinner or lunch service.
  4. A few other calculations are used for display purposes (cost per person, whether it is a lunch or dinner service).
  5. A custom pricing rule adds the total calculated price to the form's price.

Cleaner Hire Template

View template

Please note that this feature is exclusively available with specific pricing plans.

This template calculates a quote for how long it will take for a job to be done and then lets the submitter pay for and schedule the quoted time in a single submission.

How it works:

  1. A calculation determines the total length of time a job will take.
  2. In the Appointment field, the calculation is answer piped as the length of time required for the meeting (Event Details → Length of time).
  3. A calculation is used to create a cost multiplier.
  4. A pricing rule applies the cost multiplier to the form's price.


Calendars won't load or appointments are no longer being made with an existing connection

If you try to add a new calendar from an existing Google Calendar connection and it won't load your calendars, your connection may have expired or been revoked. Similarly, if an existing connection is no longer making bookings, the same may have occurred.

There are several reasons why this might occur:

  • It has been over six months since you connected your Google Calendar account.
  • The Google account password has been changed.
  • Permissions have changed for the Google Workspace to which the account belongs.
  • Access has been revoked on Google's side.
  • Google may have invalidated the connection.

To fix this:

  1. Go to your account services.
  2. Locate the Google Calendar account you want to re-authorize.
  3. Click the "reconnect" button.
  4. Follow the prompts to authorize the connection again.

Connecting more than one account

The platform supports only a single active Google OAuth connection at any given time. When a new connection is created, the previous connection will automatically become inactive, rendering it unable to function as intended.