I think you have a typo. Don't you want an end time of 5 am for the first row?
I am not clear what you mean by a "list field containing event 1". Is Event 1 a record in another table, data with a time that falls between 4 and 5 am? Why a "list"? do you mean that there could be multiple events falling in that same time range?
No typo, the first event overlaps the second. I have an Event table with 3 records. I wanted my resulting relationship to show the 24 CalendarRecords with all matching Events (for that hour).
In the end, I resolved the issue myself using the following relationship:
Events::startTime <= CalendarHours::hour
Events::endTime > CalendarHours::hour
And then I have an id_Event field in CalendarHours as a Calculation with just Events::id. This doesn't allow overlapping Events, but I'm ok with that for now.
One question I have though, the relationship I had above seems backwards, I originally had the following, but nothing ever matched, why is the logic "backwards"!?
Events::startTime >= CalendarHours::hour
Events::endTime < CalendarHours::hour
It's the phrase "the 24 Calendar records" that has me puzzled. What 24 records is that? why 24? One for each hour of the day? 24 days?
As to why it seems backwards, well it depends on context. If the current record is a CalendarHours record on a layout (or portal) based on CalendarHours, Its Hour must be greater than (come after )the event start time and less than (come before) the end time or the records don't match.