Start free

Scheduling & Happy Hour

Time-based dish availability, time pricing and the "86" stop-list

18 min read Open this screen in the demo
On this page 14

Menu schedule, happy hour, and stop list '86'

Three tools that manage dish availability over time:

  1. Schedule — a dish or custom menu is available only on specified days and hours (for example, breakfasts until 12:00 on weekdays, bar menu after 22:00).
  2. Happy hour — during a specified time window, a dish has a different (usually reduced) price.
  3. Stop list '86' — instantly remove a menu item from sale when the product runs out, and bring it back just as quickly.

All three rules are calculated in real time in the location's time zone — the guest and cashier always see the up-to-date picture.


What you need to get started#

  • The location's time zone. All three rules are evaluated in the venue's zone. If the zone is not set, the zone of the location's country is used, and without a country — of your brand's country (Moscow for cenaly.ru). The clock of the guest's phone or the POS device does not affect the windows: POS, QR menu and the server count the same way. If the venue is in another zone, set it explicitly.
  • Items, categories or custom menus the rule applies to.
  • A second price — for happy hour.
  • Cashier access to the 86 list — an item is taken off right at the shift workspace with the Stop-list button.

Availability Schedule#

How to Set a Schedule for a Dish#

  1. Open Menu in the admin panel.
  2. Find the desired dish in the list — next to the active toggle, there is a clock icon.
    • Gray clock — no schedule set (always available).
    • Green — currently within schedule.
    • Red — currently outside schedule (dish is hidden/unavailable).
    • Amber — no schedule, but a happy hour rule is set for the dish.
  3. Click the clock — the "Schedule and Pricing" editor will open.
  4. Enable the "Limit availability by schedule" checkbox.
  5. Set the days of the week and time windows (format HH:MM–HH:MM). You can add multiple windows for a single day (for example, lunch 12:00–15:00 and dinner 18:00–23:00).
  6. For periods crossing midnight (bar menu 22:00–03:00), mark the window as "overnight" — the system will correctly handle the midnight crossover.
  7. Click "Save" — changes are published to the customer menu.

Category, custom menu, and collection schedule#

You can set a schedule not just for a single dish, but for an entire group of menu items:

  • a category — for example, "Breakfast" or "Bar";
  • a custom menu — "Business Lunch", "Sunday Brunch";
  • a product collection in a store (retail) — for example, "Night Deals".

In this case, all items in this group automatically become unavailable outside the specified hours.

The clock icon next to the name of a category, custom menu, or collection works the same as the dish clock icon: one click opens the same schedule and happy hour rules editor.


Seasonal menu: "from–to" dates#

Winter menu, summer terrace, holiday items — a dish, category, custom menu or collection can have active dates. On the first day the items go on sale by themselves and after the last day they leave by themselves. Nothing has to be switched on by hand.

  1. Open the clock next to a dish, category, custom menu or collection.
  2. In "Season (dates)" set "From" and/or "To". Both dates are inclusive; an empty field means no limit.
  3. Keep the weekly schedule if you need it: then both conditions apply, for example "breakfast from 01.12 to 28.02, 08:00–11:00".
  4. Save.

Dates follow the location calendar (its time zone), just like schedule windows. With dates only and no weekly window, the item is sold all day every day within those dates. An overnight window on the last day of the season (say 22:00–02:00) runs until morning. Outside the season guests see the item greyed out, the POS will not ring it up, and the server will not accept an order with it.

Dates follow the same rules as the weekly window: a dish's own window beats its category's and menus', and an item in several menus is available if at least one of them allows it.

In the POS apps for Android, Windows and Ubuntu an out-of-season item is greyed out too, labelled "Currently unavailable": it cannot be added from a tile or with a scanner. The season switches on by itself in the first minute of the right day by the location calendar, with no POS restart. The app gets the dates with the location menu once the server has updated it.


New price from a date#

