When I was preparing for a potential 1099 role, one of the requirements was tracking my time and submitting weekly invoices. While that's simple in theory, the traditional process is surprisingly inefficient. You have to remember to manually record every clock-in and clock-out, organize it into a spreadsheet, calculate totals, build an invoice, and send it each week. Over the course of a year, that often means managing dozens of separate spreadsheets or constantly reformatting the same data. It works, but it's repetitive, time-consuming, and easy to make mistakes.
Instead of accepting that workflow, I asked a different question: How can we make this as effortless as possible? That led me to use Google Sheets as the foundation of the solution. Rather than just being a spreadsheet, it became the central database that could store every punch, calculate hours automatically, generate invoices, and automate the repetitive tasks that normally take time every week. The goal wasn't just to track hours. It was to eliminate as much manual work as possible while making the entire process faster, more accurate, and easier to maintain.
I knew this was possible because I'd built similar workflows before, but this time my goal was to remove as much manual effort as possible. If someone has to remember to type in timestamps every time they start or stop working, eventually they'll forget.
So, I built a simple HTML interface connected to Google Sheets with one large button. Instead of manually entering times, all I had to do was click the button. Behind the scenes, the logic determined whether the click should be recorded as a clock-in or a clock-out. If the most recent row already contained a clock-in without a corresponding clock-out, it automatically filled in the clock-out time. If the previous entry was complete, it created a new row and recorded the next click as a clock-in.
The workflow also supported multiple work sessions in the same day, allowing me to clock in and out as many times as needed without creating duplicate entries or requiring any manual corrections. From the user's perspective, it was just a single button. The underlying automation handled all of the complexity.
The next challenge was what I considered the most complex part: generating invoices automatically.
I've worked with several accounting platforms throughout my career, but I didn't want to purchase or maintain dedicated invoicing software for a simple 1099 workflow. Since I already knew Google Apps Script could send automated emails with dynamically generated content, the question became: Could I build the entire invoicing process directly from the data stored in Google Sheets?
The answer was yes. The biggest challenge wasn't accessing the data, it was building the logic. It took several iterations with AI to refine the scripts, handle edge cases, and ensure the workflow behaved correctly. Once everything was working, the system automatically gathered every punch from the previous Sunday through Saturday, calculated the total hours worked, determined the appropriate billing week, and generated a professionally formatted invoice labeled with the correct year and week number, such as 2026-28.
Rather than immediately sending the invoice to the client, I wanted to build in one final quality check. The first email was sent to me and included a Review & Confirm button. Clicking it opened a review page where I could verify my hours, punch times, dates worked, totals, and billing amount before approving the invoice.
Once I confirmed everything was accurate, the system automatically generated a second, client-ready version of the invoice without the approval button and emailed it to the intended recipient. The result was a workflow that automated the tedious administrative work while still giving me complete control over the final output. Instead of spending time every week compiling timesheets and formatting invoices, the process was reduced to reviewing the information and clicking Confirm. That combination of automation and human verification made the workflow both efficient and reliable.