OK, that may explain the problem. I expect that if you set "force default timezone" to "Europe/London", the problem will be fixed.
What happens seems to be the following: On the 1st March, the server's timezone is GMT. When you make an appointment on 1st March for 1st April, 9am, then the appointment time is stored as "April 1, 9:00 GMT". (All times in the database are stored as Unix timestamps, which always refer to GMT.) Later, the timezone changes (on the server) to BST. Now "April 1, 9:00 GMT" is (correctly!) displayed as "April 1, 10:00 BST".
This is avoided by not using "Server's default time zone" but rather "Europe/London". Moodle will then take into account, at the time of data entry, that "April 1, 9:00 Europe/London" means "April 1, 9:00 BST" and hence "April 1, 8:00 GMT", and will store the time as such.
As far as I can see, this is a quirk in Moodle core, not directly in Scheduler. Likely, Moodle calendar events behave the same way.