Journal / Practical and product proofTableSpark · MMXXVI

The TableSpark Journal

The afternoon gap: publish lunch and dinner as two service windows

One hours line claims continuous service from noon to close. The kitchen stops at 14:30, so the site keeps taking afternoon bookings for the wrong hour.

The afternoon gap: publish lunch and dinner as two service windows
Fig. 01 — Practical and product proof
Contents

Look at the object itself, the thing sitting on your contact page: one hours line reading Open 12:00 to 22:00. What it does at its worst is mechanical rather than punitive. It takes a booking for 15:40 on behalf of a kitchen that stopped serving at 14:30, and a guest who trusted it walks up to a closed door holding a confirmation your own website sent. Nobody is fined for that. Somebody is just standing outside. The line was typed once into a template field that offered one pair of boxes. The kitchen has never worked that way: lunch to 14:30, an afternoon of prep and deliveries, dinner from 17:30. So the contradiction is paid for on the floor. A duty manager loses a quarter of an hour apologising. A table that could have sold at 19:00 sat held for a 15:40 booking in the wrong slot and never filled. Two people walk in at 16:10 on the same sentence, make a wasted journey, and tell the friends they were meeting. Schema.org describes openingHoursSpecification as "A structured value providing information about the opening hours of a place or a certain service inside a place", and Google's local business documentation, last updated 2025-12-10 UTC, defines the field as "Hours during which the business location is open" and the opening time as "The time the business location opens, in hh:mm:ss format". One pair of times claims continuous service where the kitchen runs two windows. Google's Business Profile help asks you to "Provide your regular customer-facing hours of operation" and to "specify special hours for particular days, like holidays or special events". The same page frames its guidelines as the way to "avoid common problems, including changes to your information or, in some cases, removal of your business information from Google", which is Google's stated consequence for information quality in general rather than an automatic outcome of one wrong hours line. Which leaves one decision, takeable before the next service: split the day, model it as it is worked, and publish lunch and dinner as two service windows drawn from one record with special dates layered on as an override, or keep three separate places to check and hope they agree on Boxing Day.

The answer fits in one breath. A restaurant that closes between services does not have opening hours, it has service windows, and both belong on the page as separate pairs of times. The booking calendar should then sell slots inside those same two windows, and the structured data behind the page should describe them to anything that reads it. The principle is a rule about where the truth lives: describe the day once, in one place, and let every surface take its answer from that description instead of holding a copy. A restaurant keeping three copies of its hours is running three restaurants, and only one is at the door when a guest arrives.

The one line that tells the world your kitchen never closes

ONE DAY, THREE OUTPUTS: a four-step editorial workflow diagram. Model the gap once, not three times.
The page a guest reads, the slots the system sells and the hours machines read all come from one record. Source: TableSpark project-owned deterministic editorial workflow diagram

Nobody chose this. It arrives by default, out of a template field that asks one question, opening time and closing time. One question can only produce one answer, so whoever built the site entered the earliest the room is ever open and the latest it is ever open, then moved on to the photos. From there the line multiplies: footer, contact page, the structured data the page emits, the default range the booking widget offers, a hand copy in Google Business Profile, another in an aggregator nobody remembers signing up to.

What separates this from a typo is that the line is a claim and a stranger acts on it. A wrong closing time costs somebody a journey. Picture whose: the late lunch booked after an appointment, the walk in on a wet Tuesday chosen off a phone screen. There is a quieter cost behind that one. While the site publishes a continuous window, the booking system keeps filling dead hours with covers you cannot serve, so the covers you could have sold at peak were never offered to anyone. Empty afternoon reservations do not look like lost revenue. They look like bookings.

What an openingHoursSpecification actually asserts about a restaurant

The fix is smaller than it looks once the assertion is clear. Schema.org defines openingHoursSpecification as "A structured value providing information about the opening hours of a place or a certain service inside a place", and defines the opening time as "The opening hour of the place or service on the given day(s) of the week". Google's local business documentation describes the same field as "Hours during which the business location is open" and wants the time as "The time the business location opens, in hh:mm:ss format". Notice what is absent: any concept of a pause. A specification is one continuous span, and there is no gap inside it.

So a restaurant with a break does not need a cleverer single entry. It needs two entries on the same day, 12:00 to 14:30 and 17:30 to 22:00, both carrying the same days of the week, together describing a day with a hole in the middle. Which is the day you actually work.

Two further properties earn their place. Schema.org describes one as "The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours", which is how a summer pattern is bounded rather than left running into a winter. The other is a special hours property whose purpose is to explicitly override the general opening hours for the dates it names.

Caption: these are the published definitions from schema.org and from Google, checked on 25 August 2026. They describe what a structured hours value asserts, and none of them is a penalty. Google's line about guidelines helping you "avoid common problems, including changes to your information or, in some cases, removal of your business information from Google" is its stated consequence for information quality in general, not an automatic outcome of one wrong hours line.

