Germany does not have a workday. It has two.
German meeting volume climbs from 08:00 to a peak at 10:00, loses 44% of it by noon, then rebuilds to a second peak at 14:00 that never quite reaches the morning high. This is not a curve with a dip in it. It is two working days with a wall between them.
Domestic German meetings, attendee and host both on Europe/Berlin, over 365 days, cancellations excluded. n = 983,062.
German meeting volume by local starting hour: two peaks, one wall
Share of the German day by local starting hour. Domestic meetings, attendee and host both on Europe/Berlin, 365 days, cancellations excluded. n = 983,062.
From 11:00 to 12:00
−36.5%
A single hour empties more than a third of the German book. Measured from the 10:00 peak, the drop is 44.0%.
The second peak
14:00
107,955 meetings, which leaves it just over a fifth below the morning high. From there the curve declines steadily for the rest of the day.
Meetings in the sample
983,062
365 days of domestic German meetings. Large enough that the number cannot be waved away.
% of the German day
The bars are all one colour on purpose. The peak, the floor and the rebound are marked with labels, because recolouring three bars would encode rank rather than identity.
| Local hour | Meetings | Share of day |
|---|---|---|
| 06:00 | 230 | 0.02% |
| 07:00 | 2,495 | 0.25% |
| 08:00 | 37,485 | 3.81% |
| 09:00 | 103,897 | 10.57% |
| 10:00 | 138,607 | 14.10% |
| 11:00 | 122,214 | 12.43% |
| 12:00 | 77,615 | 7.90% |
| 13:00 | 88,867 | 9.04% |
| 14:00 | 107,955 | 10.98% |
| 15:00 | 103,156 | 10.49% |
| 16:00 | 95,631 | 9.73% |
| 17:00 | 58,697 | 5.97% |
| 18:00 | 27,755 | 2.82% |
| 19:00 | 11,353 | 1.15% |
| 20:00 | 4,890 | 0.50% |
| 21:00 | 1,202 | 0.12% |
A further 780 meetings start between 23:00 and 06:00. They are kept out of this table so a thin overnight tail cannot be mistaken for a pattern. Shares are of the full 24-hour day.
What this means for you
The noon hour is the least contested slot in the German calendar, and the least likely to be accepted.
How to act on it
- Two peaks means two scarcity windows. If your booking page shows a fortnight of 10:00 slots, the ones that matter go first and the page looks emptier than your calendar actually is.
- The 12:00 hour is available and unwanted. Filling it is a routing decision, not a demand signal: offering more of it will not produce more meetings.
- The afternoon peak is narrower than the morning one. After 15:00 the curve falls away steadily: a 17:00 slot is worth about 40% of a 10:00 slot.
What this chart cannot tell you
The limits are published with the finding, because the first reply to any chart is an attempt to find them.
- This is one market at a time. The hour is the attendee's local hour, and the domestic filter means the host was on the same clock: cross-border meetings behave differently and are excluded for that reason.
- The sample is meetergo's German customer base, which skews B2B. Consumer-facing booking (clinics, salons, workshops) sits in a different shape and is not separated out in this cut.
- Volume is not attendance. This chart counts meetings that were booked and not cancelled; whether anyone joined is a separate measurement, and one we do not yet publish.
›The query behind this report
Run against PostgreSQL. Multi-host meetings duplicate rows across the host join, so the counts use COUNT(DISTINCT).
SELECT
at."timezone",
EXTRACT(HOUR FROM (a."start"::timestamptz AT TIME ZONE at."timezone"))::int AS local_hour,
COUNT(DISTINCT a."id") AS meetings
FROM "appointment" a
JOIN "attendee" at ON at."appointmentId" = a."id"
JOIN "appointment_hosts" ah ON ah."appointmentId" = a."id"
JOIN "user" u ON u."id" = ah."userId"
WHERE a."isCancelled" = false
-- Domestic only. Without this the attendee's local hour is dictated by the
-- host's calendar and the curve measures our host base, not the market.
AND at."timezone" = u."timezone"
AND at."timezone" IN ('Europe/Berlin','Europe/Vienna','Europe/Amsterdam',
'Europe/Zurich','Europe/Paris')
AND a."createdAt" >= now() - interval '365 days'
GROUP BY 1, 2
ORDER BY 1, 2;How to cite this
Free to reuse with attribution. Copy the line below or link the chart directly: either way the sample size travels with it.
Across 983,062 domestic German meetings booked through meetergo over 365 days, volume peaks at 10:00, falls 44.0% to a floor at 12:00, and rebounds to a second peak at 14:00, a two-peak workday rather than a single curve.
How we collect this data
meetergo is scheduling software used across Europe. The reports here are a by-product of running it: aggregate patterns in when meetings get booked and when they start.
Production data, not a survey
Every figure is a query against the live appointment, attendee and host tables. Nobody was asked what time they prefer to meet: these are the meetings that actually happened.
The method travels with the number
Sample size, window and filter sit in the subhead of every chart, and the SQL sits at the bottom of every report. Run it against your own book if you have one.
Re-run each quarter
Working hours are seasonal: summer hours, the December collapse, the January surge. The meeting clock is re-queried rather than republished unchanged.
Aggregated and non-identifiable
meetergo sells GDPR compliance, so no cut is fine enough to trace back to one customer's booking volume. Every market shown clears a minimum sample of 3,000 meetings.
More from the data hub
- Working patternsEurope
Europe's lunch break, measured in a million meetings
Five European markets, five midday dips, and France's arrives a full hour after everybody else's.
August 20, 2026n = 1,060,456
- SalesBooking behaviour
Only 14% of meetings are booked for today or tomorrow
841,480 completed meetings, sorted by the gap between booking and start. The speed-to-lead orthodoxy describes a seventh of them.
August 20, 2026n = 841,480
