Bookings & Appointments
Take timed appointments on your own site, with reminders and optional deposits
What it does
This plugin turns your site into a booking page. You list your services with a duration and an optional price, set the weekly hours you are open, and visitors pick a service and a free time on your public /book page. Each service can ask its own intake questions, required or optional. A booking confirms straight away for free services, or after payment when you charge the full price or a deposit through your own Stripe account. The customer gets a confirmation email with a calendar file attached, plus reminder emails about 24 hours and 2 hours before. You can close single days or whole ranges, such as a holiday, and set how much notice you need. A slot cannot be booked twice, even when two people click at once. You can also add team members, rooms or bays, each booked on its own calendar.
Who it's for
Solo professionals who sell their time: photographers, coaches, consultants, tutors, salons. It fits you if you work from one schedule, take bookings through your own site rather than a marketplace, and want deposits to land in your own Stripe account. It also fits a small team or a shop with rooms or bays: add each one and each is booked on its own calendar, so two customers never get the same person at the same time.
How it works
You add services under Admin, Appointments, Services, then add availability rules for the days and hours you work. A rule can cover every service or a single one.
Optional: under the Team tab you add people, rooms or bays and tick the services each one performs. Services with no team member work as before.
A visitor opens your /book page and picks a service. If two or more team members offer it, they choose one or Anyone available. They then choose a free time shown in their own time zone and answer the service's intake questions.
A free service is confirmed at once. A paid service is held for 10 minutes while the customer pays through Stripe Checkout on your own Stripe account, then it is confirmed.
The customer gets a confirmation email with an appointment.ics file attached. If you connected Google Calendar, the booking is also added to your calendar.
Reminder emails go out about 24 hours and 2 hours before a confirmed appointment. You can mark it completed or no-show, or cancel it, from the Appointments tab. Cancelling a paid booking asks you to confirm, then refunds it in full through your Stripe account, and the customer gets a cancellation email.
Settings you configure
- Service name, Duration (min), Price, Payment
- Set when you add a service. Name and duration can be edited later. Price and payment mode cannot be changed after creation. For Payment choose Full price at booking or Deposit only, with a Deposit amount, or leave it empty for a free service. Paid services need Stripe connected in your site's payment settings.
- Team
- Optional tab. Add a person, or a room, bay or equipment, with a name, a description and the services they perform. Each is booked on its own, up to 50 in all and 25 per service. Turn one off to hide them from new customers. One with bookings cannot be deleted. In the Appointments tab you can assign or change who has an upcoming booking.
- Capacity
- How many bookings can run at the same time slot. One means one booking per slot. A service that has team members must have a capacity of one, and its capacity is then set by its team members.
- Booking rules
- Per service, on adding and editing: Minimum notice (0 to 168 hours, default 24), Booking window (1 to 365 days, default 90) and Gap after each booking (0 to 120 minutes, default 0).
- Intake form
- Add questions as short text, email, phone, long text, dropdown or checkbox, and mark each Required or not. You can reorder them. Answers show next to the booking.
- Turn off / Turn on
- A service that is off is hidden from your booking page. A service that already has bookings cannot be deleted, so turn it off instead.
- Availability and Days off
- Add a rule with a day, a start and an end time, for all services or one. Under Days off, close a single date or a range of up to 62 days, with an optional note, for all services or one.
- Google Calendar
- Under Settings, Appointments: Connect Google Calendar, switch sync on or off, or Disconnect. When on, busy times block slots and confirmed bookings are added to your calendar. The same page shows your /book link with a Copy button for your Google Business Profile.
What it can access
The plugin reads and writes your services, availability rules, team members and bookings. It stores each customer's name, email, phone, time zone and intake answers. If you connect Google Calendar, it reads your busy times and creates or removes booking events, using sign-in tokens stored encrypted. Outbound calls go only to accounts.google.com, oauth2.googleapis.com and www.googleapis.com.
Permissions
- Read your posts and pages
- Create and edit posts
- Add settings sections
- Add sidebar widgets
- Make external HTTP requests to: accounts.google.com, oauth2.googleapis.com, www.googleapis.com
External network access
This plugin makes requests to the following domains:
accounts.google.comoauth2.googleapis.comwww.googleapis.com
Capabilities
content:readcontent:writeui:settingsui:sidebarnetwork:fetch
Screenshots


Honest limits
Working hours come from one weekly schedule per site. Team members, rooms and bays each get their own calendar of bookings, but not their own hours or days off: availability rules and days off apply to everyone. Without a team, capacity only lets several customers share a slot.
Days off close whole days only. You cannot set shorter hours for a single date from the admin, so adjust the weekly rule if you need that.
Price, payment mode and deposit cannot be edited after a service is created. Create a new service to change them.
You cancel bookings yourself from the Appointments tab. Customers cannot cancel or reschedule on their own. Cancelling a paid booking asks you to confirm, but an unpaid one is cancelled at once with no prompt. A paid booking is refunded in full, and if the refund fails the booking is still cancelled while the payment stays in place, so check Stripe.
The Appointments tab shows times in your site's time zone, set under Settings, Advanced. Until one is set it shows UTC and says so. Customers see times in their own time zone.
Paid services need your own Stripe secret key saved under Settings, Membership. Without it the customer is told payment is unavailable and the booking is only held briefly.
Google Calendar sync needs the platform's Google credentials. When they are missing, the settings page says so and bookings still work with email only.
Frequently asked questions
Can customers pay a deposit?
Yes. Set a service to Deposit only and enter the amount. The customer pays it through Stripe Checkout on your own Stripe account when booking, and you collect the rest yourself.
Does the customer get a calendar invite?
The confirmation email carries an appointment.ics file and an Add to Google Calendar link. If you connect your own Google Calendar, the booking is also added to yours.
Can I take a service offline without losing its bookings?
Yes. Turn it off. It disappears from your booking page and existing bookings stay. A service with bookings cannot be deleted.
Can I block a holiday or set minimum notice?
Yes. Add the dates under Days off, as one day or a range of up to 62 days, and they vanish from your booking page. Each service also has its own minimum notice, booking window and gap after each booking.
Can each staff member have their own calendar?
Yes, for bookings. Add each person under the Team tab and tick the services they perform. Customers pick one or choose Anyone available, and no one is booked twice at the same time. Working hours still come from the site's availability rules, not per person.
Related plugins
Specifications
- Category
- Commerce
- Price
- Included
- Version
- 1.0.0
- Source
- First-party
Browse more integrations
58 free first-party integrations available.