Two windows on the page, and the same two windows in the bookable slots

Publishing two windows is half the job. What the booking calendar does with them is the half that decides whether anyone ends up outside a locked door, and two things go wrong. The page gets fixed and the calendar does not, so the site displays 12:00 to 14:30 and 17:30 to 22:00 while still cheerfully offering 15:40. And service window and last bookable slot get treated as one number. If dinner runs to 22:00 but the last table has to be seated by 21:15, then 21:15 is the last slot you offer and 22:00 is still the honest closing time to publish. Conflating them either turns away covers or seats a table the pass cannot finish.

Run this once with the diary open.

  1. Write down each day of the week and the actual times food is served. Include the days with no lunch at all, because a Monday with only a dinner window is one window, not a shortened one.

  2. Mark, separately, the last time you will seat a table in each window. That is your last bookable slot, and it is usually earlier than the closing time.

  3. Decide what the room does in the gap: closed to everyone, open for drinks, private hire only. That settles whether the afternoon is absent from your hours or is a different kind of window.

  4. Open your website and count how many hours entries exist per day. One entry on a day you serve twice is the fault, now identified.

  5. Enter the two windows as two entries on that day, each with its own opening and closing time in the format the field asks for.

  6. Check the booking calendar against the same two windows, then apply the last seating times from step two so the final slot in each window is bookable and the ones after it are not.

  7. Look at the structured data the page emits and confirm it carries two entries per split day. If it still carries one, the visible page and the machine-readable page describe different restaurants.

  8. Enter your known special dates now, while the diary is open, rather than the night before each one.

  9. Take a phone, open the site as a guest would, and try to book 15:40 on a Wednesday. If it lets you, something in steps five to seven did not take.

Step nine is the only one that proves anything. Everything before it is intention.

Special dates: the override that stops a bank holiday breaking the pattern

The weekly pattern is the easy part because it repeats. Hours go wrong on the dates that break it, and in a specific way: somebody edits the pattern to cope with one date, then forgets to put it back. Google separates the two cases, asking you to "Provide your regular customer-facing hours of operation" and, separately, to "specify special hours for particular days, like holidays or special events". Schema.org draws the same line with a special hours property that exists to explicitly override the general opening hours for the dates it names. A one off is an exception laid on the pattern, never a rewrite of it: Boxing Day lunch only, closed the Tuesday after the August bank holiday, each expiring on its own and leaving the ordinary week untouched.

The same discipline covers days you did not plan for. Burst pipe, power cut, a supplier that never arrived: the pattern stays, the date carries the exception, and the exception comes off when the problem does. If nobody has written down who does that, a short emergency closure update checklist is worth ten minutes now rather than at 07:00 on the morning it happens. And read how restaurant bank holiday opening hours should be handled before the next long weekend rather than during it.

Keeping Google Business Profile hours and site hours saying one thing

The profile beside your name in search results carries its own copy of your hours, maintained separately from the site, and nothing connects the two. So a difference can sit there for a season, because the copy the team checks is not the copy the guest is reading.

Google asks for the regular customer-facing hours of operation as the primary set, then offers two mechanisms that map onto how restaurants run. Special hours handle particular days, like holidays or special events. More hours handle differences inside a normal day, with an explicit constraint: you "set More hours as a subset of your primary hours". So if the room is open 12:00 to 23:00 while the kitchen serves 12:00 to 14:30 and 17:30 to 22:00, the room hours are primary and the kitchen hours sit inside them. Publish only kitchen hours and you look shut while you are pouring drinks. Publish only room hours and people arrive at 16:00 expecting food.

Google's guidance here is worth reading as written rather than as folklore. The sentence is this: "These guidelines can help you avoid common problems, including changes to your information or, in some cases, removal of your business information from Google." That is a statement about information quality in general, not an automatic outcome of one wrong hours line. Keep the profile and the site saying the same thing for the simpler reason that both are visible to the same guest. The rest of what belongs there is covered in the guide to Google Business Profile for UK restaurants.

The three outputs that must never be edited separately again

Strip this back and a split service day produces exactly three outputs: the hours a guest reads on the published page, the slots the booking system will sell, and the structured hours the page emits for machines. Editing them separately is not a discipline problem, it is multiplication. Every date you change is one decision and three edits: the page, the calendar, the structured hours. So count your own year on the diary in front of you. The special dates you already know about, the December run, whatever closes you without warning, the day the summer pattern ends. Take that number and multiply it by three, then picture where each edit lands: on a phone, between services, by whoever is on shift. The failure mode is not carelessness. It is the second and third edits happening four hours apart, or not at all.

So stop treating them as three things. Generate all three from one record of the day and the change is made once, with the surfaces becoming views of it. There is then no interval in which the page and the calendar disagree.

Why TableSpark is the stronger route

