Recurring Invoice Template for Google Docs (Mail Merge Ready)
Designed for subscription billing and retainers — with billing period, recurring amount, and payment schedule fields built in. Keep every client on one Google Sheet and generate the whole month's invoices in a single merge run. On Pro, schedule the run so they generate themselves.
The template
Everything in {{double braces}} is a merge tag. Each tag matches a column header in your Google Sheet, and Batch Merge fills in the value from each row automatically — one finished invoice per row.
Scheduling tip: on the Pro plan, Batch Merge can run this merge automatically on a schedule — perfect for monthly retainer invoices. Set the run for the 1st of the month, use formulas so Billing Period and Next Due Date roll forward on their own, and pair it with per-row email delivery so each invoice lands in {{Client Email}}'s inbox without you opening the sheet.
Set up your Google Sheet
Create one column per merge tag. Column headers must match the tag names exactly (they're case-sensitive). Each row is one subscriber or retainer client — and becomes one invoice:
| Your Company Name | Your Address | Your Email | Invoice Number | Invoice Date | Client Name | Client Address | Client Email | Service Description | Billing Period | Recurring Amount | Tax | Total Due | Next Due Date | Payment Method |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Summit Web Services | 219 Pine St, Denver, CO 80202 | billing@summitweb.co | INV-R-0715 | Jul 1, 2026 | Acme Design Co. | 12 Harbor Way, Portland, OR 97209 | ap@acme.co | Website maintenance retainer | Jul 1 – Jul 31, 2026 | $950.00 | $0.00 | $950.00 | Aug 1, 2026 | ACH transfer |
| Summit Web Services | 219 Pine St, Denver, CO 80202 | billing@summitweb.co | INV-R-0716 | Jul 1, 2026 | Northwind LLC | 88 King St, Seattle, WA 98104 | billing@northwind.com | SEO subscription — Growth plan | Jul 1 – Jul 31, 2026 | $1,400.00 | $115.50 | $1,515.50 | Aug 1, 2026 | Credit card on file |
Tip: make the date fields self-updating so the sheet is always ready for the next cycle — e.g. Billing Period = =TEXT(EOMONTH(TODAY(),-1)+1,"mmm d")&" – "&TEXT(EOMONTH(TODAY(),0),"mmm d, yyyy") and Next Due Date = =EOMONTH(TODAY(),0)+1. Batch Merge inserts the displayed value, so each run automatically picks up the current period.
Generate one invoice per row
Copy the template into a Google Doc. Click Copy template above, paste into a new Doc, and style it however you like — fonts, colors, your logo. Tags survive formatting.
Install Batch Merge free from the Google Workspace Marketplace, then open your sheet and choose Extensions → Batch Merge → Open Batch Merge.
Pick your template. Select the invoice Doc with the file picker. Batch Merge scans it and shows every tag as a pill — green when it matches a column header, amber when it doesn't. Fix any amber pills by renaming columns or tags.
Choose PDF output and run. Pick PDF (or DOCX / Google Doc), choose a Drive folder, and click Run — or, on Pro, set a schedule so the merge runs itself each billing cycle. Batch Merge writes a status per row and a Merge Log either way.
On the free plan you get 25 merge runs per month — each run can process your whole sheet, so monthly billing for a full client list fits comfortably. Scheduling and email delivery (send each invoice straight to {{Client Email}}) are on Pro.
FAQ
Can Batch Merge generate and send these invoices automatically every month?
Yes — that's the recurring-billing workflow Pro is built for. Turn on scheduling so the merge runs automatically each cycle (say, the 1st of the month), and enable per-row email delivery so each generated PDF goes straight to that row's {{Client Email}}. With self-updating date formulas in the sheet, monthly retainer invoices become fully hands-off.
How do I keep the billing period and next due date current without editing every row?
Use formulas instead of typed dates. =EOMONTH(TODAY(),0)+1 always shows the first of next month for Next Due Date, and a TEXT(EOMONTH(...)) pair builds the Billing Period range automatically. Batch Merge merges the displayed value, so every run — manual or scheduled — reflects the current cycle without touching the sheet.
What if my clients are on different billing cycles?
Each row carries its own billing period, amount, and next due date, so monthly and quarterly clients can share one sheet — the merged invoices will simply show different periods. If you want each cadence generated on its own rhythm, keep each group in its own spreadsheet with its own merge setup and run (or schedule, on Pro) each one when its cycle comes due.
Related templates
Put your recurring billing on autopilot
Batch Merge is free to install — 25 merge runs per month, no credit card.
Install Batch Merge Free