Certifications, licenses, insurance policies, contracts, domain names, passports, software subscriptions: things that expire are usually tracked in a spreadsheet, and usually noticed a week too late. This guide sets up a Google Sheet that emails the right person a set number of days before each expiration date, every morning, automatically. It’s free and needs no add-on.
It uses Sheets Deadline Reminders, a free, MIT-licensed Apps Script.
One row per item that expires. Two column names matter: Email (who gets the reminder) and Due Date (the expiration date, formatted as a date). Everything else is up to you:
| Item | Owner | Due Date | Done | |
|---|---|---|---|---|
| Forklift certification | Ana | ana@example.com | 12/01/2026 | ☐ |
| Liability insurance | Office | office@example.com | 01/15/2027 | ☐ |
| example.com domain | IT | it@example.com | 03/09/2027 | ☐ |
To send yourself every reminder instead of each owner, put your own address in every Email cell.
Expirations usually need more notice than task deadlines. Open the script (Step 3) and change the line at the top:
const DAYS_BEFORE = 30;
Each row is then reminded once, when it’s 30 days or less from expiring. Use 60 or 90 for things with long renewal processes.
Code.gs, and set DAYS_BEFORE as above. Save.In Gmail, write a draft. Any column can go in the message:
Subject:
{{Item}} expires on {{Due Date}}Hi {{Owner}}, {{Item}} expires on {{Due Date}}. Please renew it and tick “Done” in the tracker.
📅 Reminders → Turn On Daily Reminders, then type the draft’s subject. Approve the permission prompt the first time (“Google hasn’t verified this app” → Advanced → Go to (your project name) → Allow; it’s your own script).
Anything already inside the window is emailed right away. After that, the sheet checks itself every morning.
You have two options:
Does my computer need to be on? No. The daily check runs on Google’s servers.
Can I get one reminder 30 days out and another 7 days out? Not automatically: it sends one reminder per expiration date. For a last-minute nudge, clear that row’s Reminder Status cell when you want it, and the next morning’s run sends it again.
Is it free? Yes. Gmail allows scripts about 100 recipients a day on a personal account and 1,500 on Google Workspace, which is plenty for a tracker.
Get the script on GitHub · General guide: automatic email reminders from Google Sheets