Calendar

Shared Daily Booking Limit Across Multiple Calendars
Summary: We would like the ability to set a shared maximum daily booking limit that applies collectively across multiple calendars, rather than only per individual calendar. Current Behavior: Currently, the daily booking limit can only be configured per calendar. If the same staff member is assigned to multiple calendars (e.g., separate calendars for different service types), each calendar enforces its own independent limit. This means the total number of bookings across all calendars can exceed the intended daily maximum. Desired Behavior: A setting that allows multiple calendars to share a single daily booking cap. For example, if the shared limit is set to 3, then once 3 appointments have been booked across any combination of the linked calendars on a given day, no further bookings would be available on any of those calendars for that day — regardless of which calendar the bookings came from. Use Case: A life coach or consultant offers multiple types of sessions — for example, separate calendars for male and female clients, or for different consultation formats (introductory sessions, deep-dive sessions, transformation programs). Unlike a hairdresser or other service provider whose limitation is primarily physical, a coach experiences significant mental and emotional fatigue. Conducting too many intensive sessions in a single day directly impacts the quality of their work and the experience of their clients. For this reason, it is essential to cap the total number of sessions per day across all service types combined — not just per individual calendar. There is currently no native way to enforce this combined limit, which means clients can inadvertently over-book a coach beyond what is sustainable. Proposed Solution: Introduce a "Calendar Group Daily Limit" option in Calendar Settings or Calendar Group settings When enabled, all calendars within the group share the same daily booking counter Once the shared limit is reached, all calendars in the group automatically block further bookings for that day
0
·
New Feature
Native Sale Pricing on Services V2 — Run Visible Discounts on Services Without Coupon Codes
There is currently no way to put a service "on sale" in Services V2 and have the original price and the sale price both visible to customers on the booking page. The only way to offer a discount is through coupon codes, which require the customer to know the code, type it in, and apply it at checkout. This means if a detailing shop, med spa, salon, cleaning company, or any service business wants to run a Black Friday sale, a slow- week flash promotion, or a seasonal discount on a specific service, they have two bad options: Change the actual service price to the sale price. The customer sees the lower number but has no idea it is a deal. There is no strikethrough, no "was $199, now $149," no urgency. The original price disappears entirely, and when the sale ends the business has to remember to manually change it back. If they forget, they are undercharging every customer who books after the promotion. Create a coupon code and tell customers to use it. This adds friction to the booking flow — the customer has to find the code, remember it, and type it into a separate field. Every extra step in a booking flow reduces conversion. And for a public sale where every customer gets the discount, requiring a code makes no sense. Nobody hands a coupon to every person who walks into the store and then makes them read it back at the register. What we need: Add a native Sale Price field to each service in Services V2. When the business enters a sale price, the booking page automatically displays both the original price and the sale price — with the original price shown as a strikethrough and the sale price highlighted as the current amount. The customer sees: ~~$199~~ $149 No code needed. No extra step. The discount is applied automatically to every booking made while the sale is active. How it should work: Each service gets an optional Sale Price field and an optional Sale Start Date and Sale End Date. If no dates are set, the sale runs indefinitely until the business manually removes it. If dates are set, the sale activates and deactivates automatically — no risk of forgetting to revert the price. When a sale is active, the booking page renders the original price with a strikethrough and the sale price as the current amount. This is standard e-commerce UX that every customer already understands. The original service price is never modified. It stays stored as-is. The sale price is a separate field layered on top. When the sale ends (either manually or by date), the service automatically reverts to the original price with zero action required from the business. Sale pricing should stack with coupon codes if the business wants both. If a service is on sale for $149 (down from $199) and the customer also applies a valid coupon code for 10% off, the coupon applies to the $149 sale price — resulting in $134.10. This lets businesses run public sales AND reward specific customers (referrals, VIPs, email subscribers) with an additional code-based discount on top. If the business does not want stacking, they can simply not issue coupon codes during the sale period. The sale price should be respected everywhere the service price appears: the public booking page, the New Booking screen when staff books internally, calendar confirmations, invoices, and any workflow merge fields that reference the service amount. Why this matters beyond just convenience: Strikethrough pricing is one of the most well-documented conversion drivers in retail and e-commerce. Showing what the price was next to what the price is now creates anchoring — the customer perceives the deal relative to the original value, not in isolation. A service at $149 feels different when it is sitting next to a crossed-out $199 than when it is just listed at $149 with no context. Right now, every e-commerce platform (Shopify, WooCommerce, Square, Stripe) supports native sale pricing with strikethrough display. Services V2 is GHL's commerce engine for service businesses, but it is missing this basic merchandising capability. Adding it would bring Services V2 to parity with what every product-based commerce platform already offers and unlock seasonal promotions, flash sales, and strategic discounting for the thousands of service businesses on GHL — without adding friction to the booking flow.
0
·
New Feature
Load More