Articles on: Appointment Bookings

πŸ“… How to Setup Appointment Booking Services

Want to let customers book appointments, classes, rentals, or sessions directly from your Shopify store? πŸ—“οΈ


That’s exactly what Hoppy Appointments is designed for.


With Hoppy Appointments, you can turn any Shopify product into a bookable service, such as:


  • πŸ’‡ Salon & spa appointments
  • πŸŽ“ Classes & workshops
  • 🏨 Stays & rentals
  • 🎾 Coaching sessions & consultations
  • πŸ“¦ Multi-session packages


Once set up, customers see a Book Now button on your product page. They pick a date and time from a clean calendar popup, answer your booking questions, and confirm β€” all without leaving your store ✨


Paid bookings are processed securely through your regular Shopify checkout, while free bookings are confirmed instantly.


This guide walks you through the complete setup, step-by-step πŸ‘‡



⚠️ Before You Begin


Before creating your first service, make sure:


  • The Hoppy Appointments app is installed on your Shopify store
  • You have a Shopify product ready for the service you want to offer

β†’ The product’s price becomes the booking price

  • You know roughly which days and times you want to accept bookings


πŸ’‘ Just exploring? The first time you open the app, a guided setup offers to create a sample service for you, so you can see how everything works before connecting a real product.


ℹ️ The guided onboarding appears automatically for new stores and covers the same steps explained in this guide.



βœ… Initial Step β€” Enable the App Embed


For the Book Now button and booking calendar to appear on your storefront, the app embed must be enabled inside your Shopify theme.


Go to:


Shopify Admin β†’ Online Store β†’ Themes β†’ Customize β†’ App Embeds


Then:


  • Find β€œAppointment Bookings”
  • Toggle it ON
  • Click Save


⚠️ Important:


Saving your service alone does not make it visible on the storefront. The app embed must be enabled for the booking widget to appear.



βš™οΈ Step 1 β€” Create a New Service


Open the Hoppy Appointments app from your Shopify Admin.


You’ll land on the My services page, where all your booking services are listed.


Then:


β†’ Click New Service


β†’ Pick the service type that matches what you offer:



πŸ“… Regular BookingOne time slot on a single day.


Perfect for single appointments like consultations, classes, or salon visits.


Example


A 30-minute haircut appointment on Tuesday at 2:00 PM.



πŸŒ™ Multiday BookingBookings that span multiple days.


Perfect for stays and rentals that last several days, like hotels or equipment rentals.


Example


A camera rental booked from the 10th to the 14th.



πŸ“¦ Bundle BookingsA package of multiple appointments.


Perfect for packages of multiple sessions, like class packs or membership credits.


Example


A β€œ10 Yoga Classes” pack where customers book each session one by one.



Once selected, the service setup page opens automatically.


ℹ️ Don’t worry about payments yet β€” every service type can be paid through Shopify checkout or offered for free. You’ll choose this later in the Payment tab.



πŸ›οΈ Step 2 β€” Connect Your Shopify Product


Every booking service starts with a Shopify product.


Inside the General tab, open the Booking card:


β†’ Click Select product and choose the product you want customers to book.


This product controls:


  • πŸ’° The booking price customers pay at checkout
  • πŸ–ΌοΈ The image shown on the booking page
  • 🏷️ The default service title, auto-filled from the product title


⚠️ Important:


A service needs atleast one product to link to it. If the product has a variant, then should link to one of the variants.


Once selected, you can swap it anytime using Change, or remove it with Reset.



🏷️ Booking Page Details


Just below, the Booking page card controls what customers see while booking:


  • Title β†’ The name customers see when booking this service
  • Description β†’ A short explanation of what customers can expect


ExampleTitle: β€œDeep Tissue Massage β€” 60 Minutes”

Description: β€œA relaxing full-body massage with our senior therapist. Please arrive 10 minutes early.”


πŸ’‘ There’s also a Google/Outlook event - Title field. This controls how the event appears on connected calendars. The variables {{service_name}} and {{product_name}} are replaced automatically β€” no need to edit them unless you want a custom format.



πŸ”€ Duration to Variant Mapping


