Welcome to the Acuity Scheduling
Developer Hub!

Here you'll find guides and documentation to help you start working with Acuity as quickly as possible, as well as support if you get stuck. Let's jump right in!

Embedding into Website

This API is not needed to integrate Acuity Scheduling with your website, it is intended for developers to access information outside of a website or develop custom application. See the website integration guides under Client's Scheduling Page within your account for the code and guides on embedding into your website.

Dynamic Scheduling Page

Some parameters can be passed in to the scheduling page through the query string to change which options and defaults are shown to clients.
If the scheduler is embedded in your website you can also pass these to your website, and they'll be transferred into the embedded scheduler. For example, http://YourWebsite.com/book-appointment?email=test@example.com will pre-fill test@example.com into the embedded scheduler.

To pass the client's first name, last name, phone number, and e-mail address into the scheduling page:

https://example.acuityscheduling.com/schedule.php?firstName=First&lastName=Last&phone=Phone&email=email@example.com

Here's the complete list of available fields:

  • firstName the client's first name
  • lastName the client's last name
  • email the client's email address
  • phone the client's phone number
  • calendarID select a specific calendar
  • appointmentType select a specific appointment type or type category using category:categoryName
  • appointmentType[] link to multiple appointment types like this
  • certificate set a coupon code or package
  • quantity set the quantity of appointments to book
  • datetime a date and time for an appointment slot, parsed by strtotime

To find the ID for calendar go to Calendars in your account and choose Direct Scheduling Link to find the link directly to that calendar. For appointment type go to Appointment Types and choose Direct Scheduling Link.

Dynamic Scheduling Page Example »

Dynamic Intake Forms

Intake Form data may also be passed in a similar manner. Data is set by fieldID which can be found by inspecting the client scheduler forms by right clicking a field and selecting Inspect, or contacting support. Formatting of the query string parameter depends on the field type.

  • Text fields: field:1=Wonderful
  • Drop Down list and Checkbox list fields: field:2[]=First&field:2[]=Second
  • Yes/No and Checkbox fields: field:3=yes&field:4=no
https://example.acuityscheduling.com/schedule.php?field:237764=Relaxation!

Native iOS and Android Apps

Acuity's HTML embed code can also be used to embed the scheduler into native apps using a WKWebView on iOS or WebView on Android. Check out our sample code for iOS and Android embedding!

Example Time

Let's say you want a scheduling link which:

A) Prefills some client data
B) Selects a particular appointment type
C) Chooses a specific appointment time, eg. August 30th, 2017, 2pm (your time)

Each scheduling link starts with the base part of your scheduler url. In our case that would be https://example.acuityscheduling.com/schedule.php but you should use your own scheduler link. This is followed by parameters, starting with a question mark ?. Each following parameter is separated by an ampersand &.

A) First, set the client data.

?firstName=Bob&lastName=Burger&field:237764=Relaxation! The first argument starts with ? and each following parameter is separated by an &. In this example, we set a custom intake form as well.

B) Next, add the Appointment Type id

&appointmentType=184520 Don't forget that & symbol!

C) Finally, set the appointment time using datetime

&datetime=2017-03-30+2:00pm Be sure to test out the datetime you set to make sure our servers understand it.

Our full link would look like this:

https://example.acuityscheduling.com/schedule.php?firstName=Bob&lastName=Burger&field:237764=Relaxation!&appointmentType=184520&datetime=2017-08-30+2:00pm

Embedding into Website