🏷️ Add Role Badges to Your Staff for Services
🧭 Overview
When a service has multiple staff members — e.g., junior and senior stylists, different specialists, varying levels of experience — customers picking from a plain list of names often can't tell who's the best fit.
You can now add a short role tag, like "Lead Therapist" or "Senior Consultant," to each staff member's profile, and it shows up as a badge right where customers choose who to book with — making that choice easier and giving your staff's role more visibility.
🚀 What's New?
✅ Create reusable badges
Create as many role badges as you need — e.g., Lead Therapist, Senior Consultant, and so on. When assigning a badge to a staff member, every badge you've already created shows up to pick from, so you're not recreating the same tag for each person.
✅ One role tag per staff member
Add a single text-based role badge (up to 30 characters) for each staff member from your staff details settings.
✅ Pick a color for each badge
Each staff role tag can have its own color — so roles are visually distinct at a glance instead of every badge looking the same.
✅ Shown as a badge during staff selection
When a staff member has a tag configured, it appears as a badge on their card during staff selection on the booking widget — styled in a lighter shade of your widget's primary color so it fits your theme without dominating the card.
✅ No empty badges
Staff without a configured tag show no badge or placeholder — their card stays clean.
✅ Updates reflect right away
Edit or remove a badge, and the booking widget reflects the change the next time it loads.
✅ Consistent on desktop and mobile
The badge renders the same way across both desktop and mobile widget layouts.
🧩 How to Use It
- Go to Services → Staff. Edit the staff member for whom you would like to add a badge
- Under the Basic details tab, navigate to the Staff badge dropdown.
- Add/select a badge for the staff member
- Save — the tag now shows as a badge next to that staff member during staff selection on your booking widget.
🎯 Why This Matters
- Helps customers quickly identify the right person to book with when there's more than one staff member to choose from.
- A single, simple tag keeps setup light and easy to scan — no need to build out full staff bios.
- On-brand badge styling keeps the booking experience polished without extra design work on your end.
- Consistent across desktop and mobile views, so the experience doesn't change based on how a customer books.




💰 Custom Pricing for Service Appointments
🧭 Overview
Service prices don't always match what should be charged — negotiated pricing or a one-off scenario with custom pricing can all mean the final price differs from what's configured.
With this release, you can now edit a service's price directly from the Services appointment modal before saving a new appointment or while editing/duplicating an existing appointment, without touching the service's global pricing.
🚀 What's New?
✅ Editable service price on the appointment itself
When creating, editing or duplicating a Services appointment, you can now adjust that service's price right in the appointment modal — the total updates immediately to reflect it.
✅ Appointment-specific, never global
A price edit only applies to that one appointment. The service's globally configured price is never changed, so every other booking keeps using the standard rate.
✅ Sensible validation, built in
Zero is a valid price for cases like complimentary services, but negative values are blocked with a clear validation error before the appointment can be saved.
✅ A clear "Custom" tag on edited prices
Once a service's price is edited on an appointment, it's marked with a Custom tag right next to the amount — so it's obvious at a glance that this booking isn't using the standard price.
✅ Overrides staff-specific pricing too
If a staff member has their own custom price configured for a service, entering a price on the appointment overrides that staff-specific price as well — the appointment always uses whatever price you set there.
✅ Available on mobile app
You can edit a service's price for an appointment directly from the mobile app as well.
🧩 How to Use It
- Open the service appointment modal (create, edit, duplicate).
- Click the edit icon next to a service.
- Enter a new price for the service.
- Save as usual. The custom price applies only to that appointment.
🎯 Why This Matters
- Lets staff charge the actual negotiated or discretionary price without a workaround or offline settlements.
- Keeps global service pricing untouched, so one custom price never leaks into other bookings.
- Works the same way whether staff are at a desk or on the go with the mobile app.



🕵️ Calendar AI Can Now Tell You Why a Slot Isn't Bookable
🧭 Overview
Calendar AI — the assistant you already use to build calendars conversationally — now handles availability troubleshooting too. Users can now ask, in plain language, why a user or calendar isn't isn't bookable, and get an accurate, conversational answer instead of digging through the internal Troubleshooting View grid or filing a support ticket.
🚀 What's New?
✅ Ask Calendar AI why a slot isn't available
Ask something like "why isn't 5 PM on Aug 8 available on my Sales Call calendar?" and get a direct answer naming exactly what's blocking it.
✅ Check a team member instead of a specific calendar
Ask about a person by name — e.g. "why isn't Jane available on Friday?" — and Calendar AI resolves it across every calendar they serve, or asks which one (or their overall schedule) when they serve more than one.
✅ Whole-day summaries instead of slot-by-slot answers
Ask about a full day and get one de-duplicated, per-segment summary (e.g. "mornings are outside business hours, 2–3 PM is a specific conflict") — with slot-level detail available if you ask a follow-up for it.
✅ Smart disambiguation, only when it's actually needed
Calendar AI figures out whether a bare name means a calendar, a team member, or both, and only asks a clarifying question when there's genuine ambiguity — never when your message is already specific.
✅ No hallucinated reasons, ever
If the reason engine can't produce a clean answer or if it fails due to any technical reason, Calendar AI says so plainly and links into the full Troubleshooting View instead of guessing or inventing an explanation.
🧩 How to Use It
No setup needed — these improvements are live automatically.
- Go to Calendars and use the Calendar AI launcher.
- Select the Troubleshoot availability chip or ask a plain-language question about a slot, a whole day, a calendar, or a team member — Calendar AI asks a clarifying question when it needs one.
🎯 Why This Matters
- Appointment-booking issues already account for roughly a third of calendar-related support issues — this puts an instant, accurate answer directly in the user's hands instead of routing to Support.
- Strict no-hallucination guardrails mean every answer is trustworthy — Calendar AI never guesses or fabricates a reason.
- Privacy and permission checks are enforced by default, so troubleshooting never exposes more than a user is already allowed to see.