ℹ️ This card only appears when your product has multiple variants AND your service offers multiple durations.


It lets you connect each duration to a specific product variant, so every duration can have its own price.


Example


  • 30 minutes β†’ β€œ30 Min Session” variant ($40)
  • 60 minutes β†’ β€œ60 Min Session” variant ($70)


If your product has only one variant, all durations simply use that variant’s price β€” nothing to configure here πŸ‘



πŸ“ Step 3 β€” Choose a Meeting Location


The Meeting location setting tells customers where the appointment takes place.


You can choose from:


  • None β†’ No location is shared
  • Google Meet / Zoom / MS Teams β†’ Online video meetings
  • Phone call β†’ Share a phone number
  • In person / At Location β†’ Share a physical address
  • Custom β†’ Share any custom text or link


The location is shared with customers inside their confirmation email and calendar invite, so they always know exactly where to go πŸ“¬



πŸ”— Location Details (Conditional Field)


Depending on your selection, an extra field appears automatically:


  • Google Meet / Zoom / Custom β†’ Paste your meeting link
  • Phone call β†’ Enter the phone number
  • In person / At Location β†’ Search and pick the address using the built-in address autocomplete


πŸ’‘ Using Google Meet, Zoom, or MS Teams? Once the matching calendar is connected in the Team section, a unique meeting link is generated automatically for every booking β€” no manual link needed. See the Integrations documentation for connection steps.



🎫 Send Ticket QR Code


ℹ️ This checkbox appears only for In person or At Location services.


Enable it to include a scannable QR ticket in the confirmation email β€” great for quick check-ins at events, classes, or venues βœ…



πŸ“ Step 4 β€” Customize the Booking Form


The booking form is what customers fill in after picking their time slot.


By default, every form asks for:


  • First Name (required)
  • Last Name
  • Email (required)


These three are always included, so you never lose track of who booked πŸ™Œ


To collect more details:


β†’ Click Add a question


You can add fields like:


  • Short or multi-line text
  • Phone number
  • Dropdowns, radio buttons, checkboxes, or multi-select lists
  • Date, time, number, rating, link, or even file uploads


Each question can be marked as required, reordered by drag-and-drop, and edited anytime.


Example


  • β€œWhat would you like to focus on during the session?” (multi-line text)
  • β€œHow did you hear about us?” (dropdown)


πŸ’‘ Keep the form short β€” fewer questions usually means more completed bookings.



πŸ”˜ Optional β€” Floating Action Button


Want customers to book this service from any page of your store β€” not just the product page?


Enable the Floating Action Button to display a floating Book Now button across your storefront.


Once enabled, you can customize:


  • Button Text (default: β€œBook Now”)
  • Position β†’ Bottom Right, Bottom Left, or Bottom Center
  • Background & Text Colors to match your brand


This is especially useful for high-demand services you want to promote storewide πŸš€



πŸ•’ Step 5 β€” Set Your Availability


Now move to the Availability tab β€” this is where you control exactly when customers can book.



πŸ‘€ Who Is This Availability For?


First, choose how availability should work:


  • Availability per service β†’ Best for one person. The schedule you set below applies to the whole service.
  • Availability per teammate β†’ Best for teams of 2–99. Bookings are checked against your team members’ own schedules.


When per teammate is selected, an Assign teammates to this service option appears so you can choose which team members offer this service.


ℹ️ Team members and their individual schedules are managed separately in the Team section. See the Team Members documentation for details.



πŸ“† Weekly Hours or Specific Dates


You can build your schedule in two ways:


Set Your Weekdays Availability (Default)


A recurring weekly schedule.


  • Toggle each day ON or OFF
  • Set start and end times for every working day
  • Add multiple time intervals per day using the + button

β†’ e.g. 9:00–12:00 and 14:00–18:00 with a lunch gap in between

  • Use the copy icon to quickly copy one day’s times to other days


Set Your Date Range Availability


β†’ Click or select specific dates to switch.


Perfect for seasonal schedules, pop-up events, or limited-time services that only run between specific dates.


πŸ’‘ For Regular services, you can also enable Show availability by time of day to group slots into morning, afternoon, and evening β€” making the calendar easier for customers to scan.



