Constrain which dates a listing can be booked, the times a booking may start and end, how long it runs, and how late it can be ordered.
Open in TWICE Admin
catalog/listings → Limits
Three cards on the Limits tab decide what a customer may book of one listing: how long it runs and how late it can be ordered, which calendar dates are open, and the times a booking may start and end.Work through them in that order. Two of the duration settings behave differently depending on how the listing is priced, and the order deadline is the only setting that stops a too-soon booking from appearing on the storefront at all.
Required permission:catalog:listing_limits. All four system roles, Owner, Admin, Manager and Member, hold every operation on this tab.
Know how the listing is priced before you set duration limits. The three duration settings behave differently on the two pricing models:
Fixed-duration pricing (a row that says “1 day”, “1 week”): min and max filter which options the storefront offers. The increment does nothing, because a fixed row’s duration comes from the row.
Rate-based (dynamic) pricing (the customer picks any span): all three are enforced by the server, at cart-add and again at order creation.
Same fields, two different jobs. If you set a limit and nothing appears to change, this is usually why.
Open the listing from Catalog → Listings and go to the Limits tab. Read the three cards top to bottom: Booking limits, Availability, then Start and end times.Every duration field starts at No limit, and every one can go back to it. Clear the number, or type 0, to restore No limit. You do not need a separate “off” control.
2
Set the minimum booking duration
Enter a number and a unit, from seconds to months, next to Minimum booking duration.On a rate-based listing this is a hard floor, and a shorter span is rejected with a 400 at checkout. On a fixed-duration listing it removes the shorter price rows from the storefront, so a customer never sees them.Expect the advertised price to move with it. The “from” price on the listing is the cheapest bookable duration rather than the cheapest row on the price table, so raising the minimum raises the price on the card.
3
Check the calendar maths on long units
Read a month as a calendar month. A “1 month” minimum is satisfied by a 28-day February, because the bound is computed by adding a calendar month to the start rather than by converting to seconds.
4
Set the maximum booking duration
Enter the longest span you will accept next to Maximum booking duration. This is the setting that protects your fleet from a booking that quietly runs for a year.Set it even where you do not expect long rentals. An unbounded maximum on a rate-based listing means the storefront accepts any end date the customer picks.
5
Set the duration increment on rate-based listings
Set Booking duration increment to constrain selectable durations to whole multiples of a unit. A 1-week increment means 1, 2 or 3 whole weeks, never ten days.Skip this step on a listing priced with fixed durations. A fixed row carries its own duration, so the increment has nothing to constrain, and setting one is a quiet way to believe you have configured something you have not.Expect the increment to compose with min and max rather than override them. A selectable duration has to be both a whole multiple of the increment and inside the min/max range, so a 1-week increment with a 10-day maximum allows exactly one option.
6
Set the order deadline
Pick the lead time customers must respect:
Orders must be placed at latest is the field, at the bottom of the Booking limits card.
No deadline lets a customer order any time up to the start.
A set time before is a fixed offset: a value, a unit (minutes, hours or days), before start. “2 hours before start” means a 14:00 booking must be ordered by 12:00.
By time of day is a wall-clock cutoff on an earlier day: Ndays before, by18:00. A Wednesday booking must be ordered by 18:00 on Tuesday, and 0 days before means by that time on the start day itself.
Read the cutoff in the service location’s timezone, not the customer’s and not yours.
7
Add the dates the listing is available
Move to the Availability card. Leave it on Available on all dates for anything you sell year round.Click Add date range for a season, a course that runs twice a year or a touring exhibition, and set the first and last day. Add a range per season. Ranges that overlap or touch merge into one block, so June plus July gates as a single June to July season.Use the row’s dots menu to Duplicate a range one year forward when next year’s season is the same. A range whose end date has passed keeps an Ended chip and stays on the card as a record.
8
Decide whether a booking must end inside the range
Check the box that appears under the ranges:
Bookings must also end within the date range keeps the whole booking inside one block. It is ticked when you add the first range.
Leave it ticked for a season that genuinely closes, such as a rink that shuts on 31 March. Untick it where a booking taken in the last week may run past the end, such as a summer hire returned in the first week of September.
9
Set the booking interval
Move to the Start and end times card and pick how often a booking may start: 2, 3, 4, 5, 6, 10, 12, 15, 20, 30 or 60 minutes. Start times are counted from local midnight at the service location, so 60 minutes means on the hour.Leave it alone to follow the account-wide interval from Settings → Operations → Bookings. Pick a value here and the listing is pinned to it, including when the account interval changes later.Decide before you pick, because the select has no “follow the account” option. Returning a pinned listing to the account setting is not something this tab can do.
10
Name the start times per weekday
Open the Start times row to replace the grid on the weekdays that need it. Each weekday takes one of four states.
State
What that weekday offers
Any start time
The booking interval grid, the default
Specific times
Only the times you list, such as 09:00 and 13:30
Specific time ranges
The grid inside the ranges you list, both ends included
No start times allowed
Nothing, so no booking starts that weekday
Use Specific times for a guided tour that leaves twice a day, and Specific time ranges for a counter that is staffed 09:00 to 17:00. A listed time is not held to the grid, so 10:07 is legal.
11
Name the end times per weekday
Open the End times row and set the weekdays a booking may finish on. The four states mirror the start ones.Set a weekday to No end times allowed where nobody is there to take the return. Starts and multi-day bookings running through that weekday are unaffected, because the state closes returns only.Expect no grid on this boundary. A weekday you leave alone accepts any return the duration limits allow, so name the weekdays that matter rather than relying on a default.
12
Save and check the storefront
Save, then open the listing on the storefront.Do not skip this step, because the two pricing models fail differently and only one of them fails loudly. On a fixed-duration listing a wrong limit shows up as options that are missing or options that should not be there, with no error and only a picker offering the wrong set.
Open the listing on the storefront and check each setting where it shows up:
Duration limits, fixed pricing: the duration picker offers only rows inside the range, and the “from” price matches the cheapest one still offered.
Duration limits, rate-based pricing: an out-of-range end date is refused at checkout rather than hidden.
Increment: the return-date and return-time pickers only offer aligned options.
Date ranges: dates outside every range are closed on the calendar. Off-season, the listing page reads Available for booking with the next range’s dates.
Booking interval: the start-time picker offers only times on the grid. Check a 60-minute interval by confirming the picker offers whole hours and nothing between them.
Start times: an overridden weekday offers your times and nothing else, and a weekday allowing no start offers no slot at all.
End times: the return picker offers no slot on a weekday you closed.
Order deadline: start times past the cutoff are marked unavailable on the calendar. A customer who already had the item in their cart sees a notice that the order deadline has passed.
Check every one of these from the storefront rather than from admin. Staff are exempt from all of them: admin order creation skips the date ranges, the start and end times, the interval and the order deadline deliberately, so a phone booking can still be taken after the storefront has closed that slot.
Cause: the listing is priced with fixed durations. A fixed row carries its own duration, so there is nothing for the increment to constrain.What to do: if you need “whole weeks only” on a fixed-priced listing, that is a price-table question, so offer the week rows you want bookable. The increment is a rate-based setting.
The 'from' price on the listing went up and no price changed
Cause: you raised the Minimum booking duration. The “from” price is the cheapest bookable duration, so removing the short durations removes the cheap prices with them.What to do: treat this as working as intended. If the advertised price matters more than the floor, lower the minimum or add a cheaper row inside the allowed range.
Customers still get too-soon bookings even though stock has a preparation buffer
A buffer is not an order deadline. A stock item’s buffer time in Inventory rejects a too-soon start, but it does not remove those times from the storefront calendar. The customer picks one, gets through most of the flow, and fails at checkout.What to do: set the order deadline here as well. It is the setting that makes the storefront stop offering those start times in the first place. See Buffer times and fulfillment fields.
The deadline cuts off at the wrong hour
Cause:By time of day resolves in the service location’s timezone. A location in a different timezone from the one you are sitting in cuts off at its own local 18:00, not yours.What to do: check the service location’s timezone before reading the cutoff as wrong. If one listing is sold from locations in two timezones, the deadline resolves per location, so the customer’s booking is gated by the location fulfilling it.
Staff can book past the deadline, outside the season and off the grid
Working as designed. Every limit on this tab is enforced on storefront and checkout paths only, so admin order management can take a late booking, a booking outside every date range, and a start the grid does not offer.What to do: nothing, unless you need staff blocked too, which these settings cannot do.
A rate-based booking was rejected with a 400 at checkout
Cause: the selected span violated the minimum, the maximum, or the increment. The server validates the duration at cart-add and again at order creation, and the message names which of the three failed.What to do: read the message rather than guessing. “Shorter than the minimum”, “exceeds the maximum” and “must be a multiple of the allowed increment” are three different fields.
I changed the account interval and one listing kept the old one
Cause: someone picked an interval on that listing, which pins it. A pinned listing stops following the account setting.What to do: set the interval you want on the listing itself. The account setting no longer reaches it, and the Limits tab cannot unpin it.
A customer says the cart refuses a time it offered earlier
Cause: the interval, the start times or the date ranges changed after the item reached the cart. The cart re-checks the line and flags it, for example with “Not available - bookings cannot start at the selected time.”What to do: tell the customer to pick a date or time the picker now offers. Orders already placed are untouched and stay editable, because every check gates a booking being created.
The listing cannot be booked at all after I set start times
Cause: every weekday is set to No start times allowed, or every weekday to No end times allowed. The card warns you: “No weekday allows a booking to start, so this listing can’t be booked.”What to do: reopen at least one weekday. To take the listing off sale deliberately, unpublish it or set its status to draft rather than closing every weekday.
A booking ran past the end of the season
Cause: only the start is gated, because the end-in-range checkbox on the Availability card is unticked:
Bookings must also end within the date range is the box that ties the return to the same block.
What to do: tick it if the season genuinely closes. Leave it unticked where a booking taken in the last week is meant to be returned after the range ends.
These limits do not apply to sales at all
Correct. A sale has no duration and no start time, so no setting on this tab constrains it. A listing sold as well as rented is limited on its bookings only.Subscriptions are gated by the order deadline, evaluated against the whole start day rather than the exact instant.
I need a maximum quantity per order
Not available. There is no per-order quantity cap on a listing, and nothing on the Limits tab is about quantity.What to do: constrain quantity with real availability, which is the stock the listing’s inventory rules match. If a customer must not be able to take ten of something, the limit that holds is having fewer than ten bookable. See Listing inventory rules.