How to generate invoices from Google Calendar events
Turn the jobs already in your Google Calendar into invoices without retyping them. A step-by-step guide for service businesses, plus what to do when a job moves.
By Tobias Cunliffe, founder of Calendar Force7 min read
If you run a service business, your week is already written down. The jobs are in Google Calendar with the client, the address, the time and usually a phone number. Then at the end of the month you open your accounting software and type all of it in again.
That second pass is where the money leaks. Jobs get missed because they were never transcribed. Dates drift. Someone invoices the wrong client because two events looked similar. And it takes hours you are not paid for.
This guide covers how to generate invoices directly from Google Calendar events, so the calendar entry you already made becomes the invoice without being retyped.
What are your options for invoicing from Google Calendar?
Google Calendar has no invoicing of its own, so every route connects it to something that does. There are four realistic ones.
- An automation tool. Zapier, Make and similar services can watch your calendar for new events and create a draft invoice in accounting software such as Xero or QuickBooks. It suits a simple business where one event is one invoice at one rate. You then maintain the mapping yourself: which client an event belongs to, which rate applies, and what happens when an event is edited or moved after the invoice exists.
- A script and a mail merge. Google Apps Script can read your calendar and write rows into a Sheet, and a mail-merge add-on can turn those rows into documents. If you are comfortable maintaining a script and your invoicing is simple, that is a legitimate free option.
- Move to job-management software. Field-service and practice-management tools invoice well, because they own the schedule. The cost is that your bookings move into their calendar, and your staff have two places to look.
- Generate invoices from the calendar you already use. That is what Calendar Force does, and the rest of this guide walks through it. It is built for the parts the first two routes leave to you: matching a job to the right client when names are close, keeping different client types on different invoice formats and rates, and reconciling remittances when payments land.
Whichever you choose, keep your accounting software as the ledger. Calendar Force produces the invoice documents and marks them paid against remittances; it is not a replacement for Xero, QuickBooks or MYOB.
Why invoice from the calendar instead of retyping jobs?
Most invoicing tools want to become your scheduling system. You move your jobs into their booking calendar, and then invoicing works — but now you have two calendars, and the one your staff actually check is still Google.
The alternative is to treat Google Calendar as the record and derive everything from it. The event already holds what an invoice needs: who, what, when, and where. If your calendar is accurate — and it has to be, or your crew turns up at the wrong place — then invoices built from it are accurate too.
What you need before you start
- A Google account with your jobs in Google Calendar. One calendar or several, it does not matter.
- A group code in brackets in each event title. This is the key the whole thing hangs off: it identifies the client, decides which log the job lands in, and forms the invoice number. Codes are self-describing by convention —
(ABC)for an aged care client,(PJABC)for a private job,(NDISABC)for an NDIS participant,(COABC)for a company client. - A Calendar Force account. Signing in with Google provisions everything the tenant needs and connects your calendar, so the only setup left is entering your business details and your client lists.
Step 1: Import your calendar events into the log
In the web app, open the Services tab and go to Pull Services. Choose a start and end date and press Run.
This reads your Google Calendar for that window and writes each job as a row in your service log — a Google Sheet that lives in your own Drive. You never have to open the spreadsheet; Calendar Force renders it for you with the right columns for each type of work. The point of it being a Sheet in your Drive is ownership: the data is yours, and it stays yours if you stop paying.
Jobs sort themselves as they import. Calendar Force reads the group code out of the event title and looks it up against your client lists — aged care, NDIS, private and company. The list the code is registered in decides which log the job lands in, and therefore which rates, invoice template and invoicing rules apply to it. You set a client up once; every future job for them routes itself.
The group code is also what marks an event as billable work in the first place. Only events carrying a registered code are imported — so your admin reminders, notes to self, staff meetings and personal appointments stay out of the log without you having to do anything. Your calendar can go on being your whole calendar rather than a billing system you have to keep clean.
The practical upshot: if a job you expected is missing after an import, check the code in the event title first. An unregistered or mistyped code reads as “not billable” and the event is simply left where it is.
Step 2: Check the log before you invoice
Look down the imported rows and confirm the client names resolved correctly and the dates are right. It is the step people skip, and the one that saves you. Anything Calendar Force was unsure about is flagged for review rather than guessed at.
Fix problems here, not after the invoice has gone to a client.
Step 3: Generate the invoices
Under Invoicing on the same tab, use Bulk Create Invoices. Give it a date range and it generates an invoice for every un-invoiced job in that window, across all your logs, on the invoice template chosen for each client, with your logo and business details. It streams progress as it goes and can be cancelled mid-run.
Each invoice is a real Google Doc in your Drive, with a PDF, built from the event details rather than retyped. If you would rather do one at a time, single invoice creation and editing are available per job.
Step 4: Send them
Sending is one button. Email Invoices To Clients sends every invoice waiting to go out in a single run, grouping them by company as it goes — a client with five jobs this month gets one email with five invoices, not five separate emails.
They go from your own Gmail account to the recipient recorded against the client, so replies come back to you and the sent mail sits in your own mailbox rather than in some third party's system. Once an invoice has been sent it moves into your Processed folder, which is what stops the next run from sending it a second time.
Going further: invoices that raise themselves
Once the flow above is reliable, you can remove yourself from it. Your crew uploads a photo of the finished job from the field portal, the photo is matched to the calendar event, and the invoice is generated and emailed to the right recipient — typically in about thirty seconds, while they are still standing in the driveway.
Automatic invoicing is either off or on — there is no draft-for-review mode, and that is a deliberate trade. Creating a draft in your mailbox requires broader Gmail permissions than sending a single message does, and we would rather ask for less access to your mail than offer the extra step.
So turn it on the way you would trust any new hire: leave it off until the manual flow above has been right for a few weeks, switch it on for a small run first, and check what actually landed in your sent mail before relying on it. Anything Calendar Force is unsure about is flagged for review rather than invoiced automatically.
What happens if a job moves after it is imported?
Here is the failure mode worth knowing before it bites you. If you import a week's jobs and then move an event to a different day in Google Calendar, the log row keeps the original date. The invoice will then be dated wrong, or the automatic path will report that it cannot find a log row for that job.
It is not silent. A job whose date no longer matches is flagged for review instead of being invoiced on a wrong date, so it shows up as something to look at rather than as a bad invoice already sitting in a client's inbox.
The habit that avoids it: do your rescheduling first, and run Pull Services once the week has settled rather than at the start of it. If a job does move after importing, correct the date on the log row and then create that invoice manually — it will generate normally once the row matches the calendar again.
How much does invoicing cost?
Invoicing uses invoice tokens, separate from SMS credits. One token generates one invoice via Bulk Create Invoices or automatic invoicing. Creating or editing a single invoice, and emailing invoices to clients, do not consume tokens. Every account starts with 20 free tokens, and packs start at AUD 2.00 excluding GST. There is no required monthly fee.
Summary
- Keep your jobs in Google Calendar with a registered group code in the event title —
(ABC)aged care,(PJABC)private,(NDISABC)NDIS,(COABC)company. - Pull Services to import a date range into your service log.
- Check the imported rows and clear anything flagged for review.
- Bulk Create Invoices for the same date range.
- Review, then email from your own Gmail.
- When you trust it, let job photos trigger invoices automatically.
Calendar Force is a Google Workspace Marketplace add-on plus a web app, built for service businesses that already run their work out of Google Calendar. See pricing or start with 20 free invoice tokens.
Invoicing NDIS participants? The NDIS invoicing guide covers support items and state price limits. Checking your template meets the ATO's rules? See what an Australian tax invoice must include.