7.2.X, 7.3.X, Master
Steps to reproduce:
1. Set the instance default time zone to UTC+2 (Central European Summer time). You can do this at the setup wizard, or in Control Panel/ Configuration/Instance Settings/Localization.
2. Use some dummy SMTP tool for receiving emails sent by the portal.
3. Set the time zone of the admin user to UTC+2 (Account Settings/Preferences/Display Settings).
4. Create a new user, A.
5. Put a Calendar portlet on a page and create an all-day event (e.g. for April 15) and invite the A user. Save.
6. Check the email that was sent to A.
You have been invited to event <a href="http://localhost:8080/c/portal/layout?p_l_id=2&p_v_l_s_g_id=0&_com_liferay_calendar_web_portlet_CalendarPortlet_mvcPath=%2Fview_calendar_booking.jsp&p_p_id=com_liferay_calendar_web_portlet_CalendarPortlet&p_p_lifecycle=0&p_p_state=maximized&_com_liferay_calendar_web_portlet_CalendarPortlet_calendarBookingId=34023">ev1</a> that will start on <strong>4/14/22 10:00 PM CET</strong>.<br /><br />
So it features the previous day, with 10:00 PM
Expected: It should feature the day of the event (15th) with 00:00 hour. (You get this result if you leave out step3, and leave the time zone of the admin user to UTC)
Reproduced on both 7.2.x and Master.
LPS-149303 Recurring All Day Calendar Event are skipping months when the Time Zone is not UTC