could have used also WideCharToMultiByte with CP_UTF8 instead of re-writing UnicodeToUtf8.
That's an idea, not tried it I'll give it a go. But it's still strange why the UnicodeToUtf8 doesn't appears to work.
I'm not even sure it's the UnitcodeToUTF8 that's the problem, but a bit deeper down with unicodestring type, as while I was tracing the first character decoded a proper 2 byte widechar, but the next char for some reason only decoded 1 byte. What I'll do is create a simple demo for Dev's to have a look at. I think I might be able to demo this behavior without having to change your locale.
@Avishai, Don't worry as this exercise appears to be exposing some issues with FPC/Lazarus, so I believe it will benefit everyone if we can track down what's happening.
(Translation: Day 1, Day 2, Day 3)
I'm using what windows gives, I've maybe used the wrong date format.
I'll be enhancing the Event so that more customization can be done, you will need this feature anyway with having Hebrew Calendar on English Login.