# Coupon Codes in Calendars

> Enable coupon codes on calendars, create discounts in Payments, and track totals in the Payments Tab. Boost conversions with targeted, time-bound offers.

- Source: https://docs.ghlcustomercare.com/docs/calendars-and-appointments/scheduling-appointments/coupon-codes-in-calendars
- Section: Calendars & Appointments / Scheduling Appointments
- Reading time: 6 min
- Images: 4, each explained below
- Modified on Tue, 8 Sep at 5:33 AM

---
Coupon Codes allow you to offer discounts on calendar bookings made via the booking widget. Customers can enter a valid coupon at checkout to receive a discount, which is then tracked inside the **Payments Tab** of the Appointment Modal.

---

**TABLE OF CONTENTS**

-   [Overview of Using Coupon Codes in Calendars](#overview-of-using-coupon-codes-in-calendars)
-   [Key Benefits of Using Coupon Codes in Calendars](#key-benefits-of-using-coupon-codes-in-calendars)
-   [Supported Calendars & Limitations](#supported-calendars-and-limitations)
-   [How to Use Coupon Codes in Calendars](#how-to-use-coupon-codes-in-calendars)
-   [Frequently Asked Questions](#frequently-asked-questions)
-   [Related Articles](#related-articles)

---

# **Overview of Using Coupon Codes in Calendars**

Coupon Codes in Calendars let customers enter a discount code during booking on the booking widget. When a valid code is applied, the widget recalculates the price in real time and the appointment record shows an itemized Discount (Coupon) line in the Payments Tab. You control coupon rules with controls including percentage or fixed amount, validity windows, usage limits, and eligibility by product or calendar.

---

## **Key Benefits of Using Coupon Codes in Calendars**

Coupons help you smoothly and easily run targeted promotions:

-   **Higher Conversion:** Timely discounts reduce checkout friction and cart abandonment.
    
-   **Flexible promotions:** Use percentage-based or fixed-amount discounts for seasonal or limited campaigns.
    
-   **Control & Targeting:** Limit redemptions per contact or overall ensuring a coupon is not over-used
    
-   **Better Customer Experience:** Customers can apply/remove a code directly in the booking widget with immediate price updates.
    

---

## **Supported Calendars & Limitations**

-   Coupon codes are **fully supported across all calendars** for both the Neo and Classic booking widgets, as well as for **Services (v2).**
    
-   Coupon codes are **not supported** with the older **Service Menu (v1)**. We strongly recommend moving to Services (v2) for a more modern booking flow, ongoing support, and access to features such as coupon codes.
    
-   Coupon codes are **only available through the booking widget** and cannot be applied to appointments created manually via the in-app modal. Support for this functionality is planned for a future release.
    

---

## **How to Use Coupon Codes in Calendars**

#### **Step 1:** Enable 'Accept Payments' and 'Coupon Codes' in Calendar

Before creating coupons, make sure payments are enabled on your calendar.

-   Go to **Calendar Settings** \> **Forms & Payments**.
    
-   Enable **Accept Payments**.
    
    -   Once enabled, a **Product** is automatically created in your **Products** Tab with a _Calendar_ tag (this product cannot be deleted).
        
-   Scroll further down and enable **Enable** **Coupon Code** option.
    
    -   This will add a coupon input field to your booking widget.
        

**Note**: You must enable coupons individually for each calendar where you want them active.

**Note for Services:** Coupon code visibility for Services is managed globally. Go to **Calendars > Services > Global Settings > Payment Settings** and configure **Coupon Codes**. When coupon codes are disabled, the coupon code field is hidden from the Services booking page.

![Step 1: Enable 'Accept Payments' and 'Coupon Codes' in Calendar (image 1 of 4)](https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/155053042348/original/2BmUcD2W08bw34s9w76leLfpB334HvfghQ.png)

**Step 1: Enable 'Accept Payments' and 'Coupon Codes' in Calendar (image 1 of 4)**

This screenshot appears in the "Step 1: Enable 'Accept Payments' and 'Coupon Codes' in Calendar" section of "Coupon Codes in Calendars". The text alongside this image reads: Note for Services: Coupon code visibility for Services is managed globally. Go to Calendars > Services > Global Settings > Payment Settings and configure Coupon Codes. When coupon codes are disabled, the coupon code field is hidden from the Services booking page. The navigation path used here is Calendars > Services > Global Settings > Payment Settings. Immediately after, the guide continues: Navigate to Payments Module > Coupons and click New Coupon.

- Path: Calendars > Services > Global Settings > Payment Settings
- What this covers: Note for Services: Coupon code visibility for Services is managed globally. Go to Calendars > Services > Global Settings > Payment Settings and configure Coupon Codes. When coupon codes are disabled, the coupon code field is hidden from the Services booking page.
- Controls: Calendar Settings, Forms & Payments, Accept Payments, Product, Products, Enable, Coupon Code, Note, Coupon Codes
- Next: Navigate to Payments Module > Coupons and click New Coupon.

Full procedure:

1. Go to Calendar Settings > Forms & Payments.
2. Enable Accept Payments.
3. Scroll further down and enable Enable Coupon Code option.

#### **Step 2:** Create a Coupon

Navigate to **Payments Module > Coupons** and click **New Coupon**.

You’ll see the following options:

-   **Coupon Code**: Enter a custom code (e.g., `10OFF`) or click **Generate** to auto-create one.
    
-   **Coupon Type**: Choose between:
    
    -   _Percentage Coupon_ (e.g., 10% off).
        
    -   _Fixed Amount Coupon_ (e.g., $50 off).
        
-   **Discount Offered**: Enter the percentage or fixed discount value.
    
-   **Start & End Date/Time**: Define the coupon validity window.
    
-   **Limit Redemptions**: (Optional) Restrict how many times the coupon can be used overall.
    
-   **Limit to Products/Offers**: Select specific calendars or products where the coupon will apply.
    
-   **Limit to One Use Per Customer**: Prevents multiple uses by the same customer.
    

Once saved, the coupon is ready to share with your customers.

For more information on creating coupons, see: How to Create Coupons for Products

![Step 2: Create a Coupon (image 2 of 4)](https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/155053042418/original/w6kgwOtoYOhG_9Kz9DHcjiCAh__kzqBt8g.png)

**Step 2: Create a Coupon (image 2 of 4)**

This screenshot appears in the "Step 2: Create a Coupon" section of "Coupon Codes in Calendars". The text alongside this image reads: For more information on creating coupons, see: How to Create Coupons for Products. This part of the guide covers 1 field, listed below. Immediately after, the guide continues: When booking via the calendar widget, customers will see a Coupon Code input box. If the code is valid: If invalid.
- What this covers: For more information on creating coupons, see: How to Create Coupons for Products
- Fields: Coupon Type: Choose between:
- Controls: Payments Module > Coupons, New Coupon, Coupon Code, Generate, Coupon Type, Discount Offered, Start & End Date/Time, Limit Redemptions, Limit to Products/Offers, Limit to One Use Per Customer
- Next: When booking via the calendar widget, customers will see a Coupon Code input box. If the code is valid: If invalid:

Full procedure:

1. Coupon Code: Enter a custom code (e.g., 10OFF) or click Generate to auto-create one.
2. Coupon Type: Choose between:
3. Discount Offered: Enter the percentage or fixed discount value.
4. Start & End Date/Time: Define the coupon validity window.
5. Limit Redemptions: (Optional) Restrict how many times the coupon can be used overall.
6. Limit to Products/Offers: Select specific calendars or products where the coupon will apply.
7. Limit to One Use Per Customer: Prevents multiple uses by the same customer.

#### **Step 3:** Customer Experience

-   When booking via the calendar widget, customers will see a **Coupon Code input box**.
    
-   If the code is valid:
    
    -   The discount is applied instantly.
        
    -   The adjusted total shows before checkout.
        
-   If invalid:
    
    -   An error message appears.
        

When **Charge upfront** is enabled, the final amount after the coupon determines whether payment is collected.

-   If the coupon leaves an amount greater than **$0**, the customer provides payment details and pays the discounted amount.

-   If the coupon reduces the final amount to **$0**, the booking continues without collecting card details or processing a payment.

![Step 3: Customer Experience (image 3 of 4)](https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/155053042475/original/22Nepc6ubOIoY2QkZJ9V__078Aw5h90NfA.png)

**Step 3: Customer Experience (image 3 of 4)**

This screenshot appears in the "Step 3: Customer Experience" section of "Coupon Codes in Calendars". The text alongside this image reads: If the coupon reduces the final amount to $0, the booking continues without collecting card details or processing a payment. This part of the guide covers 2 fields, listed below. Immediately after, the guide continues: All coupon and payment details are visible in the Payments Tab of the Appointment Modal.
- What this covers: If the coupon reduces the final amount to $0, the booking continues without collecting card details or processing a payment.
- Fields: If the code is valid:, If invalid:
- Controls: Coupon Code input box, Charge upfront, $0
- Next: All coupon and payment details are visible in the Payments Tab of the Appointment Modal:

Full procedure:

1. When booking via the calendar widget, customers will see a Coupon Code input box.
2. If the code is valid:
3. If invalid:

#### **Step 4:** Tracking Coupon Usage

All coupon and payment details are visible in the **Payments Tab** of the Appointment Modal:

-   Coupon applied.
    
-   Discount amount.
    
-   Adjusted total.
    
-   Attendee-level breakdown of payments.
    

![Step 4: Tracking Coupon Usage (image 4 of 4)](https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/155053042516/original/FurzP0dgxoQDfjPqmhjQ3YDQoQX9kbxrgQ.png)

**Step 4: Tracking Coupon Usage (image 4 of 4)**

This screenshot appears in the "Step 4: Tracking Coupon Usage" section of "Coupon Codes in Calendars". The text alongside this image reads: Coupon applied. Discount amount. Adjusted total. Attendee-level breakdown of payments. Immediately after, the guide continues: Following the release on 22nd December 2025, there have been changes to how orders, invoices, and transactions behave when coupon codes and calendar payments are involved. This section clarifies the new behavior and addresses common….
- What this covers: Coupon applied. Discount amount. Adjusted total. Attendee-level breakdown of payments.
- Controls: Payments Tab
- Next: Following the release on 22nd December 2025, there have been changes to how orders, invoices, and transactions behave when coupon codes and calendar payments are involved. This section clarifies the new behavior and addresses common questions around $0 transactions and missing invoices.

Full procedure:

1. Coupon applied.
2. Discount amount.
3. Adjusted total.
4. Attendee-level breakdown of payments.

---

## **Important Update: Order Creation & $0 Transactions**

Following the release on **22nd December 2025**, there have been changes to how orders, invoices, and transactions behave when coupon codes and calendar payments are involved. This section clarifies the new behavior and addresses common questions around **$0 transactions** and **missing invoices**.

### **1\. Change in Invoice Creation Behavior**

Earlier, when a booking involved partial payments, a **partially paid invoice** was created automatically.  
**Post this release**, an **invoice will no longer be created** in such cases. Instead, an **order is created**.

-   Payments (if required) can still be collected **against the order**
    
-   This change helps standardize order-based payment tracking across the platform
    

### **2.** **$0 Calendar Booking Payment Behavior**

When **Charge upfront** is enabled, payment collection is based on the final amount due after any coupon or discount is applied.

-   If the final amount is greater than **$0**, the customer is asked to provide payment details and the final amount is charged.
    
-   If the configured booking amount is **$0**, the customer is not asked to provide card details and no payment is processed.
    
-   If a coupon reduces the final amount to **$0**, the customer is not asked to provide card details and no payment is processed.
    
-   If a coupon reduces the price but leaves an amount greater than **$0**, the customer is asked to provide payment details and the remaining discounted amount is charged.
    

This ensures that customers making a free booking do not need to enter unnecessary payment details or go through a **$0 payment transaction**.

> **Note:** If you want to save a customer's card details without charging them during booking, use **Collect Card on File** instead of configuring a $0 upfront payment.

### **3\. When an Order Is Created**

-   An **order will always be created** if your **calendar has payments enabled**
    
-   If **no payment is enabled** on the calendar, **no order will be created**
    

This behavior applies even when:

-   No immediate payment is collected at the time of booking
    

### **4\. Impact on Existing Workflows (Invoice Triggers)**

If you have workflows configured using the **“Invoice Created”** trigger, you’ll need to update them.

**Action required:** Replace **Invoice Created** triggers with **Order Created** triggers to ensure workflows continue to run as expected

---

## **Frequently Asked Questions**

**Q: How do I see the discount after booking?**  
Open the appointment and check the Payments tab. You’ll see Discount (Coupon), Amount Paid, and Remaining Balance totals.

**Q: Can I edit or disable a coupon after it goes live?**  
Yes. Open the coupon in **Payments > Coupons** to update limits/dates or disable it. Changes affect future bookings.

**Q: How can I test a coupon without charging a real card?**  
Set the calendar’s **Payment Mode** to **Test**, complete a test booking using your gateway’s test credentials (e.g., Stripe test cards), then switch back to **Live** when you’re done.

**Q: Can customers stack more than one coupon on a single booking?**  
 No. Only one active code per checkout is supported. Customers can remove a code and apply a different one before paying.

**Q: Are coupon codes case-sensitive?**  
Codes are not case-sensitive. For example; if a coupon code is 'SUMMER25' and a customer enters in 'Summer25', the coupon will apply.

---

## **Related Articles**

-   [Payments Tab in Calendars](https://docs.ghlcustomercare.com/docs/calendars-and-appointments/scheduling-appointments/payments-tab-in-calendars)
-   Create Coupons in Payments
-   [Collecting Payments in Calendars](https://docs.ghlcustomercare.com/docs/calendars-and-appointments/calendar-settings-and-preferences/collecting-payments-in-calendars)
-   [Recurring Appointments](https://docs.ghlcustomercare.com/docs/calendars-and-appointments/creating-calendars/recurring-appointments)
-   [Add Guests Features in Calendar Bookings](https://docs.ghlcustomercare.com/docs/calendars-and-appointments/getting-started-w-calendars/add-guests-features-in-calendar-bookings)
-   [Workflow Trigger - Coupon Redemption Limit Reached](https://docs.ghlcustomercare.com/docs/workflows/payments-workflow-triggers/workflow-trigger-coupon-redemption-limit-reached)
-   [Workflow Trigger - Coupon Code Expired](https://docs.ghlcustomercare.com/docs/workflows/payments-workflow-triggers/workflow-trigger-coupon-code-expired)
-   [Workflow Trigger - Coupon Code Redeemed](https://docs.ghlcustomercare.com/docs/workflows/payments-workflow-triggers/workflow-trigger-coupon-code-redeemed)
-   [Workflow Trigger - Coupon Code Applied](https://docs.ghlcustomercare.com/docs/workflows/payments-workflow-triggers/workflow-trigger-coupon-code-applied)

---

Documentation for GHL Customer Care. Support: support@ghlcustomercare.com