meetergo
Working patternsGermany

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.

meetergo DataPublished August 20, 2026Data as of August 20, 2026n = 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

048121606070809peak14.1%1011floor7.9%1213second peak11.0%1415161718192021

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.

meetergo.com/data
German domestic meetings by local starting hour
Local hourMeetingsShare of day
06:002300.02%
07:002,4950.25%
08:0037,4853.81%
09:00103,89710.57%
10:00138,60714.10%
11:00122,21412.43%
12:0077,6157.90%
13:0088,8679.04%
14:00107,95510.98%
15:00103,15610.49%
16:0095,6319.73%
17:0058,6975.97%
18:0027,7552.82%
19:0011,3531.15%
20:004,8900.50%
21:001,2020.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.
Source: https://meetergo.com/en/data/germanys-two-peak-workday

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.

GDPR-compliant. Hosted on EU servers.

Replace five tools with one. Add only the apps you need.

Start with scheduling. Turn on forms, video, CRM and AI notes only when they fit your workflow.

No credit card required. Cancel anytime.