Grow Your Business

Build a BFCM Offer Calendar Without Confusing Your Customers

Plan BFCM offer handoffs with a practical calendar, clear customer messages and checks for discount timing and eligibility.

A paper calendar with colored planning blocks beside a laptop, notebook, and wrapped gifts.

When a holiday offer changes, the discount, the message and the products it covers must change together. A calendar helps a small team see the handoff before a shopper finds an outdated banner. It is an internal source of truth, not a promise that every channel updates automatically.

Start with the decisions customers need

For each offer, record its audience, eligible products or collections, benefit, start and end time, time zone, restrictions, and what happens when it ends. Add the owner of the discount and the owner of each customer-facing message. Treat internal review and public launch as separate times.

Shopify says discount-code expiry uses the time zone displayed in your admin. Check your store time zone, the actual start and end fields, and any applicable eligibility before sending a message. A Shopify Community discussion about scheduling promotions also raised questions about sale badges and homepage banners; those questions illustrate why the visible storefront deserves its own check, not proof of a platform limitation.

An illustrative calendar

Imagine a stationery shop. These offers and dates are hypothetical; they are not active discounts or observed results. The shop uses Eastern Time for its campaign:

November 20–23: 10% off selected journals for email subscribers with a code. November 24–26: no journal offer; replace the email-only message with a preview of the next event. November 27–30: 15% off the same selected journals for all shoppers through an automatic discount. December 1: remove BFCM banners and direct shoppers to the regular journal collection.

For each period, the calendar should list the specific journal collection, exact start and end times, customer eligibility, discount identifier, exclusions, and a named reviewer. The percentages describe separate windows, not a promise that Shopify will combine them. If you plan overlapping discounts, check both discounts' combination settings and the store's eligibility, then test the actual cart.

Map every message to an owner

Create one row per offer and one column for each place a shopper may encounter it: homepage, collection, product page, popup, email, social post, and customer-support reply. For each cell record the wording, destination, owner, activation time, and removal time. If the offer applies only to selected items, say so near the claim and link to the eligible collection. When a code is required, include it and any conditions in the message.

A popup can present a reviewed message, but the promotion itself must be configured and tested in Shopify. Eggflow's Smart Pop listing describes popups for discounts and triggers such as time on site or exit intent. Confirm the current plan and configuration before relying on a specific trigger; the listing does not establish that changing a calendar automatically updates the popup or creates a discount.

Test the handoff, not just the first launch

Before sending a campaign, open the collection link on a phone, test a qualifying cart and a nonqualifying cart, and confirm the offer text matches the discount settings. If the code has a customer restriction, use the appropriate test account. Record the result and time. Repeat the checks when an offer ends and the next one starts; verify that old banners, popup copy and links no longer describe an expired offer.

Keep a rollback row: who can disable the offer, who removes the message, and where support can find the corrected wording. If a deadline or product set changes, update the source row and ask each owner to confirm their channel. A calendar reduces uncertainty only when the people responsible maintain it.

After the campaign, compare the planned and actual launch times and list mismatches or customer questions. Use those notes for the next promotion. Orders and clicks can inform review, but a change in sales alone does not establish that the calendar caused it.

Shopify: discount code expiry

Shopify: combining discounts

Shopify Community: scheduling promotions

Smart Pop on the Shopify App Store

Eggflow: BFCM early-access email list

Sources consulted October 28, 2026. The campaign example is hypothetical. The feature image is an AI-generated editorial illustration.

Apps in this guide