Someone always gets the bad meeting time.
If it’s always the same person, that’s a problem. You’ve created a second-class team member. Their participation is an afterthought.
Rotate the inconvenience.
If a meeting is truly necessary and spans many time zones, take turns. This week it’s early for San Francisco. Next week it’s late for London. The month after, it’s weird for Singapore.
Better yet: question whether the meeting needs to exist. Most don’t.
Async communication respects everyone’s hours equally. That’s one reason it should be the default.