M cenaly.com

Free · slots from a live schedule

Take bookings from your site — let clients pick the time themselves

For salons, studios and private practices: the client picks a service, a specialist and a free slot right on your website. Availability comes from the Cenaly.com appointment journal — staff schedules, breaks, holidays and service buffers are already applied, so only genuine slots stay in the grid.

  • Clients book themselves — in the evening, at the weekend and while you are with a guest
  • Only genuine slots in the grid: staff schedules, breaks, holidays and service buffers applied
  • The widget and the appointment journal are free — no limit on bookings, staff or sites

No card · a minute to sign up, another for the tag · settings reach your site in 5 minutes

Online appointments
One tag for every widget8 of 12 are freeShadow DOM — layout-safeLabels in your page languageTwo clouds: AWS and Russia
for the widget and the journal — no charge per booking taken
$0
steps: service, specialist, time, contacts — the unnecessary ones are skipped
4
days in the date strip, with days off marked
14
languages of widget labels: four in the bundle, the rest as language packs
45

How it works for the visitor

  1. 1

    The client picks a service

    The list comes from your service menu with duration and price. If there is only one service, the step is skipped and they go straight to times.

  2. 2

    They pick a specialist or “anyone available”

    If only one person performs that service, they are attached automatically. “Anyone available” lets the system pick whoever is free in that slot.

  3. 3

    They take a free slot

    A 14-day date strip and a time grid: staff schedules, breaks, holidays, service buffers and existing appointments are all accounted for. The “⚡ Earliest: today 17:30” chip leads to the first free slot in one tap.

  4. 4

    They leave a name and a phone

    The widget waits for the server before saying “you’re booked”: then it shows the booking number, a Telegram reminders button, a calendar file and a “manage booking” link.

Set up in three steps

1

Sign up and add your site

A free Cenaly.com account and your site domain in the "My website" section.

2

Paste one tag

One line before </body> — in your theme, in a Tilda or Wix HTML block, in Shopify's theme.liquid. It serves every widget.

3

Switch widgets on in the admin

Each widget is a toggle and a settings form. Changes reach your site without touching code; CDN cache is five minutes.

The tag

<script src="https://cdn.cenaly.com/site/v1.js" data-domain="your-site.com" async></script>

One tag for all widgets. `data-domain` is your site; everything else lives in the admin.

Set bookings up the way you work

Shorten the path from interest to booking

A four-step wizard that skips what isn’t needed: one service goes straight to times, one eligible specialist is attached automatically. The contact step shows a summary with “change” links, and the name and phone from the previous booking are prefilled. Best for practices with one or two services.

Offer only real availability

The grid is computed by the same core as booking on our storefront: the location’s booking hours, staff schedules and one-off days, holidays and breaks, service buffers and current occupancy. Best for anyone with a live schedule rather than a “call us” page.

Link straight to a service or a specialist

`data-service`, `data-master` and `data-open` open the widget on the right step — a “Book Anna for a haircut” button next to her photo. A broken id quietly falls back to the full wizard. Best for sites with staff and service pages.

Confirm a booking, not a form submission

A successful submission is not yet an appointment: the widget waits for server confirmation. If the slot was taken meanwhile, the client sees it, the board is re-read and they return to the grid. Without an answer it honestly says “processing”, and a double click never creates a second booking. Best where two people go for the same slot.

Take a deposit without collecting cards yourself

With a deposit policy and a live payment provider, the client sees the amount at the contact step and pays on our secure page — no card is entered on your website. Best where no-shows are the problem.

Catch the ones who missed out

When a day is fully booked, a waitlist appears: the client leaves an email and hears when a slot frees up. The request holds nothing, and that is stated before they send it. Best for fully booked specialists.

Where it pays off

Salons and barbershops

The client picks a specialist and a slot in the evening, and in the morning you see the appointment in the journal with the rest.

A specialist’s page

`data-master` opens the widget on their schedule, so the visitor doesn’t hunt for the right person in a list.

A service page

`data-service` leads to a specific treatment: after reading about a manicure the client doesn’t have to find it again.

A booking landing page

`data-open="true"` opens the wizard as the page loads — made for paid campaigns.

A QR code in the studio or on a card

An action link opens the booking for the right service straight from printed material.

A clinic with several specialists

“Anyone available” covers the case of “I don’t mind who, as long as it’s today”.

How it looks on your site

Colour, position and labels adapt to your site. The widget lives in a Shadow DOM — your styles don't break it, and it doesn't break yours.

On desktop

On mobile

On your side: On a service or specialist page the tag opens pre-filled (`data-service`, `data-master`); on a booking landing page it opens expanded right away (`data-open`).

Where it goes

Exact menu names and plan requirements, taken from each platform’s own help center.

Sites built with our website builder ship with the widgets already wired — nothing to paste.

Step-by-step guides per platform — in the help center →

Pricing

Free

  • The widget and the appointment journal are free — no limit on bookings, staff or sites
  • Telegram reminders are included: confirmation, 24 hours and 2 hours before the visit
  • Only the “Appointment autopilot” extension is paid: confirmation, reschedule and cancellation emails, an email reminder and the widget funnel in the journal
  • There is no commission per appointment, however many arrive from the site
  • We charge nothing per appointment, per specialist, per visitor or per domain — only the automation on top of the widget is paid

Why free

Widgets are the door into the Cenaly.com platform: requests, chats and orders from your site land in the same admin as everything else, and some owners later buy extensions. We earn from plans and from four paid add-ons rather than from the widgets — which is why we charge nothing per visitor, impression, request or domain.

Add it for free

With and without

