Description
Appointments Booking for Square puts your Square Appointments booking flow on your own WordPress pages with one shortcode. Clients book without leaving your website, and every appointment is created in your Square account, exactly like a booking made on Square’s own booking page.
Nothing to re-enter: services, prices, durations, team members, opening hours and intake questions are read live from Square. You keep managing everything in your Square Dashboard.
Features
- Four-step booking flow: service option date and time contact details.
- Live Square data: services, variations, team members and availability for the location you choose.
- Square intake questions: the customer questions you set up in Square Appointments are asked at checkout.
- Every Square Appointments plan: connect with a personal access token (Plus and Premium) or with OAuth and your own Square application (required for the free plan).
- Two themes: Card and Square Classic, with your accent color and your theme’s fonts.
- Shortcode builder: pick a service or a team member by name and copy the shortcode.
- Several widgets per page, each with its own preselection.
- Terms and cancellation policy: optional terms checkbox with a pop-up, and your Square cancellation policy at checkout.
- Built-in protection: security token, anti-spam field and per-visitor limits on the booking form.
- Sandbox mode to test with Square’s sandbox before going live.
- Five languages: English, French, German, Spanish and Italian, for the booking widget and the settings. The widget follows the site language.
- Clean uninstall: every option and cached value is removed.
Shortcode
[absq_booking]
Optional attributes:
service_id— open a specific service (Square catalog item ID).staff_id— book with a specific team member.theme—cardorsquare-classicfor this page only.
Example: [absq_booking service_id="SERVICE_ID" staff_id="TEAM_MEMBER_ID" theme="square-classic"]
The shortcode builder in Settings Square Booking fills in the IDs for you.
Pro and Tracking editions
The paid editions, available on square-appointment-wp.com, add Square payments (card on file or pay in full), more themes with fonts and colors, custom step labels, custom intake questions and multisite. The Tracking edition also sends every booking to Google Ads and Meta as a conversion.
External services
This plugin connects to Square, a third-party service, to show your services and availability and to create bookings. It does not work without a Square account.
Square API — connect.squareup.com (production) or connect.squareupsandbox.com (sandbox mode)
- When: when a visitor opens a page with the booking widget, when they pick a service or a date, and when they confirm a booking; also when an administrator tests the connection or uses the shortcode builder.
- What is sent: your access token, location ID and the requested service, team member and dates. When a visitor books: their first and last name, email, phone number, appointment note, intake answers and the selected time.
- Square terms of service: https://squareup.com/legal/general/ua
- Square privacy notice: https://squareup.com/legal/general/privacy
Square OAuth — connect.squareup.com/oauth2 or connect.squareupsandbox.com/oauth2
- When: only if you choose the OAuth connection. The administrator is sent to Square to authorize the application; tokens are then exchanged and refreshed once a day.
- What is sent: your Square application ID and secret, the authorization code and the refresh token.
Your terms page — the URL you enter in Terms page URL
- When: when a visitor opens the terms pop-up (cached for 12 hours). A page on your own site is read directly without any request.
- What is sent: a standard HTTP request to that URL.
The plugin does not send data to square-appointment-wp.com or any other service.
Screenshots




Installation
- Install and activate the plugin from Plugins Add New.
- Go to Settings Square Booking.
- Connect Square: paste a personal access token, or choose OAuth and connect your own Square application.
- Enter your Square Location ID and save.
- Add
[absq_booking]to any page.
Step-by-step guides: documentation.
FAQ
-
Which Square plan do I need?
-
Any Square Appointments plan, including the free plan. Plus and Premium can use a personal access token. The free plan requires the OAuth connection with your own Square application, which takes about five minutes to create in the Square Developer Dashboard.
-
Is this an official Square product?
-
No. It is an independent plugin that uses Square’s public APIs. Square is a trademark of Block, Inc.
-
Where do I find my Location ID?
-
In the Square Developer Dashboard, open your application and go to Locations. Copy the ID of the business location that takes appointments.
-
Do bookings appear in Square?
-
Yes. Each booking is created in your Square account with the client’s details and intake answers, and appears in your Square Dashboard and calendar.
-
Can I test without real bookings?
-
Yes. Enable Sandbox mode and connect a Square sandbox application. No real appointments are created.
-
Does it work with my theme or page builder?
-
The shortcode works in the block editor, classic editor, widgets and page builders. The widget protects its own styles from theme CSS and uses your theme’s fonts.
-
How do I report an issue?
-
Use the support forum on WordPress.org. Turning on the debug log in Settings Square Booking Tools helps us see what Square answered.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Appointments Booking for Square” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Appointments Booking for Square” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.5
- French, German, Spanish and Italian translations of the widget and the settings.
- Prices and calendar dates follow the site language.
1.0.4
- Service descriptions, team member names, price notes and the confirmation text keep the widget’s size instead of the theme’s body text size.
- The selected day in the calendar stays readable when the pointer is over it.
1.0.3
- Changes requested during the plugin review.
- The shortcode is now
[absq_booking]. - The public booking REST route declares its permission callback explicitly.
1.0.2
- Unique
absqprefix for every class, function, option, transient, constant, REST route and AJAX action; text domain matches the slug. - All output escaped, all input sanitized and validated; nonces and capability checks on every form, AJAX and admin action.
- No remote assets: the widget uses the site theme fonts; no inline scripts or styles printed.
- No license check or external updater; updates come from WordPress.org only.
- The debug log is stored in the database (last 200 lines, personal data removed) instead of a file.
- External services documented in this readme.
1.0.1
- First submission.
