Delivery Calendar
Intro
Delivery Calendar lets customers pick a delivery date at checkout — and gives your team a calendar of the orders attached to each date. Cutoffs, exceptional days, lead times, and capacity limits keep promises realistic.
Purpose
- Promise delivery dates you can actually meet
- Plan production / packing around dated demand
- Let customers change a date within limits you set
- Test date logic safely before customers see it
What is inside
| Page | What it does |
|---|---|
| Calendars | The calendars themselves — name, handle, scope, priority, status, Configure |
| Orders | Month view of orders (or shipments) by delivery date, with filters |
| Calendar Tester | Simulate a cart and see which calendar resolves and which dates are offered |
| Exceptional Days | Holidays, closures, and days with special limits |
Create a calendar
- Open Apps → Delivery Calendar → Calendars and create a calendar. Choose its Scope — Items (applies to matching products) or Order (whole cart) — and a Priority for when several calendars could apply.
- Click Configure and work through the tabs:
Basic
| Group | Settings |
|---|---|
| General | Enable Calendar · Require Delivery Date · Disable for Pickup · Date Picker Label · Show Label · Show Selected Date Summary · Checkout Calendar Style (Input, Week strip, Full calendar, Hidden) · date format |
| Schedule | Available Days · Exclude Holidays · Next Available Day (lead time) · Last Available Date · Cut-off Time |
| Capacity | Order / Shipment Limit Per Day · Product Limit Per Day |
| Customer Date Changes | Lock Changes Before Delivery (days) · Maximum Date Changes |
| Calendar Source | Whether the Orders view and limits count Orders or Shipments, and which statuses to exclude |
| Where to Save the Date | Order attribute and / or metafield outputs the date is written to. The first metafield output is the calendar's own key; metafield definitions are created in Shopify automatically so the date shows on the admin order page |
Date Picker Label is the customer-facing name of the calendar — it appears above the picker at checkout and next to the date on the thank-you and order status blocks. With more than one calendar, give each a distinct label so buyers can tell the dates apart.
Exceptional Days
Add a day (a specific date or a recurring weekday) and either Disable Delivery or set special Order / Product Limits, a different Cutoff Time, or time slots. The table shows Day, Order Limits, and Status (Active / Disabled). The standalone Exceptional Days page edits the same list.
Limit Rules and Product Ratio Rules
Fine-grained capacity: cap specific products or product mixes per day rather than the whole calendar.
Rules
Conditions with actions Disable / Enable Calendar, Skip Available Dates, or Copy Date (take the date from another calendar) — for example hide the calendar for wholesale customers, or skip Mondays for a specific collection.
- Save, then run the Calendar Tester before enabling for customers.
Staff changing or clearing a date
After checkout, the date lives on the shipment. On an Awaiting or On Hold shipment, open Dates, click the pencil, and Save a new date or Clear it. Clear removes the delivery date and the ship-by date derived from it. Update shipment source writes the change back to the order metafield (or deletes that metafield when you clear); Sync to all orders does the same for every order on a merged shipment. The shipment timeline records who changed it. Shipped and cancelled shipments stay locked. Full steps: Change or clear the delivery date.
Customers setting or changing dates after checkout
Two Shopify blocks let buyers handle the date themselves, without contacting you. Add them in the Shopify checkout editor (Settings → Checkout → Customize) and the customer accounts editor:
| Block | Where it shows | What it does |
|---|---|---|
| Delivery Date (Thank You page) | The checkout Thank you page, right after the order is placed | Shows the chosen date. If the order has no date — typical after an Apple Pay or Shop Pay express checkout that skipped the picker — it shows a No delivery date is scheduled… message and a picker so the buyer can choose one straight away |
| Delivery Date Block | The Order status page in customer accounts | Shows the date; Change date lets the buyer move it, or pick one when none is set |
Both blocks only offer dates the calendar would offer today (weekdays, lead time, cut-off, capacity, rules), and the order status block only allows changes while the order is unfulfilled. Each block has settings for the heading, message template ({date}), no-date message ({calendar}) and date format, plus Read-only (hide the date picker) if you prefer to display the date without allowing edits.
In the calendar's Customer Date Changes group, Lock Changes Before Delivery stops changes inside the final N days, and Maximum Date Changes caps how many times a date can move. Each change is logged on the order and shipment timeline, and a date the calendar would not have offered raises the alert Delivery date not offered by calendar — see Alerts. The shipment Timeline records where each date came from: picked at checkout, set on the thank-you page, changed by the customer, changed by staff, or copied from another order.
Review dated orders
- Open Delivery Calendar → Orders.
- Move through the month; each day lists the orders (or shipments, per Calendar Source) due for delivery.
- Filter by product type, collection, fulfillment status, or tags.
- Open an order to confirm the date synced — it also shows on order and shipment records and drives the Delivery Date filters.
Test before go-live
- Open Calendar Tester.
- Build a cart with Select Products or Add Manual Item, optionally pick a shipping method (Shipping / Pickup / Local Delivery) and an address.
- The tester shows which calendar(s) resolve, the available dates, and the predicted fulfillment location — the same resolution the live checkout uses.
Who can use it
Included on Pro and Enterprise. Permissions View delivery calendar / Manage delivery calendar.
Related
- Change or clear the delivery date — edit or remove a date on an open shipment
- Orders → Filters · Shipments → Filters — Delivery Date ranges
- Shipment settings — which delivery date a merged shipment keeps
- Shipping Rates — prices alongside dates at checkout