A price rise on 1 December can be scheduled in advance. Until then guests and the POS see the current price; on that day the new one takes over by itself.

  1. Open the clock next to a dish (the section exists only for items).
  2. In "New price from a date" click "+ Schedule a price".
  3. Set "From", "Price" and "Where": "All locations" or one location.
  4. Save. The row shows "Starts 01.12.2026", and the dish clock in the menu list gets a blue dot; its tooltip shows the date and price.

How the price is chosen:

  • An "All locations" entry, once its date comes, replaces both the base price and location prices set before it. It is "the new chain price list".
  • A single-location entry changes the price only there. If one date has both a chain entry and a location entry, that location uses its own entry.
  • Of several entries that have started, the one with the latest date applies.
  • The date comes by each location's calendar: in Tbilisi the new price switches on a few hours before Moscow.

From day one the new price is used by the QR menu, the POS and the server-side payment check. No menu republish is needed: future changes reach the storefront in advance.

The POS apps for Android, Windows and Ubuntu get future prices with the location menu. On the day the new price appears on the tiles by itself, even if the POS stayed open overnight: the app checks the location date every minute or two. A stock price override (with a reason) still beats the dated price.

An entry that has started first stays in the list as "Active since …" and sets the price. One day after the date, once it has started in every time zone, the entry becomes the regular price on the next save of the card:

  • an "All locations" entry becomes the base price; the location prices it overrode are reset to the base price, and the location stays in the item's location list;
  • a single-location entry becomes that location's price;
  • the entry leaves the list, and guests, the POS and shelf labels see the same price as before.

Any edit of the card counts as a save: yours or an automatic one, such as the stop list. If you change the price or a location price by hand after the entry has started, your price applies and the started entry is removed. During the first day after the date a manual edit does not apply yet: remove the entry or schedule a new one from today.


Happy hour (time pricing)#

Happy hour is a rule that automatically changes the price of a dish during a specific time window. Multiple rules can be combined; if several rules are active at the same time, the lowest price wins (the best offer for the guest).

Setup#

  1. Open the "Schedule & pricing" editor for the dish, category, custom menu or collection (clock button).
  2. In the "Happy hour (time-based pricing)" section, click "+ Add rule".
  3. Set:
    • Label (e.g., "Happy hour") — displayed as a label for the discount.
    • When active — time window by days of the week (the same schedule editor).
    • Discount type: "Percent off" or "Fixed price".
  4. Save. You can add multiple rules (different hours, different discounts).

On the customer menu during the happy hour period, the regular price is shown crossed out, with the discounted price next to it. In the POS, the price on the tile updates automatically.


Set it up across locations#

The rule belongs to an item or group in the account, rather than being a separate schedule for every till. Start by choosing which items should participate:

Where to open the clock editor Items affected Scope across locations
Dish That item Shared rule at all locations selling it
Category Items in the category Shared account rule
Custom menu Items included in it Shared account rule
Product collection Products in the collection Stored on the account's collection; a collection restricted to one location or a set of locations has that scope. Without a restriction, its scope is account-wide
  1. Open the clock editor for the item or group and set the time and price using the steps above.
  2. Check each participating location's time zone: a 17:00–19:00 window follows its local time.
  3. Open that location's menu and POS, check the price and add a sample item. If another item or group rule is active, the lowest price wins rather than the sum of percentages.

A shared item has no separate schedule field for each location. Location-specific base prices and schedules are different settings; changing a location's price does not create a separate happy hour.

For combinations with promo codes and manual discounts, see How discounts, coupons and scheduled prices combine, including calculations and the difference between POS and automatic storefront offers.


"86" Stop List#

When an item runs out, take it off sale from the workstation. Its catalog card stays in place; you can bring it back manually or set a return time.

Stop one or several items#

  1. Open Stop-list on the POS or KDS. Out right now at the top lists items already stopped.
  2. Check the location. Only here in the scope selector stops sales at this location; other locations continue selling.
  3. Search by name; translated names are included. Press 86 on a row, or select several rows and use the combined 86 · … button.
  4. Before stopping them, choose a duration under For how long:
