It appears to be a Samsung problem for all day events. Since dates are stores as Unix timestamps, "all day" is displayed as 00:00:00 on the day in question. Evidently, Samsung's version of Calendar interprets that as midnight of the previous day. (I can't fault Samsung for that - many, many programmers have gotten bitten by that. I always considered "midnight" to be 00:00:01, just to avoid that possibility. A calendar being 1 second off is nothing, but having it interpreted as one day off is bad.)
Not much your client can do except make an all day "event" start at one second (or one minute) past midnight, and end at 1 second (or one minute) before the following midnight.
If the problem is with all events, not just "all day" ones, then Samsung has really messed up.
07-22-2019 05:23 PM