Exactly one hour, and only part of the year

This is daylight saving, and there are two versions of it. Either the site timezone is a fixed offset rather than a named city — in which case everything is an hour out for half the year — or an individual event was stored as an absolute instant rather than as a wall-clock time, in which case that one event moves when the clocks do.

The tell is scope. Everything wrong, half the year: site setting. One event or one series wrong: how that event was stored.

Exactly one hour, all year round

Something is applying an offset twice, or not at all. The classic version is an event whose time is stored in UTC being displayed as though it were already local. It is a code bug rather than a configuration problem, and it is worth reporting to whoever wrote the plugin with the exact stored value and the exact displayed value.

Several hours out

The event has no timezone of its own and is being interpreted in the server's — usually UTC. Common after importing a feed whose events carry floating times. A five- or six-hour error on a European site reading an American calendar, or vice versa, is nearly always this.

Some events right, some wrong

Two different code paths are formatting times, and one of them uses PHP's timezone rather than the site's. You will often find the single-event page correct and the list wrong, or the other way round. Again: a bug, not a setting.

Wrong for one visitor and right for another

The calendar is converting to the browser's timezone. Check on a device set to another country. For a venue this is the wrong behaviour and should be switched off if the plugin allows it; for an online event it is the right behaviour and should be labelled clearly so people know what they are looking at.

Two special dates worth testing

Some times are not wrong so much as impossible. On the morning the clocks go forward, a whole hour does not exist — in much of Europe there is no such thing as 02:30. On the autumn morning, that hour happens twice. An event stored at one of those wall-clock times is genuinely ambiguous, and different software resolves it differently.

The tool above tells you which case you are in. If it reports that your time does not exist or happens twice, the answer is not to debug the plugin but to move the event by an hour — the underlying date is not well defined, and no software can agree on it.