Duration When the item returns
Until I say After a manual return
Until end of day At 23:59 today
Until tomorrow At 06:00 the next day
Custom time At the selected time

Check the displayed return time. It uses the location's clock, not the employee's phone or computer.

Stop sales at every location#

A manager chooses All locations and confirms the action. This is a separate decision: one kitchen running out should not stop neighbouring locations. The 86 button in the Menu editor sets a global stop.

Bring items back#

Under Out right now, use Bring back for one item or Bring all back for the list. A manager uses the explicit Back everywhere action to remove a global stop.

"Portions left" counter#

When an item comes in a fixed quantity — 12 slices of pie a day — set a counter and the item stops itself when the portions run out.

  1. On the POS or KDS, open the Stop list and find the item.
  2. Tap 🔢 Portions in its row, enter a number in Portions left and tap Save.
  3. Every accepted order at this location takes portions: from the POS as well as the QR menu, storefront and kiosk. Adding to an open check takes more; removing a line or cancelling the order gives the portions back.
  4. At zero the item moves to Out right now labelled sold out by counter and is stopped at this location. The POS tile shows SOLD OUT, and the remaining count, for example 5 left, while portions remain; the cashier gets a notification.
  5. Baked another batch? Tap the 0 left chip and enter a new number — it is a new batch and the item returns to sale. No limit or Bring back removes the counter altogether.

If the item was already in the guest's cart#

At checkout, the server checks availability again, including the stop list. If it rejects the order, the guest receives a list of unavailable items; the system does not silently remove them from the total. Ask the guest to review the cart and submit it again.

Delivery marketplaces#

Stop-list updates for Wolt, Glovo, Yandex Eats and Deliveroo are implemented but have been checked with test simulations; live connections are not confirmed. Local stops are not sent to those channels yet, and expiry of a global stop does not send an automatic return update. Check availability in the marketplace's own dashboard.


How guests see unavailable items#

On the customer menu, a dish unavailable right now (out of schedule or on the stop list):

  • Appears dimmed (reduced opacity).
  • The "add to cart" button is disabled.
  • A time hint appears below the price: 🕒 09:00–12:00 — when the dish will be available for purchase again.
  • A dish removed via "86" is marked with a red STOP badge (in the store — with a "Sold Out" label), and tapping it opens an explanation with a 🚫 icon.

Guests see the full assortment — understanding what the venue offers, but cannot order an item outside its time window.


How the POS reacts to schedules and happy hour#

  • Tiles for dishes that are unavailable by schedule or marked as "86" are dimmed: a regular waiter cannot add them to a bill. For an employee with dining area manager permissions, the tile remains clickable — otherwise they would not be able to remove the stop status with a long press.
  • If a happy hour is active for a dish, the tile displays the reduced price (the regular price is crossed out).
  • Long pressing a tile places a dish on the stop list or removes it — for employees with dining area manager permissions.
  • The POS calculates time in the location's time zone just like the customer menu — there are no discrepancies.

Switch the menu period manually#

Breakfast ended early, but the lunch menu opens by schedule only at 12:00? Switch the period right away:

  1. On the POS open ⋯ More → 👔 Manager panel (you need rights to the Menu section or the PIN of such an employee).
  2. Choose 🕐 Switch menu period.
  3. The list shows the nearest periods of custom menus and categories with a schedule, for example Lunch — by schedule from 12:00 (in 1 h 30 min). Pick one.
  4. The POS tiles show lunch items immediately. The QR menu, kiosk and menu screens get the same after the page refreshes (the storefront is served through a CDN, so it takes a little time).

The switch ends by itself when the period starts on schedule. To return to the schedule earlier, use Back to schedule in the same window. Happy-hour prices keep the real clock: the switch only changes what can be ordered. The order server checks dish windows by the same period clock, so a guest can order a lunch item right away.