⏱️ Duration & Slot Settings


These settings control how time slots are generated for customers:


  • Duration β†’ How long each appointment lasts (15 minutes to 4 hours, or create a Custom duration)
  • Allow multiple durations β†’ Lets customers choose between different lengths, e.g. 30 or 60 minutes
  • Booking interval β†’ The gap between bookable start times

β†’ e.g. a 60-minute service with a 30-minute interval offers slots at 9:00, 9:30, 10:00…

  • Buffer time β†’ Free time automatically blocked between appointments, so you always have a breather β˜•


⚠️ Duration, booking interval, and buffer time are not used for Multiday services, since those bookings span full days.



⏰ Booking Rules


  • Minimum scheduling notice β†’ Prevents last-minute bookings

β†’ e.g. require at least 4 hours of notice before a slot can be booked

  • Look ahead β†’ Controls how far in advance customers can book

β†’ e.g. only allow bookings up to 30 days ahead


These two settings protect your calendar from surprise bookings and keep your schedule predictable πŸ›‘οΈ


ℹ️ Look ahead is not used for Bundle services, since customers book their package sessions as they go.



β˜• Break Times & 🚫 Blocked Dates


Need to block time off?


  • Break times β†’ Recurring daily blocks, like lunch every day between 1–2 PM
  • Blocked dates β†’ Specific dates that can’t be booked at all β€” perfect for holidays, vacations, or days off



🌍 Timezone & Hour Format


  • Timezone β†’ The timezone your availability is based on
  • Show timezone selector β†’ Lets customers view slots in their own timezone
  • Lock timezone β†’ Forces all customers to see times in your timezone
  • 24h format & Show hour format selector β†’ Controls how times are displayed


πŸ’‘ For local, in-person services, enabling Lock timezone avoids confusing time conversions for traveling customers.



πŸ”’ Booking Limits


  • Maximum bookings per day β†’ Cap how many appointments can be booked in a single day
  • Maximum bookings per time slot β†’ Allow multiple customers to book the same slot β€” perfect for group classes 🧘


Example


A yoga class with 5 spots per time slot lets 5 different customers book Tuesday at 9:00 AM.


ℹ️ Available limits vary slightly depending on your service type.



πŸ“¦ Extra Settings for Multiday & Bundle Services


Some settings only appear for specific service types. Here’s what to look for πŸ‘‡



πŸŒ™ Multiday Services


Inside the General tab, the Multiday settings card appears:


  • Is it a day or night booking?
    • Day booking β†’ The 10th to the 11th counts as 2 days
    • Night booking β†’ The 10th to the 11th counts as 1 night β€” great for hotels & stays 🏨
  • Fixed quantity β†’ When enabled, the price is not multiplied by the number of days or nights booked


Inside the Availability tab:


  • Minimum / Maximum bookable days β†’ Control the shortest and longest stay customers can book
  • Available hours β†’ Set check-in / check-out style times



πŸ“¦ Bundle Services


Inside the Availability tab, choose how many time slots customers can select:


  • Fixed number of slots β†’ e.g. exactly 5 sessions per pack
  • Range of slots β†’ e.g. customers choose between 3 and 10 sessions


Inside the General tab, the Bundle settings card offers:


  • Fixed quantity β†’ When enabled, the price is not multiplied by the number of selected sessions



πŸ’³ Step 6 β€” Configure Payments & Approval


Move to the Payment tab to decide how customers pay and how bookings get confirmed.



πŸ’° Payment Type


  • Pay to Book β†’ Payment is required to complete the booking. Customers pay through your regular Shopify checkout β€” secure and familiar πŸ›’
  • Book without pay β†’ Bookings are confirmed instantly without payment. Ideal for free services, discovery calls, or paying in person.


ℹ️ You can switch between the two anytime β€” nothing else about your service changes.



βœ… Confirm/Decline a Booking


  • Automatically accept bookings β†’ New bookings are confirmed instantly
  • Do not automatically accept new bookings β†’ You review and manually confirm each booking first


⚠️ Important:


