Time Sheet -- Template for submitting hours of work for approval

My first template just got approved!

Time Sheet (Basic Version)

This ‘Basic’ version of my Time Sheet app allows employees to submit their hours of work per day (including start time, end time and break time) for approval by their chosen Manager. The app will prevent duplicate entries per day per employee by checking against previously submitted time sheets.

Employees can easily view their pending and approved time sheets from their profile and an App Administrator can assign Managers ----> Managers can easily view their staff’s time sheets, approve them, and provide feedback to each staff member (i.e. “Great work this week!”).

This app relies on formulas in the Sheet to perform duration calculations to add up the hours worked per day. This is actually a benefit though, as it means that the totals are displayed in the spreadsheet (not just the Glide Editor) and can be easily exported into Payroll Software, if desired. Tying app submissions to an organization’s Payroll Software can significantly reduce the work of payroll officers by configuring your own custom sheet with queries of Hours Worked per pay period.

An Advanced version of this app will be coming soon — the advanced version will allow for a single employee to submit hours for multiple positions, in multiple departments/locations. The Advanced version will check for duplicates for each position and location to help prevent the submission of duplicate hours.


Looks REALLY clean! Congrats. Can’t wait to test.

1 Like

Thanks! I’m not 100% sure how templates work, but if you preview as “employee1@email.com” it lets you act like a signed in user. Do you think that instruction should be added to the “How to” screen?

Looks really good.

I had one feedback though: When you create a timesheet, it could take a lot of time to enter the times for 14 days in one go. Besides, you need to have this information handy for all 14 days.

My suggestion would be to only create a timesheet. Then in the timesheet detail, the user can update the hours for each day as the day progresses.

A quicker fix would be to scale it down to one week or even one day. But I am assuming you’ve crafted this to work with bi-monthly payments.

Great logic behind the app though. Really loved it.

Yes. I add it now to all my templates as conditional text (if email is empty). Thanks!


Thanks for the feedback! My original working version of the app had users choose the days of the week and the start/end/break times for each day before the form button was pressed. This worked, but it meant that all that data would remain in the fields when someone changes their Pay Period selection. This seemed okay at first, but then I realized that if someone entered times in Tuesday, for example, but the following week they didn’t work Tuesday… even if they deselect the Tuesday checkbox, the hours worked that were previously entered were still translated to the form as column values. AND since the start/end/break times had to be required fields, it was difficult for users to clear their selections (and even more difficult to force them to be cleared if a day was deselected).

All that being said, I agree with your suggestion, but couldn’t make it work without potential errors. This app is going to be in active use very soon and I needed it to be solid and reliable.

I’ve updated this template to make it easier to preview and also created the promotional video below to better demonstrate the functionality.

Edit: updated template needs to be approved (I’ll post a link to the template once it’s approved)


NEW VERSION in the works that uses Actions for some really cool features!


  • Users cannot submit duplicated hours
  • Users can submit times between other times that have already been submitted
  • Users can submit up to 5 time slots per day
  • Managers can BULK approve outstanding time sheets with one click

Once I’ve cleaned up all the extra columns and formulas I had to create to figure this all out, I’ll get this submitted to the template store. This took a lot of work and some whacky logic, but it works!