In the POS apps for Android, Windows and Ubuntu the 🕒 button sits in the header of the order-taking screen. It is visible while items have a schedule or a switch is active. The list and Back to schedule are the same, and so is the permission: if the current employee does not have it, the POS asks for the PIN of someone who does. Switching needs a connection. Items outside their window are greyed out on such a POS with the label Not available now: they cannot be added from the tile or with the scanner.


Limitations#

  • A stop applies to the whole item, not an individual variant. The workstation supports local stops; a manager can apply a global stop. Mobile and Windows admin apps currently see only the global level.
  • An automatic inventory stop may be absent from Out right now; check stock as well.
  • The portion counter is web POS and KDS only. The Android, Windows and Ubuntu POS apps deduct portions on the server but do not show the count on the tile ("5 left") yet and have no 🔢 Portions button. On cenaly.ru the item is stopped on the storefront once a POS workstation is opened; a guest order beyond the counter is refused by the server immediately.
  • Automatic return from the 86 list does not reach aggregators. The deadline passes, the item comes back for you, and nobody wakes the marketplace.
  • There are no live aggregators yet. Sending 86 to Wolt, Glovo, Yandex Eda and Deliveroo is written and verified on mocks; production connections have not been made.
  • Happy hour only reduces the price when the rule produces a price below the base price inside its window — "discount for dine-in only" is not a separate axis.
  • The storefront is served through a CDN. A schedule change does not reach the guest instantly.
  • Seasons and dated prices are honoured by the web POS, the POS apps for Android, Windows and Ubuntu, the QR menu, kiosk, menu screens and the server. The waiter app for Windows does not honour seasons. Aggregator exports and price feeds pick up the price on the next location menu update.
  • A printed shelf label does not change by itself. The label printing window and the handheld terminal show the price in effect today by the location calendar. Reprint a label printed before the date after it. The server also prices a deposit or fee line in a guest order at today's price. A stock price override with a reason still wins.
  • Another POS does not see a manual period switch at once: the app or web POS of the same location picks it up on the next settings read or page refresh. The waiter app does not switch periods, and the Windows waiter app ignores item schedules.

Troubleshooting#

Symptom Cause What to do
Item is still visible A stop blocks purchase but does not necessarily hide the card; caching may delay updates Check whether it can be ordered, the location and stop scope; reload the page
Stop or schedule ends at the wrong time Incorrect location time zone Check the zone and displayed return time
Happy hour did not apply at the POS The item or current time falls outside the rule Check the time window and items covered
Item returned by itself Its stop duration expired Choose Until I say if it should return only manually
Item is under Out right now labelled sold out by counter The counter's portions ran out Enter a new number of portions, or tap Bring back to remove the counter
Bringing it back did not help A global stop, another location's stop or a stock restriction remains Check the relevant scope and stock; a manager removes the global stop
Marketplace still sells the item Local stops are not sent; live connections are not confirmed Take the item off sale in the marketplace's own dashboard

Frequently Asked Questions#

Can I set different schedules for the same dish across different locations?#

The schedule is set at the dish level (globally). If you have multiple locations in different time zones, the time is calculated in the time zone of each specific location — a single "breakfast until 12:00" rule will work according to local time at every branch.

What happens if a guest tries to order a dish outside of its schedule?#

The add to cart button is disabled. The dish remains visible but unavailable for ordering — the guest understands that the item is on the menu and sees when it becomes available.

Does happy hour apply to options and add-ons?#

Yes. The discount applies to the base price of the dish, and selected options and add-ons are calculated on top of the discounted price.

Do I need to republish the menu after changing a schedule?#

Dish schedule changes are published automatically upon saving. Custom menu schedules are also applied upon saving.

Can I put a dish on the stop list directly from the POS?#

Yes. Open Stop-list on the POS to find an item, choose a duration and stop several rows at once. There is no need to return to the menu editor.


  • QR Menu — customer menu setup, custom menus and sections
  • POS — order taking by staff, response to schedules and happy-hour
  • Kitchen (KDS) — kitchen display, receives only available orders
  • Orders — monitoring and order management
  • Multi-location — time zones are set separately for each location