With manual confirmation, each booking must be accepted within 24 hours, or it is automatically declined. Make sure someone on your team keeps an eye on new requests πŸ‘€



⏳ Waitlist


When your calendar fills up, enabling the Waitlist lets customers join a waiting list instead of leaving empty-handed.


  • Show waitlist when a slot is fully booked β†’ The waitlist option only appears on slots that are already full


ℹ️ Waitlist requests need your review and are only confirmed (and charged) after you approve them. The waitlist is not available for Bundle services.



πŸ’Έ Partial Payments (Deposits)


ℹ️ This card only appears when Pay to Book is selected.


Enable Partial Payments to let customers secure their spot with a deposit instead of paying the full amount upfront.


You can configure:


  • Percentage or Fixed amount β†’ e.g. 30% now, or $20 now
  • Partial payment method β†’ Selling Plans (Recommended) saves the customer’s payment method so you can collect the balance later; Draft Order sends a manual invoice instead
  • Give the option to pay fully or just the deposit β†’ Customers choose for themselves during booking


Deposits are a great way to reduce no-shows while keeping bookings accessible πŸ’‘


πŸ’‘ If you enable the β€œpay fully or just the deposit” choice, make sure your booking form includes at least one custom question β€” the option is displayed inside the booking form.



πŸ”§ Step 7 β€” Review Advanced Options (Optional)


The Advanced tab contains a few optional settings worth knowing about during setup:


  • Booking Terms β†’ Add a terms & conditions checkbox to the booking form. Mark it Mandatory to require customers to accept before confirming.
  • Redirect after booking β†’ (Book without pay only) Send customers to a custom page β€” like a thank-you page β€” after they confirm.
  • Customize email β†’ Add a custom message to this service’s confirmation email, and choose whether customers see Cancel and Reschedule buttons in their emails.
  • Minimum rescheduling / cancelling notice β†’ Prevent last-minute changes by requiring advance notice, e.g. 24 hours.


πŸ’‘ Email templates themselves are managed globally under Settings β†’ Email Settings. See the Email Settings documentation for details.


The Advanced tab also includes translation overrides for the booking widget β€” see the Translations documentation if your store sells in multiple languages 🌍



🎨 What About the Design Tab?


The Design tab inside the service controls how the booking calendar, success page, reschedule page, and cancel page look.


By default, your service automatically follows your store’s global design settings β€” so it matches your brand with zero extra work ✨


To customize this service individually:


β†’ Enable Do not Follow Default Theme Settings to unlock per-service fonts, colors, logos, and custom CSS.


For a full walkthrough, see the Design & Styling documentation.



βœ… Step 8 β€” Save & Publish


Once everything looks good:


1. Save the service


Click Save in the bar at the bottom of the page.


You’ll see a β€œService Created” confirmation, and your service is now Active βœ…


2. Check the app embed status


If the Appointment Bookings app embed isn’t enabled yet, a banner appears with an Enable App Embed shortcut that takes you straight to your theme editor.


3. Preview your service


Open the live product page on your storefront to experience the booking flow exactly as your customers will πŸ‘€


πŸ’‘ The preview inside the setup page is approximate β€” always trust the availability shown on your live product page.



πŸ› οΈ Managing Your Service Later


From the My services page, use the More menu on any service to:


  • Turn on / Turn off β†’ Temporarily hide a service from your store
  • Duplicate β†’ Clone a service as a starting point for a new one
  • Archive β†’ Retire services you no longer offer
  • Copy Service ID β†’ Used for manual placements with the Appointment Calendar theme block



πŸŽ‰ Final Result


Once configured successfully:


βœ… Your product page shows a Book Now button instead of Add to Cart
βœ… Customers pick dates & time slots from a beautiful calendar popup
βœ… Paid bookings flow through your secure Shopify checkout
βœ… Free bookings are confirmed instantly
βœ… Customers receive automatic confirmation emails with all the details
βœ… Your calendar stays protected with buffers, breaks, and booking rules
βœ… Your store offers a professional booking experience that runs itself ✨


With your appointment booking service live, customers can book with you 24/7 β€” even while you sleep πŸš€


Updated on: 20/08/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!