A simple system that sends you email reminders for upcoming home maintenance tasks, managed in a Google Sheet.
-
Make a copy of the Google Sheet Template including the script.
NOTE: No data is shared. This script runs only on your sheet from your account.
-
Populate the "house_log" sheet with your maintenance tasks and the frequency that you want a reminder each item is due.
- If you made a copy of the sheet with the script, Go to Extensions > Apps Script from the menu bar. The script should be visible.
- If you prefer to make your own Google sheet, Go to Extensions > Apps Script, then replace the default code completely with the contents of Code.js.
- Set your email in
USER_CONFIGat the top:const USER_CONFIG = { email: "your.email@gmail.com" // PUT YOUR EMAIL HERE };
- Review the settings in
DEFAULT_CONFIG, such astriggerHours,triggerDays, andsheetNamein theDEFAULT_CONFIGto adjust or confirm. - Click Save (Ctrl+S)
- Select
mainfrom the function dropdown next to the Debug button in the Apps Script Editor. - Click Run
▶️ - Grant permissions when prompted.
- Note - This authorization will only grant YOU access to run YOUR own script against YOUR own sheet. No one else gets access.
- When it says "Google hasn't verified this app", click Advanced
- Then click
Go to (TEMPLATE) house maintenance (unsafe)or similar. - check Select All, then click Continue.
- The script will run and you will see the output logs in your browser. You should get a test email with 1 sample item, plus any other items due.
Once you verify the email was received, update the
Last Donecolumn for the task from the reminder with today's date. - Run
main()once more to see how the completed item is no longer flagged as due. - Select
setupSchedulefrom the function dropdown and click Run. This will set up the script on its automatic schedule. You're done!
- Run
setupScheduleonce, whenever you want to change the schedule settings. - To turn off emails, run
endScheduleonce from the Apps Script Editor to delete the recurring job.
All configuration is done in Code.js. You can customize any setting in the DEFAULT_CONFIG object:
email: Your email address (required - set inUSER_CONFIG)triggerDays: Days to run (e.g.,["SATURDAY", "SUNDAY"]) (default:["SATURDAY"])triggerHours: Hours to run (e.g.,[7, 19]for 7am and 7pm) (default:[7])
sheetName: Name of maintenance data sheet (default:"house_log")sheetRange: Cell range to read from sheet (default:"A1:L100")columns: Column header names that the script looks for
- No emails? Check your email in
USER_CONFIGand runmain()manually - Permission errors? Re-run the script and grant all requested permissions
- Wrong schedule? Run
setupSchedule()again to update triggers - Missing columns? Ensure your sheet has columns matching the expected names in
DEFAULT_CONFIG.columns
That's it! Your home maintenance reminders are now automated.