A 32-seat boutique cafe in Odunpazari, Eskisehir, was tired of manually closing the "breakfast plate" menu every weekend at 11. One Saturday at 11.05 a guest still ordered breakfast while the kitchen had pivoted to brunch prep. The fix was a five-window auto-rotation: breakfast 07-11, brunch 11-14, lunch 14-17, afternoon 17-19, evening 19-23.
Five Windows, One Cron
Each menu item carries available_from and available_until fields. Cloudflare Workers every 5 minutes cron evaluates the restaurants local time in a TZ-aware way and rewrites the active menu in D1. Manual disable is gone.
Transitions take seconds. At 11.00 sharp, 14 breakfast SKUs hide and 22 brunch SKUs appear. The guest refreshes their PWA, sees the right menu. The KDS flips to brunch mode in parallel; the espresso machine recalibrates from breakfast filter to brunch espresso settings.
Holiday Override Layer
The automation needs an escape hatch for local holidays like September 9 (Eskisehirs Liberation Day). thMenu admin offers an "override day" toggle: the manager picks a date, attaches a special menu, and the cron is bypassed. Six 2026 overrides are pre-populated.
Overrides support hourly granularity. Example: during Ramadan the brunch slot collapses and an iftar menu takes 19.30-21.30 exclusively. Auto-return to evening menu happens at 21.31.
Operational Wins
In the first quarter, post-breakfast wrong orders dropped 78%. Servers no longer had the awkward "you picked from breakfast but its over" conversation. Refunds fell from 11.4 weekly to 2.6 — roughly TRY 380 per week recovered.
- Manual toggle: 5 actions × 30 seconds = 2.5 minutes daily saved
- Wrong-order refunds: 47/month → 11/month
- Staff training: new hires no longer learn menu rotation, just watch the screen
FAQ
What if the restaurants internet drops? The cron runs on Cloudflares edge, independent of local Wi-Fi. The PWA menu serves cached content offline and re-syncs when connectivity returns.
Any DST risk? Workers run on UTC; the TZ identifier (Europe/Istanbul) is stored in D1. DST shifts are handled by the IANA database automatically.
What about open orders during a transition? Open order line items are snapshotted at order time, so a breakfast plate stays in the order even after the menu flips. New additions only show items from the active window.
Found this helpful? Share it.
Related articles
The Complete Guide to Running a Multilingual Restaurant Menu
Serving international guests? Learn how to set up a menu that automatically spea…
What Is a QR Code Menu? The Complete Guide for Restaurants
A QR code menu lets customers access your full restaurant menu instantly on thei…
Understanding Your Restaurant's Data: A Practical Analytics Guide
Your menu generates data every day. Learn how to read it, act on it, and use it …