Yes, time is a very simple concept, until you are in two different places (at the same time, which it is not). And I should really correct some of my reply above as it is not entirely accurate.
If you have a server (the HA device) in Brussels, and you have a smart phone in Egypt, you can have a time difference that can be very difficult to deal with.
The HA device works entirely in UTC (Universal Coordinated Time) no matter what the location is.
The ‘location’ setting and time zone offset setting is used to determine the machine ‘local time’.
23:35 CET (Central European Time) during DST (Daylight Saving Time) is UTC +2, and is therefore 21:35 UTC. Note that local time is UTC +1 hour for CET and another +1 hour for European DST.
Almost all display / automations in HA work in local time, so the location setting is used to adjust the time at the point of use. Set for Brussels at GMT+1 clearly works, and this also successfully takes into account the DST shift during the correct time period (last Sunday in March to last Sunday in October, change at 01:00 UTC).
I am in the UK, which is on BST (GMT as DST), so my HA UTC times are moved +1 hour forwards to BST on display. The complexity of this is shown when I used nabucasa link to view my HA when I was travelling in Europe. My smart phone, using the mobile signal, worked out that it was on CEST (Central Europe Summer Time) and moved my time forward by a further one hour. When I looked at some of my dashboard display, the base UTC time that was being displayed was moved to local time - which was the time local to my phone (and hence the JavaScript on my phone, using the machine location settings).
You can see that the UTC time is shown as CEST time, whereas it would normally appear either as GMT (winter) or BST (summer), and yes the time was correct but just one hour more than it would be back in the UK.
Now, if you are in Egypt the time is one hour further ahead, being based on GMT+2. Egypt also has DST, which is much more complicated than European (and UK) DST.
https://en.wikipedia.org/wiki/Egypt_Standard_Time
I note from the above that DST has come back into use just this year, and runs from the last Friday in April to the last Thursday in October, with the change at 00:00 local time.
To correct my posting above, I quote, from https://stackoverflow.com/tags/timezone/info
- An offset is just a number that represents how far a particular date/time value is ahead or behind UTC.
- Most offsets are expressed in whole hours.
- But there are many that are 30-minute offset.
- And there are a few that are 45-minute offset.
- A time zone contains much more:
- A name or ID that can be used to identify the zone.
- One or more offsets from UTC
- The specific dates and times that the zone transitions between offsets.
- Sometimes, a separate language-specific display name that can be presented to a user
The point with offsets is that the machine works out local time as +/- hours based on UTC, hence UK would be +0, Brussels +1, and Egypt +2. The computer can easily work out the time shift from this setting, but has no idea about DST.
The point with time zones and DST is that this is a temporary +1 hour shift, applied using local political rules and dates and times. A computer by itself has no chance whatsoever of knowing if DST is ‘ON’ or ‘OFF’, and this has to be done by looking it up. The question is, what does HA (as a server) do to find the time zone DST setting? I assume that HA is using the device location (NOT the time zone offset) to look up the full time zone info including the DST. Indeed, HA may be using a mix of both - using the time zone offset for the hour shift each time this is required, but also using the location to do a (only on start-up) time zone lookup for the full DST info, based on the device location settings.
https://www.timeanddate.com/news/time/dst-egypt-2023.html
So, if your HA device is in Egypt (or at least thinks it is) and you have set the machine time offset (time zone) to GMT+02:00, it should know that 23:35 local time is 20:35 UTC, and then trigger at that point.
In looking on the web I see that my current time in the UK is 16:30, in Brussels it is 17:30, and in Cairo it is 18:30. However, I am finding other ‘time’ sites that show local time in Cairo is 17:30 - because they have not updated for DST.
I wonder if you have updated the time zone (correctly called the offset) to +02:00, but have left the HA machine location as Brussels?
In this case the machine thinks it is in Brussels and on GMT+02:00 CEST, whereas you want it to be in Cairo and on GMT+03:00 EEST.
Of course, on Friday and Saturday this week your notification should work, since the Egypt DST stops and the EU DST does not, so Cairo will be on the same time as Brussels (for two days).
Time for a coffee…