I'd recommend that you create one button that has 2 actions (based on the current In/Out status)
(1) Will us the API_AddRecord call to create a new 'time log' record with a date/time of the clock in time.
and
(2) Use the API_EditRecord call to edit the currently 'clocked in' record to add an 'out' date/time.
What you gain;
- Each day you have a single record.
- Duration calculations are based on the in/out fields
- Summarized data can be filtered easily with different criteria (today, yesterday, last 7 days, etc).
- An easy report that can be added to a dashboard for each user to clock in/out
Tricks:
You will need the Record ID# of the lastest "In" record, and the record ID# of the latest "Out" record.
Because you will need to make the button (formula-rich text) dynamic to Clock In (Add) or Clock Out (Edit) based on the current status.