Without the widget With the widget
When people can book ✕ Booking is possible only while someone is answering calls and messages Clients book at night and at weekends, with no call and no sign-up
Where slots come from ✕ Free time lives in the manager’s head or in a paper diary Slots are computed from schedules, breaks, holidays and service buffers — as in your journal
Two people, one slot ✕ A clash shows up after the call, and someone has to ring back The slot goes to the first booking the server confirms; the second person returns to the grid
Reminders ✕ Visits are reminded about by hand, or not at all Clients switch on Telegram reminders and add the visit to their calendar
Cost ✕ Every booking costs manager time: check the schedule, call back, write it down The widget and the appointment journal are free, with no limit on bookings or staff

Honest about the limits

  • The widget needs booking enabled for the location and at least one service item in the menu: without them it quietly doesn’t show — we don’t draw empty panels.
  • There is deliberately no cancelling or rescheduling inside the widget: that happens on the secure page behind the “manage booking” link from the confirmation.
  • Times are shown in the venue’s time zone and labelled as such — slots are not converted into the client’s zone.
  • A deposit is only available with a deposit policy set and a live payment provider for your country and currency.
  • The waitlist holds nothing: it is a “tell me when it frees up” request, and the client sees that before sending it.
  • The widget changes the page layout, so on sites built with our website builder it is off by default — booking there is native.

Who it's for

  • Beauty salons, barbershops and nail studios
  • Massage, cosmetology, private practices and clinics
  • Any service booked to a time and to a person

What an appointment widget is and when you need one

An appointment widget is a button behind which a client picks a service, a specialist and a time themselves. What sets it apart from a contact form is that it doesn’t say “leave a request” — it shows the specific slots that are genuinely free, and ends with a confirmed appointment in the journal.

It belongs wherever bookings are made to a time and to a person: salons, barbershops, cosmetology, massage, private practices. Especially when the decision to book is made in the evening or at the weekend — when there is nobody to call, but the wish to book is there.

Here the widget is free and runs off the same appointment journal as the dashboard: availability, staff schedules, holidays and service buffers live in one place. The server confirms separately — until it does, the client is never told they are booked. To start you need the shared “My website” tag and the Appointments toggle; the schedule is then managed in the dashboard.

The appointment widget is the wrong tool where the service isn't tied to a time and a person: for "leave a request, we'll call you back" a callback button is enough and it won't ask you to keep a schedule. It differs from table booking in that it occupies a named specialist for a known duration and respects their shifts and holidays — if you seat parties in a dining room, the neighbouring widget is yours.

Questions and answers

Does the client need an account?

No: a name and a phone number on the last step, without an app or a sign-up. If they booked before from the same device, the fields are prefilled and a “not me” button clears them.

What if two clients pick the same slot?

Server confirmation decides: the slot goes to the first confirmed booking. The second person sees that it is taken, the availability board is re-read (its cache is 60 seconds, plus a refresh when the tab regains focus) and they choose another time — instead of an awkward call afterwards.

Where will I see bookings from the site?

In the appointment journal in your dashboard, with the service, specialist, time and the client’s contact — next to bookings taken by phone and on the storefront. Nothing has to be copied over from a form.

Are client reminders included for free?

Yes. After booking the client can enable Telegram: confirmation, reminders 24 hours and 2 hours before the visit, and a cancel button. There is also a calendar file and a “manage booking” link.

Can I take a deposit?

Yes, with a deposit policy set and a payment provider live for your country and currency. The client sees the amount before sending the booking and pays on our page — no card is entered on your site.

Can I link straight to a service or a specialist?

Yes: `data-service` and `data-master` open the widget on the right step, and `data-open="true"` opens it as the page loads. QR action links do the same; a broken id opens the ordinary wizard.

How do I install it on WordPress or Tilda?

The shared “My website” tag plus the Appointments toggle — one tag powers all 12 widgets. WordPress — footer.php or a plugin, Tilda — HTML code in head, Shopify — theme.liquid, Webflow — Custom code. Changes arrive within 5 minutes: widget files are served from a CDN with that cache. A tag inserted through Google Tag Manager is not seen by our installation check — look at the site yourself.

Will the appointment widget slow my site down?

The appointment widget is about 50 KB gzipped — it carries the slot grid, the calendar and the specialist picker. It loads as a separate file with the async attribute after the page has rendered, and the labels for the visitor's language arrive in a pack of roughly 1.3 KB rather than all forty languages at once. Free slots are computed by our server; the guest's browser only renders the answer. The panel lives in a Shadow DOM.

So what actually costs money?

The widget, the appointment journal and Telegram reminders are free. Only the “Appointment autopilot” extension is paid: confirmation, reschedule and cancellation emails, an email reminder before the visit and the widget funnel in the journal. Its price is in the extensions catalogue.

What exactly loads on my site?

One loader — about 26 KB gzipped, with the async attribute: it reads which widgets you switched on and pulls only those, as separate files. A widget you left off is never downloaded, and the weight of each one you did switch on is stated on its own page.

Will it break my layout?

No. Widgets render inside a Shadow DOM: your site's CSS doesn't affect them and theirs doesn't leak out.

Which language will the widget speak?

It reads your page's `<html lang>` or a `data-lang` attribute on the tag. Built-in labels are translated into 45 languages — the guest chat covers the same list; your own texts you write in the admin in the languages you need.

Where is the data stored?

In the cloud your account lives in: cenaly.com — AWS, cenaly.ru — Yandex Cloud in Russia. Requests, conversations and bookings stay within the brand's contour.

More — installation per platform, settings and troubleshooting — in the help center. Installation guide →

Open your schedule while the client is on your site

Free. One tag and a filled-in staff schedule — and clients pick their own time without calling. Signing up takes a minute, installing the tag another one.

Start for free

No card required · one tag for all 12 widgets · Telegram reminders included