🔄 Enhanced Two-Way Sync for Service Appointments
🧭 Overview
When a service appointment's calendar event was rescheduled or cancelled directly from a connected third party calendar (e.g., Google or Outlook calendar) — the change previously updated the calendar event only, leaving the service appointment record out of sync. For single-service appointments, this is now fixed: changes made directly on a third-party calendar sync back correctly everywhere. Multi-service appointments would still remain out of sync if directly updated on third party calendars.
🚀 What's New?
✅ Full two-way sync for single-service appointments
When a service appointment has just one service/event, a reschedule or cancellation made directly in third party calendars (e.g., Google or Outlook) now updates the calendar event and the service appointment together — so your third-party calendar and in-app calendar always agree.
✅ Correct appointment data everywhere you look
For single-service appointments, the calendar view, the appointment list view, and the appointment's view-details all now correctly reflect reschedules or cancellations made directly on a connected third-party calendar.
🧩 How to Use It
- No setup needed — these improvements are live automatically.
- Single-service appointments: Reschedule or cancel directly from third party calendars (e.g., Google or Outlook) — the change syncs back automatically, and shows correctly in the calendar, appointment list, and view-details.
- Multi-service appointments: These are not yet synced with third-party calendar changes — continue managing schedule changes for multi-service appointments directly in-app to avoid your appointment and calendar event going out of sync.
🎯 Why This Matters
- Closes a double-booking risk that occurred when a third-party cancellation or reschedule for a single-service appointment wasn't reflected in the in-app appointment.
- Keeps the calendar view, appointment list, and appointment details in agreement for single-service appointments, no matter where the change is made.
- Reduces support reachouts stemming from mismatched appointment times or statuses between the services calendar and connected calendars.
🌐 Calendars, Services & Rentals Notifications Now Speak Your Business's Language
🧭 Overview
Notification templates have historically shipped in English only, leaving multi-language businesses to manually translate every notification themselves. This release brings internationalization (i18n) to notification templates across Calendars, Services, and Rentals — default templates now localize based on the Business Profile's Platform Language, while anything a user has already customized stays exactly as saved. Newly created calendars, Services and Rentals locations get localized defaults automatically; existing ones keep their current templates until a user resets them to default.
🚀 What's New?
✅ Localized templates across Calendars, Services, and Rentals
Notification templates now display in the appropriate language automatically — across Email, SMS, and WhatsApp channels, wherever each product supports them.
✅ Coverage matches each product's own notification types
Calendars covers Assigned User, Additional Email, Additional Phone, Contact, and Guest templates. Services and Rentals covers all recipients of each notification as well.
✅ One consistent language source
All notification templates resolve their language from the Business Profile Platform Language — a single, consistent source across every product, recipient type, and channel.
✅ Your customizations are never touched
Any template that's already been edited is preserved exactly as saved — the system will never overwrite, retranslate, or reset a customized template. Only untouched, default templates get localized.
✅ New calendars, Services and Rentals locations get localized defaults automatically
Newly created calendars, services and rentals locations display their default notification templates in the Business Profile Platform Language right away — no extra steps needed.
🧩 How to Use It
- Calendars: Go to Calendar Settings → Notifications for the calendar you want to update.
- Services / Rentals: Go to Global Settings → Notifications.
- New calendars, Services, and Rentals: Nothing to do — default templates already display in the Business Profile Platform Language.
- Existing calendars, Services, and Rentals: Templates keep their current (English) content by default, even if they've never been edited. To pick up the localized version, click Reset to Default on the relevant notification template — this is what triggers the translation.
🎯 Why This Matters
- Multi-language businesses no longer need to manually translate notification templates across Calendars, Services, or Rentals.
- A single source of truth for language — the Business Profile — keeps behavior predictable and easy to reason about across every product and recipient type.
- Protects existing work — nothing a user has already customized gets reset or retranslated.
- New calendars, services, and rentals work out of the box, and existing ones can opt in with one click — no forced, silent overwrite of what's already live.




