A sundial only tells the correct time on four days a year.
One of those days is today.
This is because clocks and sundials tell slightly different times.
Clocks tell mean solar time, a constant based on the rotation of the Earth.
But sundials tell apparent solar time, based on the actual position of the Sun.
If you were to start a stopwatch when the Sun is highest in the sky today and stop it when the Sun is highest in the sky tomorrow, you might expect that duration to be 24 hours precisely. But it isn't.
The length of a solar day varies because...
a) the Earth is tilted on its axis.
b) the orbit of the Earth is an ellipse, not a circle.
These two factors combine to create a variation of almost a minute.
For example, on 21st December a solar day lasts 24 hours 30 seconds. By 25th March it's 48 seconds shorter.
When you have a lot of consecutive solar days that are slightly longer than 24 hours, a sundial starts to lag behind a clock. Conversely when you have a lot of consecutive solar days that are slightly shorter than 24 hours, a sundial starts to catch up with a clock and then overtake it.
The amount by which the Sun runs ahead of a clock is given by the equation of time.
The equation of time varies dramatically throughout a year.
For example in mid-February sundials are 14½ minutes behind.
But at the start of November they're 16 minutes ahead.
Here's a graph.
It's complicated because it's two sine waves combined, one relating to the tilt of the Earth and the other relating to the eccentricity of the Earth's orbit.
The graph shows that at the start of the year sundials lag behind clocks. The gap increases to a maximum of almost fifteen minutes in February. The curve then rebounds until by late April a sundial is marginally ahead. In May the curve slips back again. Sundials spend the summer months lagging a few minutes behind. Then in the autumn they accelerate ahead, hitting a maximum of sixteen minutes in November. They remain ahead all the way to Christmas.
Time the Sun is highest in the sky
Feb 11
Apr 15
May 14
Jun 13
Jul 26
Sep 1
Nov 3
Dec 25
sundial ahead
11:56
11:44
sundial correct
12:00
12:00
12:00
12:00
sundial behind
12:14
12:07
There are four places where the graph crosses the zero axis, hence just four dates on which sundials tell the correct time.
Those dates are 15th April, 13th June, 1st September and 25th December.
n.b. dates can vary by a day due to leap years.
n.b. yesterday and tomorrow are pretty close to zero too.
n.b. three of the dates are BST, so technically Christmas Day is the only valid one.
Which is why, if you're anywhere near a sundial today, it will be correct.