PTO and payroll system
Runs every pay periodStaff request time off from a phone, the manager approves in one tap, and payroll prep builds itself every pay period.
60 to 100 hrs/yr
of admin time returned, and the paper process gone
Slip handling, calendar checks and payroll prep.
How it works
-
Request on a phone
Staff request time off on one form from any phone, picking dates and a type, partial days included. The green paper slip is gone.

-
One-tap approval
The manager approves or denies with one tap from an email, in the office or anywhere else, with the request's details right there.

-
Calendar updates itself
Approved time off counts weekdays only, follows the clinic's rounding rule, and lands on the attendance sheet and the shared calendar by itself.

-
Payroll report builds
Every pay period, a payroll report builds itself in a dated folder for the bookkeeper. No one prepares it from paper.

What I built
One form, any phone
Staff pick their dates and a type on one Google Form from any phone, partial days included. The request goes straight to the manager by email.
One-tap approval
The manager approves or denies from that email. The script counts weekdays only, rounds to the clinic's rule, checks department conflicts, and writes the attendance sheet and shared calendar.
Balances that can't drift
Accrual follows each hire anniversary, and every balance is recalculated from the grid on every change instead of added to, so a manual edit can never throw the totals off.
Payroll and new years
A payroll report lands in a dated folder for the bookkeeper every pay period, and next year's records for the whole staff are built with one click from the admin menu.


“It is already saving me some time, and I am getting information back to the team much quicker.”
Gabe Walsh, Office Manager, Wichita Family Vision
Engineering
Apps Script over a hosted app: the clinic already pays for Google Workspace, and the data never leaves.
- How it fits together
- A form trigger into Apps Script: date and accrual math, sheet and calendar writes, a timed payroll builder.
- Tested
- 183 regression checks across 5 suites in the public repo, all passing.
- Runs on
- Inside the clinic's own Google Workspace.
- Apps Script
- Google Forms
- Sheets
- Calendar
- clasp
- Node
My role. I built the engine, the migration and the payroll report.