If your idea of three events seems ideal to me, and I think it's the right thing to do. However, you have taken a date that I do not know. I'll give you an example: I arrive at half past seven, and I register it as an entrance. At this point, I don't know when I'm going to stop. At eleven, I decide to take a break: I write it down. Now I have two records for day X. At this time, function 1 can be applied, called hours worked, just as you said. To do this, you have to take the difference between the times of those two records.
We went to breakfast, of which I already have the first hour: the start. When I come back, I write down the time. As before, I have to use function 2 in this case, which will take the start time of one record and the end time of the other record.
We continue. Now he would file and have the record with the start time of the second work period. When I clock in to go home, another record is created with that departure time. We apply function 1 that we have used above, taking the time of both registers.
All subtractions would be saved in a table along with the date, so you can easily add them later in a totals query.
I think that with that example it is clear that there would be three functions. Later he would need to calculate lunch, but it would be similar to what we have done for breakfast.
This has to be so because I don't enter an end date.