Illustration: a spreadsheet with a calendar page peeling off it at sunrise
Finance workbooks · Automation · Built in-house

Company books in Google Sheets that check themselves every morning.

Built in-house at MUVES to run our own money, filing and payment calendar, on tools any small business already pays for.

Custom software, at work.

See the custom software services

Built
An Apps Script project, an eight-tab workbook and daily jobs around it
Stack
Google SheetsApps Script (clasp)GmailDriveCalendar
Timeline
October 2026
Status
In daily use for MUVES's own books
Scale
8 tabs, 7 scripted parts, one company's books

The problem

A new company has bills, client payments, receipts in email and subscriptions that renew on dates nobody remembers. We wanted books that live where we already work, in Google Workspace. A plain spreadsheet can do that, but it never tells you when it is wrong.

A shoebox overflowing with paper receipts next to a laptop inbox full of invoice emails and a wall calendar with no renewal dates marked.
The workbook

Eight tabs, one set of books.

Cash basis, double entry. Every number on the summary tabs comes from the Journal, so there is one place where an entry lives. Shown here without figures.

TabWhat it holds
OverviewThe dashboard, with the CHECKS block at the top
Monthly P&LMoney in and out, month by month
OwnersWhat each founder put in and took out
StatementsBank and card statement lines, for reconciling
MoneyEach account and what it should hold
ClientsWho was billed, who paid, who is due
RecurringEvery subscription and the date it renews
JournalEvery entry, both sides, with its source
What we built

Scripts that feed the workbook, and checks that read it.

COMES INAPPS SCRIPTCOMES OUTGmailClient threads andtheir attachmentsNew entriesSent in through atoken-lockedendpointRecurring listEvery subscriptionand its date1runUpdateLabels the threadand files theattachment2runPendingBooks each changeonce, refuses aduplicate3Daily jobAdds each bill asan Expected row4The workbookOverviewMonthly P&LOwnersStatementsMoneyClientsRecurringJournalcash basis, double entry5ReconcilemuvesReconcilematches books tostatements6CHECKS blockGoes red whenanything does notadd up76 am calendarRebuilt from theworkbook dailyDriveOne folder perclient, built bysetupMuvesThe ownersRead the checks,decide what to payGoogle CalendarWhat is due, andwhen
How it fits together. Three ways in, one workbook, three ways out. The red boxes are the two places that refuse bad data: a duplicate entry is turned away, and numbers that do not agree turn the CHECKS block red.
  1. One setup script

    setupMuves, run once with clasp, built the company's Drive folders and the workbook itself, so the structure is code that can be rebuilt, not clicks that have to be remembered.

  2. Email filing

    runUpdate labels client threads in Gmail and copies their attachments into the right client folder in Drive.

  3. Booking, once

    runPending books queued changes into the Journal and refuses any it has already booked. That refusal is tested. New entries can arrive through a small web endpoint that only accepts a secret token.

  4. Expected bills

    A daily job posts every subscription due as an "Expected" row, so a renewal shows up before it hits the account.

  5. Reconcile

    muvesReconcile lines the books up against the statements, so a missing or doubled entry stands out.

  6. A CHECKS block

    A block on the dashboard that turns red when the books do not agree with themselves.

  7. A calendar at 6 am

    Every morning at 6 the payment calendar is rebuilt from the workbook in Google Calendar: what is due, and when.

How it runs

A day in the books.

WhenWhat happensWho
6:00Payment calendar rebuilt from the workbookScript
DailyDue subscriptions posted as Expected rowsScript
Each update runClient threads labelled, attachments filed to DriveScript
When something is spentEntry queued, booked once, duplicates refusedScript, from a founder's entry
Any timeCHECKS block read. Red means stop and lookA founder
Each statementReconcile run, differences clearedA founder, with the script
What changed

Books that say when they are wrong.

A spreadsheet window with a CHECKS block glowing green at the top, a calendar beside it with renewals already marked.

MUVES's books were reconciled through October 7 on this system, and every renewal now appears on a calendar before it is charged. We keep our own figures private, so there are no money numbers on this page.

The bigger change is the habit: the CHECKS block is green or it is not, and nobody has to remember which subscription renews on which date.

What we'd reuse

For a business that lives in Google Workspace and is not ready for an accounting system.

A cleaning company tracking client invoices and supply runs. A two-person agency with retainers and software bills. A food truck with daily cash and monthly permits. The parts carry over: a journal, expected rows, a reconcile step, a CHECKS block and a calendar. We do not rebuild past years of accounting, and we tell you when it is time for real accounting software.

Is your money in a spreadsheet that never warns you?

Show us the file. On a free call we will tell you what it would take to make it check itself.