Description
Your clients book while you work. yAppointment puts your booking page on your own WordPress site. A client picks a treatment, a team member and a free time, and the appointment lands in your calendar, day or night, without a phone call.
Made for salons, barbers, beauty and nail studios, clinics, therapists, coaches and every business that works by appointment.
No time to set it up? We build it for you
Click Build it for me on the plugin’s Get Started page and send us the link of your website (or your Facebook, Instagram, Planity or Treatwell page). We set up your yAppointment account from it: your services, prices and opening hours. You only check it and connect the site.
What your clients see
- Your services with photos, descriptions, prices and durations
- Your team: clients can choose who they book with
- Only the times that are really free, so there is no double booking
- Reviews written by clients after their visit
- The booking page in their own language (27 languages, it follows your site’s language)
- Works on phones, tablets and computers
What you get
- Every online booking in your yAppointment calendar, next to your walk-ins and phone bookings
- Your services, team and opening hours managed in one place
- No commission on bookings
- A 14-day free trial, no credit card needed
Put it on your site in three ways
- A booking page: add the yAppointment Booking block (or the
[yappointment]shortcode) to any page - A floating “Book Now” button on every page of your site, which opens the booking in a popup
- A button for one treatment: the booking opens with that service already selected, great for a price list or a promotion page
The button takes your colours: pick them yourself, or click Use my yAppointment colours.
Connect in one click
Click Connect with yAppointment, sign in to yAppointment in the new tab and confirm your site. You come back to WordPress connected. There is nothing to copy and you never type your yAppointment password into WordPress. New to yAppointment? Create my free account opens the sign-up with your e-mail address already filled in.
Good to know
The plugin is free. It shows your yAppointment booking page on your site, so you need a yAppointment account (the plugin opens the sign-up for you). yAppointment is a subscription service after the free trial; the prices are at https://yappointment.com/pricing. Your site must be served over HTTPS.
External services
This plugin is a client for yAppointment (https://yappointment.com), a SaaS online booking platform operated by yAppointment. It does not work without a yAppointment account: your booking portal, services and bookings live on yAppointment, and the plugin shows them on your site. Nothing is sent to yAppointment until an administrator clicks one of the buttons on Get Started. It connects to three yAppointment hosts:
-
yAppointment admin app (
https://portal.yappointment.com, or the yAppointment Admin URL set under General Settings > Advanced). Where the business signs in to connect the site, creates an account, or asks for a setup.- When: only when an administrator clicks Connect with yAppointment / Reconnect, Create my free account or Build it for me on the Get Started page. The administrator’s browser opens it in a new tab; WordPress itself sends nothing.
- What is sent (in the address of the new tab): this site’s address, the address yAppointment returns to after the confirmation, and a one-time random value that protects the return. Create my free account and Build it for me also send the clicking administrator’s e-mail address (to prefill the form; the button says so) and
utm_source=wordpress-plugin.
-
yAppointment booking portal (
https://app.yappointment.com, or the Portal Base URL set under General Settings > Advanced). Used to show your booking portal on your site.- When: only while the site is connected, every time a visitor views a page that contains the
[yappointment]shortcode, the yAppointment block, or (when enabled) the floating button, and when a visitor opens the booking popup. The visitor’s browser loads the portal in an iframe. Showing a page never makes WordPress itself call yAppointment. - What is sent: the portal address contains your company ID, the portal page, the language and, if set, a service ID. As with any embedded page, the visitor’s browser also sends its IP address, user agent and the referring page address. Everything the visitor enters inside the embedded portal (for example name, e-mail address, phone number and the booking details) is sent directly to yAppointment to create and manage the booking.
- When: only while the site is connected, every time a visitor views a page that contains the
- yAppointment API (
https://api.yappointment.com, or the API URL set under General Settings > Advanced). Used to finish the connection, to check it, and to read public information about your business. Always from your WordPress server, never from a visitor’s browser, and never while a visitor views a page.- When the Connect tab returns to WordPress:
POST /api/v1/wordpress/exchangesends the one-time code from the return address and this site’s address, and receives the site key and your business’s ID, short name and name. - When you connect manually (Advanced) and whenever an administrator opens one of the plugin’s admin pages, at most once an hour:
GET /api/v1/public/companies/{company ID}with the site key checks that the connection is still valid (and reads your business name). When you click “Use my yAppointment colours” the same request reads your booking portal’s colours. - When the block editor loads the Service picker:
GET /api/v1/public/companies/{company ID}/serviceswith the site key and the editor’s language (for the service names). - When you click Disconnect:
POST /api/v1/wordpress/disconnectwith the site key, so yAppointment revokes it. - What is sent: the items listed above and the site key (in the
Authorizationheader). No data about your visitors is sent, and no data about your WordPress users except the e-mail address described above, which goes only in the address of the tab an administrator opens.
- When the Connect tab returns to WordPress:
yAppointment Terms of Service: https://yappointment.com/terms
yAppointment Privacy Policy: https://yappointment.com/privacy
Screenshots





Blocks
This plugin provides 1 block.
- yAppointment Booking
Installation
- In WordPress go to Plugins > Add New, search for “yAppointment”, then click Install Now and Activate (or upload the zip under Plugins > Add New > Upload Plugin)
- Go to yAppointment > Get Started
- Click Connect with yAppointment if you have an account, Create my free account if you are new, or Build it for me if you want us to set it up. yAppointment opens in a new tab: sign in, confirm this site, and the tab returns to WordPress connected
- Add the yAppointment Booking block to a page, or switch on the floating button
FAQ
-
Do I need a yAppointment account?
-
Yes. The plugin shows your yAppointment booking page on your site; your services, calendar and bookings live in yAppointment. Click Create my free account on Get Started to start a 14-day free trial (no credit card), or Build it for me to have us set it up from your website.
-
What does “Build it for me” do?
-
It opens yAppointment in a new tab with your e-mail address and your site’s address filled in. You send us the link of your website or social page, and we set up your account from it: services, prices and opening hours. When your account is ready, come back to Get Started and click Connect with yAppointment.
-
How do I connect my business?
-
Under yAppointment > Get Started, click Connect with yAppointment. yAppointment opens in a new tab; sign in, choose the business if you have several, and confirm this site. The tab comes back to WordPress and shows “Connected to “. Behind the scenes yAppointment gives this site its own site key; you never have to copy it.
-
Can I connect without the new tab?
-
Yes. In yAppointment open Company > Integrations > WordPress and generate a key for your site. In WordPress open Get Started > Advanced: connect manually with a site key, enter your company ID (or the link of your booking page) and the key, and click Test and connect.
-
How do I disconnect?
-
Click Disconnect on Get Started: the site key is revoked in yAppointment and removed from WordPress. You can also disconnect the site in yAppointment (Company > Integrations > WordPress); the plugin then shows “Disconnected in yAppointment” on its pages with a Reconnect button.
-
Why does my booking page show nothing?
-
The booking page, the block and the floating button are shown only while the site is connected with a valid site key. When the site is not connected, or the connection was removed in yAppointment, visitors see nothing; logged-in administrators see a short “yAppointment: not connected” note in its place. A shortcode or block can only show the business this site is connected to. Your site must also be served over HTTPS (see below).
-
Does the plugin need my yAppointment password?
-
No. You sign in on yAppointment’s own site, never in WordPress. WordPress stores only the site key, which lets it read what your public booking page already shows (business name, services, colours). It cannot read bookings or customers, and you can revoke it at any time.
-
Can the booking page open with a service already selected?
-
Yes. In the block, pick the service from the Service list. With the shortcode, add its ID:
[yappointment service="SERVICE_ID"]. The booking page opens with that service selected. -
Under yAppointment > Button Styles, pick the background, text and hover colours, the shape and the size, and click Save Changes. Use my yAppointment colours fills the colour fields with your booking page’s colours.
-
My booking page won’t load / shows blank
-
Your WordPress site must be served over HTTPS. The yAppointment booking page can be embedded in any HTTPS page and needs no configuration on your side; on a plain-HTTP site the browser refuses the embed and it stays empty (the plugin’s settings page warns about this). Also check that yAppointment > Get Started shows “Connected to “.
-
Can I put the booking on several pages?
-
Yes. Use the block or the shortcode on as many pages and posts as you like, even several on one page. The booking page adjusts its height to its content by itself (Auto Resize in the settings, on by default).
-
Which shortcodes are there?
-
[yappointment] shows your booking page in the page. Its options:
company_id: optional. Your connected business is used by default; only the business this site is connected to can be shownpage: booking, services, events, products, locations, employees, reviews, news, login, registerheight: initial height in pixels (default: 700)width: width (100%, 800px, 80vw)lang: ar, bg, cnr, cs, da, de, el, en, es, et, fi, fr, hr, hu, it, lt, lv, nb, nl, pl, pt, ro, sk, sl, sv, tr, uk (default: the language of the current page; omitted when the booking page does not support it)style: inline (default) or popupclass: an extra CSS class for the container-
service: a service ID; opens the booking page with this service selected[yappointment_button] adds a button that opens the booking in a popup. Its options:
-
company_id: optional, as above page: which page to open in the popup (default: booking)text: the button label (default: “Book Now”)lang: same values as aboveclass: an extra CSS class for the buttoncolor: the button colour in hex format (default: #4F46E5)service: a service ID; opens the booking page with this service selected
-
Is the booking popup accessible?
-
Yes. It keeps the keyboard focus inside while it is open, closes with the Escape key, and carries the ARIA roles screen readers need.
-
What does my site need?
-
WordPress 6.0 or newer, PHP 7.4 or newer, and HTTPS. A yAppointment account is required: the plugin shows your yAppointment booking page on your site.
-
Where can I get help?
-
Ask in this plugin’s support forum on WordPress.org, or contact yAppointment at https://yappointment.com/contact.
-
Is it GDPR compliant?
-
The plugin itself does not collect or store any user data. Your yAppointment account’s data processing policies apply to bookings made through the embedded booking page.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“yAppointment” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “yAppointment” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
2.3.3
- Change: the “almost ready” notice after activation shows only on the Plugins screen and the plugin’s own pages, not across the whole admin. It still disappears once the site is connected or the notice is dismissed.
- Change: translations come from translate.wordpress.org; the plugin no longer bundles its own translation files.
2.3.2
- Readme: a plain-words description for salon and clinic owners, the shortcode options in the FAQ, and new screenshots.
2.3.1
- Fix: Dialogs in an embedded booking page now open in the visible part of the screen on phones.
2.3.0
- New: Connect with yAppointment. Sign in to yAppointment in a new tab, confirm this site, and come back connected; the site receives its own site key and nothing has to be copied.
- New: “Create my free account” (sign-up with your e-mail address and site prefilled, connected when the account is ready) and “Build it for me” (the yAppointment team sets up your account from your website) on Get Started.
- New: Disconnect on Get Started revokes the site key in yAppointment. A connection removed in yAppointment shows “Disconnected in yAppointment” with a Reconnect button, and the block’s Service picker explains why it is empty.
- New: Advanced manual connection with a company ID and a site key generated in yAppointment (Company > Integrations > WordPress).
- Change: the booking page, the block and the floating button are shown only while the site is connected with a valid site key, and only for the connected business. Otherwise visitors see nothing and administrators see a short “not connected” note. The key is re-checked at most once an hour when an administrator opens the plugin’s pages, never on a visitor’s page view.
- Change: the plugin reads your business and services through the yAppointment API with the site key; the shared public client token is no longer used.
- New: yAppointment Admin URL under General Settings > Advanced (for development installations).
- Sites connected by link in 2.2.x need to connect once more: the Get Started notice appears again after the update.
2.2.1
- Fix: the dashboard’s troubleshooting and requirements now say what an embed really needs, a site served over HTTPS, instead of an outdated server header instruction.
- Fix: the booking block in the editor names your connected business instead of “No company ID set” when the block uses the business from the plugin settings, and its calendar icon shows again.
- Readme: screenshots, an HTTPS requirement in the FAQ, where to create an account and where to get help.
2.2.0
- New: connect by link. Paste the link of your booking page (or your company ID) in General Settings; the plugin checks it with yAppointment and shows “Connected: “. An unknown business is rejected and the previous value is kept; if yAppointment cannot be reached, the value is saved with a warning.
- New: Get Started screen and a first-activation notice: connect your business, then copy the shortcode or switch on the floating button.
- New: “Use my yAppointment colours” on the Button Styles page fills the button colours from your booking portal (you still click Save).
- New:
serviceattribute for[yappointment]and[yappointment_button], and a Service picker in the block: the booking page opens with that service selected. - New: API URL setting under General Settings > Advanced (with the Portal Base URL), for self-hosted and development installations.
2.1.0
- Fix: the default Portal Base URL is now https://app.yappointment.com (the customer portal). Sites still on the old default (https://portal.yappointment.com, the admin app) are moved automatically on update.
- The portal language follows the current page’s language (WPML/Polylang aware) across all 27 portal languages; when the page language is not supported, no language is passed and the portal chooses one.
- Default Language setting and block language select list every portal language.
- Portal Base URL accepts http:// for localhost, 127.0.0.1, [::1] and *.localhost (local development); everything else must be https://. Query strings and fragments are rejected.
- Fix: the floating button and popup-style embeds open the booking popup again.
1.0.0
- Initial release
- Inline embed shortcode
[yappointment] - Popup button shortcode
[yappointment_button] - Gutenberg block support
- Auto-resize via postMessage
- Accessible popup modal with focus trap
- Hungarian and English translations