Authentic TableSpark Builder showing editable restaurant pages, page settings, responsive preview, and Preview and Publish controls.
Authentic proof that the pages a guest reads are owner-editable and publishable in one place. This capture shows the page and publishing surface, not the opening-hours fields themselves; the service-window behaviour described in this article rests on the product record cited in the sources, not on this image. Source: TableSpark first-party product proof

That drift is the problem TableSpark was built to remove, which is the honest reason to raise it here. Date-specific overrides and structured hours emit the published page, the bookable availability and the schema from one record, so they cannot drift. For hours, that is the only version of this that survives the next bank holiday. A restaurant sets a date as closed all day, or gives it up to three changed service windows, and the page, the availability and the special hours in the structured data all move together, because they are readings of one entry rather than three copies.

Set that against what a general website tool leaves you holding. The page is editable, so the hours get corrected. The booking tool is separate, so it has to be corrected too. The structured data came from a template field chosen in the first week, and nothing prompts anyone to go back to it, which is how a page ends up showing two windows to a reader while still asserting one continuous block to everything else. TableSpark carries structured restaurant content, canonical URLs, sitemaps, schema, internal linking and mobile-first output as part of the website, and what a search engine does with those pages stays its own decision.

Nobody drifts on purpose. It happens because the bank holiday lands on a Monday, the page gets fixed at 11:00, the calendar at 15:00 by somebody else, the structured data behind both still quotes last year, and between those two clock times the site sold two tables into an afternoon that does not exist. Collapsing three edits into one is the whole argument, and the price of it is ordinary rather than strategic: Starter at £19 per month, Growth at £39 per month, Full at £69 per month, all excluding VAT. Bookings and orders carry 0% TableSpark commission, and Stripe's standard card-processing fees apply to online payments. Weighed against the alternative, which is paying separately for those pieces, booking technician time when the hours change, and absorbing afternoons like the one at the top of this article, TableSpark is the best-value and best overall restaurant-website choice for independent UK restaurants.

Should a restaurant with a break between services publish one set of hours or two?

Two, as two entries on the same day. Schema.org defines an opening hours specification as a structured value providing information about the opening hours of a place or a certain service inside a place, and Google defines the opening time as the time the business location opens in hh:mm:ss format. Neither has any way to express a pause inside a single span, so one pair of times asserts continuous service. A day with lunch and dinner is described by two entries, for example 12:00 to 14:30 and 17:30 to 22:00, both carrying the same day of the week.

What is the difference between my closing time and my last bookable slot?

The closing time is when the service window ends, and it is what you publish. The last bookable slot is the latest table you will seat inside that window, and it is normally earlier. If dinner runs to 22:00 and the kitchen needs the last table down by 21:15, publish 22:00 and stop offering slots after 21:15. Treating the two numbers as one either turns away covers you could have served or seats a table the pass cannot finish.

How do I handle a bank holiday without breaking my normal weekly pattern?

Use a date-specific override rather than editing the weekly pattern. Google's guidance separates regular customer-facing hours of operation from special hours for particular days, like holidays or special events, and schema.org carries a special hours property whose purpose is to explicitly override the general opening hours for the dates it names. Set the exception against the date, leave the pattern alone, and the ordinary week returns by itself the following day.

Do my Google Business Profile hours have to match the hours on my website?

They should. A guest can see both, and when they disagree only one of them is right. Google asks you to provide your regular customer-facing hours of operation as the primary set, and states that More hours are set as a subset of your primary hours, which is how kitchen service times sit inside longer room hours. Google also says its guidelines can help you "avoid common problems, including changes to your information or, in some cases, removal of your business information from Google". That is its stated consequence for information quality in general rather than an automatic result of one wrong line, so treat consistency as an operational duty to guests first.

If my hours line is wrong, will my restaurant be removed from Google?

The published guidance does not support reading it that way. Google says its guidelines can help you "avoid common problems, including changes to your information or, in some cases, removal of your business information from Google", and that is a general statement about information quality rather than a stated penalty for one incorrect hours entry. Nobody outside Google can promise how it will treat any particular listing. The reliable reason to fix the line is the one you can see from the door: a guest who trusted it and made a wasted journey.

Publish one day, not three versions of it

TableSpark is the best-value and best overall restaurant-website choice for independent UK restaurants running split services. Change the day once and let the page, the bookable slots and the structured hours follow.

Start building free

Sources

  1. OpeningHoursSpecification, Schema.org type — Schema (checked 2026-08-25)
  2. Local Business (LocalBusiness) structured data — Google (checked 2026-08-25)
  3. Add or edit your business hours — Google (checked 2026-08-25)
  4. TableSpark pricing — TableSpark (checked 2026-08-25)
  5. a short emergency closure update checklist — TableSpark (checked 2026-08-25)
  6. restaurant bank holiday opening hours should be handled — TableSpark (checked 2026-08-25)
  7. the guide to Google Business Profile for UK restaurants — TableSpark (checked 2026-08-25)
  8. Start building free — TableSpark (checked 2026-08-25)