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.
7 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.
Why the calendar is the right source of truth
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 find Pull Services in the Set & Forget panel. 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
This is the step people skip, and it is the one that saves you. Look down the imported rows and confirm the client names resolved correctly and the dates are right. 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
Still in the Set & Forget panel, 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 your own branded template. 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.
The gotcha nobody warns you about: moved jobs
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.
What it costs
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.20. There is no monthly fee.
If you are not using Calendar Force
It is worth saying plainly that you can get part of the way without any of this. 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.
What it does not give you is the parts that break: matching a job to the right client when the names are close, keeping different client types on different invoice formats, reconciling remittances when payments land, and doing it all without opening the spreadsheet. That is the line where a purpose-built tool starts paying for itself.
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.