Fits the tools you already run on
Subscriptions, calendars, Shopify Flow and Shopify's own checkout, inventory and locations. Where Shopify already has a mechanism, the app uses it rather than asking you to wire up another connector.
Subscription apps
Renewal orders never pass through the cart, so a date app that only works at checkout leaves every renewal undated. Blackout Dates works off Shopify's own subscription contracts instead, so it doesn't need a bespoke connector for each app.
Any app built on Shopify subscription contracts
Shopify Subscriptions, Loop, Appstle, Seal, Recharge and others
The first order goes through the date picker like any other. Each renewal is spotted when it lands and given the next valid date under your closed dates, weekday rules and prep time, under the right attribute for how the contract is fulfilled. If the subscription app schedules the renewal itself and writes the date onto the order, that date is used instead. Either way the renewal comes through capacity, your calendar and the prep sheet like any other order.
- Point your subscription app's "first delivery date" setting (Loop calls it Handle first delivery / pickup date) at the attribute for your method, e.g. _Delivery Date ISO, with the date format YYYY-MM-DD.
- The customer-facing renewal email can carry the date via the Subscription order date assigned Flow trigger, or you can treat the date as provisional and let the customer confirm or change it from their reschedule link (Pro).
- Date-driven delivery surcharges never apply to a cart containing a subscription. Shopify fixes the subscription's delivery price from the rate chosen at its first checkout, so a rush or peak rate picked once would be charged on every renewal.
Calendars
Every dated order lands in the calendar your team already looks at.
Google Calendar
Connect once from the app and every new dated order is pushed as an event, with the customer's details and a link to the order. Reschedules move the event; cancellations remove it. Prep-start events can land a few days ahead of the customer's date.
Microsoft Outlook
The same push, into Outlook or Microsoft 365 via Microsoft Graph. Connect with your Microsoft account and the app keeps the token fresh itself.
Apple Calendar, Fantastical and anything with a subscription URL
A private ICS feed URL you subscribe to from any calendar app. It only republishes when something has changed, and it never serves an empty calendar if Shopify is briefly unreachable, so a subscribed calendar can't wipe itself.
Shopify Flow
Flow is on every Shopify plan except Starter, and it's how Blackout Dates reaches everything else: Slack, Klaviyo, email, SMS, order tagging or a webhook to your own systems.
eight triggers
Fire off real store events: an order on a closed date, a product or slot filling up, a late order, a closure hitting orders you already have, calendar sync dropping out, a subscription renewal getting a date, or a customer rescheduling. Each trigger carries the order and customer references, so a one-step workflow like "Order landed on a closed date → Send Slack message" works without any setup on our side.
five actions
Let a workflow change the app without anyone opening the admin: add or remove a closure, set a product's daily capacity, switch a delivery method on or off, pause a product. Same operations as the admin save button, callable from any Flow trigger, including ones from other apps.
Shopify itself
Where Shopify already has a mechanism, the app uses it rather than reinventing it.
Checkout and shipping rates
A delivery customization Function shows only the rates that match the method the customer chose in the date picker, and swaps in your rush or peak-date surcharge rate when the picked date calls for it. Base postage and free-shipping thresholds stay in Shopify's own shipping settings. The checkout step itself needs Shopify Plus; on other plans customers get a note on the cart telling them which option to pick.
Inventory
Opt in per product and a dated order reduces Shopify stock. Refunds and cancellations put it back and re-open the slot. The date picker hides itself once every variant is sold out.
Locations
Each Shopify location becomes its own branch with its own methods, prep time, cut-offs, slot caps and closed dates, or it inherits the shop-wide setup. The branch a customer picks travels onto the order.
Orders, emails and the order status page
The date, method, time slot and branch are written onto the order as attributes, into the order note, and onto each line item, so they show in the admin, in Shopify's own order emails via a snippet you paste in, in exports and in any other app that reads order attributes.
What the app writes onto every order
Any app, export or workflow that can read a Shopify order can read these. Names are exact. Anything starting with an underscore is hidden from the customer but present on the order.
Order attributes
Collection Date / Delivery Date / Dispatch DateThursday, 26 March 2026 (with " at 2:00 PM – 3:00 PM" for a collection slot)One per fulfilment method in the order. The human date the merchant and customer read._Collection Date ISO / _Delivery Date ISO / _Dispatch Date ISO2026-03-26The same day as YYYY-MM-DD, for apps that take an attribute name and a fixed date format. A subscription app can write this onto a renewal and the app will honour it._Delivery MethodCollection, Local Delivery or PostalComma-joined for a mixed cart.Location / _Location IDSoho / gid://shopify/Location/…Only when the shop runs more than one branch.Delivery Schedule / _Delivery Schedule ISOThursday, 23 April 2026; Thursday, 30 April 2026 / 2026-04-23,2026-04-30Prepaid subscriptions only: every delivery the order covers, first to last. Each day is booked against capacity and gets its own calendar event.
Line item properties
_Collection Date / _Delivery Date / _Dispatch DateThursday, 26 March 2026On every line the date applies to, so a mixed cart can carry two dates.
Order note
Delivery method: … / Your delivery date: …Plain textShows in Shopify's default order confirmation via {{ order.note }}.
Order tags
blackout-collection, blackout-local-delivery, blackout-postal- One per method present.
blackout-subscription- When the app dated a subscription renewal itself.
blackout-prepaid- A prepaid subscription order carrying more than one delivery.
Using something that isn't here?
Tell us what you run and we'll say plainly whether it works, and what to set where.