There is a bug on the calendar app which I can replicate:
I create an event from Wednesday 8pm to Sunday 8pm and save it. I then open it again and change Wednesday to Tuesday (without touching Sunday). Upon saving the event, it jumps from Tuesday to Saturday, instead of Tuesday-Sunday.
Changing the start date/time of an existing event will shift the event, keeping the original duration.
Seems unusual to me that the calendar end date automatically adjusts one day back just because you adjust the start date of an existing calendar event.
However as thats the way its hardcoded as you say, then the way around it is, when you edit the calendar event and you change the start date, (change the end date at the same time before you save the event), so the end date then doesn’t jump back a day.
@Gary ok yes you are correct, after testing a few other calendars including Outlook and Google online web calendars & mob app calendars, they also do it the way you advised. Must have been a standard formalized to do it that way years ago.