Start HereIntroduction: Escaping the Calendar Chaos
If you've ever stood in the school pickup line wondering "Wait, was soccer moved to Thursday?", this guide is for you.
Parenting comes with an invisible job that nobody talks about enough: remembering everything. Dentist appointments. Picture day. The birthday party that needs a gift. The permission slip due Friday. The early-release day that somehow nobody mentioned.
Researchers call this the mental load, and in most households one person ends up carrying almost all of it, usually in their head, on sticky notes, in text threads, and across three different calendar apps that don't talk to each other.
The problem isn't that you're disorganized. The problem is that your family has no single source of truth. When information lives in five places, someone always ends up holding the whole picture alone.
This guide fixes that. By the end, you'll have:
- โ One family calendar that shows up automatically on both parents' phones
- โ A color system where everyone can see at a glance who needs to be where
- โ A shared grocery list that updates in real time
- โ School emails that automatically reach both parents
- โ A kitchen speaker that reads the day's schedule every morning
- โ A Sunday night email summarizing the week ahead
- โ Text alerts for anything urgent happening tomorrow
- โ Automatic color-coding, so events get the right color even when someone forgets
- โ (Optional) A wall-mounted display that works like a digital whiteboard
You don't need to be "a tech person." You don't need to buy anything. You just need to follow the steps in order, one click at a time. Every button you need to press is written in bold.
Take a deep breath. Grab a coffee. Let's build your Family Command Center. โ
๐ก Tip: Set aside about 60โ90 minutes for Phases 1 and 2. Phases 3 and 4 can be done on another day. For the setup steps, a laptop or desktop computer is much easier than a phone.
Phase 1The Foundation (Setting Up the Calendar)
Step 1: Create a Dedicated Family Google Account
We're going to create a brand-new Google account that belongs to the family, not to either parent. Something like thesmithfamily@gmail.com.
Why not just use Mom's or Dad's account?
It's tempting to skip this step, but here's why it matters:
- It's neutral ground. No one "owns" the family calendar, so no one becomes the default family secretary.
- It keeps work and personal life separate. Your family calendar won't get tangled with work meetings or your personal Gmail inbox.
- It's the home base for everything else in this guide. The family account will host the calendar, the automations, and the kitchen display. If a parent ever changes their personal email, the family system keeps working.
- School and activity emails have a home. You can give this address to coaches, schools, and camps.
How to create it
- Open a web browser (Chrome, Safari, Edge, etc.) and go to accounts.google.com/signup.
- If you're already signed in to a Google account, click your profile picture in the top-right corner, then click Add another account, then Create account.
- Choose For my personal use if asked.
- Enter a first and last name. You can use your family name here, for example First name: The Smith, Last name: Family.
- Click Next.
- Enter a birthday and gender (use a parent's birthday; the account holder needs to be an adult). Click Next.
- When Google asks how you'd like to create your Gmail address, choose Create your own Gmail address and type something like thesmithfamily. If it's taken, try variations like smithfamilyhq or smithfamily.home.
- Click Next.
- Create a strong password. Write it down and store it somewhere safe that both parents can access (a password manager is ideal).
- Follow the remaining prompts to add a recovery phone number and email. Use a parent's phone number.
- Review and click I agree to finish.
๐ You now have a family account! Keep this browser window signed in to it for the rest of Phase 1.
Step 2: The Color-Coding Strategy (Color by Person, Not by Event)
Most people color-code by type of event: blue for sports, green for school, red for doctors. That feels organized, but it doesn't answer the question you actually ask every morning:
"Who needs to be where today?"
So instead, we give each person their own color. One glance at the week and you instantly see that Tuesday is a "purple day" (Emma has a lot going on) or that Dad has nothing after 3 PM.
Pick your family colors
Here's a sample color key. Adjust it to your family:
| Person | Color | Google's Color Name |
|---|---|---|
| Mom | ๐ฃ Purple | Grape |
| Dad | ๐ต Blue | Blueberry |
| Emma (kid 1) | ๐ธ Pink | Flamingo |
| Jack (kid 2) | ๐ข Green | Basil |
| Whole family | ๐ก Yellow | Banana |
| Urgent / Don't forget | ๐ด Red | Tomato |
๐ก Tip: Let the kids choose their own colors. They'll be much more interested in the calendar if they're looking for "their" color.
How to color an event
- Go to calendar.google.com (signed in to the family account).
- Click any empty time slot to create an event, then click More options. (Or click an existing event, then click the pencil icon to edit it.)
- Next to the calendar name, click the small colored circle.
- Choose the person's color from the list.
- Click Save.
โจ Don't want to color every event by hand? In Phase 3, the Auto-Colorizer script colors events for you based on whose name is in the title. You can still color events manually; the script just catches the ones people forget.
๐ฑ iPhone note: Apple's built-in Calendar app shows one color per calendar, not per event, so the person colors won't appear there. To see them on an iPhone, install the free Google Calendar app from the App Store and sign in with your personal Google account. The colors show up everywhere else automatically: the Google Calendar app on Android and iPhone, calendar.google.com, and the kitchen display in Phase 4.
Two simple naming rules that make everything easier
- Start each event title with the person's name. Example: Emma โ Dentist, Jack โ Soccer Practice. This is what lets the Phase 3 automations know whose event it is.
- Put the word URGENT in the title for anything that absolutely can't be missed (like URGENT โ Emma field trip form due). You'll see why in Phase 3.
๐ Print this! Put your color key on the fridge so everyone (including grandparents and babysitters) knows the system.
Step 3: Share the Calendar With Both Parents
Now we'll share the family calendar with each parent's personal account so it appears right inside the calendar app they already use. No new app to download.
Part A: Share it from the family account (do this on a computer)
- Go to calendar.google.com while signed in to the family account.
- Click the gear icon โ๏ธ in the top-right corner.
- Click Settings.
- On the left side, under Settings for my calendars, click the family calendar's name (it will be named after the account, for example The Smith Family).
- Scroll down to the section called Share with specific people or groups.
- Click + Add people and groups.
- Type Mom's personal email address.
- Under Permissions, choose Make changes and manage sharing. (This lets her add and edit events.)
- Click Send.
- Repeat steps 6โ9 for Dad's personal email address.
Part B: Accept the invitation
Each parent will get an email that says something like "The Smith Family has shared a calendar with you."
- Open that email on a computer or phone.
- Click the link Add this calendar.
- If asked, click Add to confirm.
Part C: Make it show up on each parent's phone
Follow the instructions for the type of phone and account each parent uses.
๐ฑ If the parent uses an Android phone:
- Open the Google Calendar app (it comes pre-installed on most Android phones).
- Tap the three lines โฐ in the top-left corner.
- Scroll down until you see The Smith Family calendar under the parent's account.
- Make sure the box next to it is checked.
That's it! Events will appear within a few minutes.
๐ If the parent uses an iPhone and has a personal Gmail/Google account:
You can see the family calendar inside Apple's built-in Calendar app. It's a two-part process.
Part 1: Add the Google account to the iPhone (skip if it's already there)
- Open the Settings app.
- Tap Apps, then tap Calendar. (On older iPhones, tap Calendar directly from the main Settings screen.)
- Tap Calendar Accounts (or Accounts).
- Tap Add Account.
- Tap Google.
- Sign in with the parent's personal Google account (not the family one).
- When asked what to sync, make sure Calendars is turned on (green). Tap Save.
Part 2: Tell Google to send the shared calendar to the iPhone
This is the step almost everyone misses. By default, Google only sends your own calendar to an iPhone, not calendars that have been shared with you.
- On the iPhone, open Safari and go to: calendar.google.com/calendar/syncselect
- Sign in with the parent's personal Google account if asked.
- You'll see a list of calendars. Check the box next to The Smith Family.
- Tap Save.
- Open the Apple Calendar app, tap Calendars at the bottom, and make sure The Smith Family is checked.
โณ Be patient: It can take 5โ15 minutes for events to appear the first time. If nothing shows up after 30 minutes, restart the phone.
๐ If the parent uses an iPhone with only an Apple/iCloud email (no Google account):
The smoothest option is to spend 3 minutes creating a free personal Google account for that parent (just follow Step 1 again with their own name), then follow the iPhone instructions above. This gives them full ability to add and edit events.
If they truly don't want a Google account, they can get a view-only copy:
- On a computer, signed in to the family account, go to calendar.google.com.
- Click the gear icon โ๏ธ, then Settings.
- Click the family calendar's name on the left.
- Scroll down to Integrate calendar and copy the link called Secret address in iCal format.
- Text or email that link to the parent.
- On their iPhone, go to Settings โ Apps โ Calendar โ Calendar Accounts โ Add Account โ Other โ Add Subscribed Calendar.
- Paste the link and tap Next, then Save.
โ ๏ธ Keep in mind: This version is read-only, and updates can take several hours to appear. Keep the secret link private; anyone who has it can see your family's schedule.
โ Phase 1 complete! You now have one family calendar, color-coded by person, showing up on both parents' phones. Test it: have one parent add an event and watch it appear on the other parent's phone.
Phase 2Native Google Automations (No Code Required)
Now we'll use free tools you already have to take small, repetitive jobs off your plate.
Automation 1: A Shared "Costco Run" Checklist With Google Keep
Google Keep is a free note-taking app. We'll make one shopping list that both parents can see and check off in real time. When Dad checks off "paper towels" in the store, it disappears from Mom's list too.
Step 1: Get the app
- Android: Google Keep is usually pre-installed. If not, download Google Keep from the Play Store.
- iPhone: Download Google Keep โ Notes and Lists from the App Store and sign in with your personal Google account.
Step 2: Create the checklist
- Open Google Keep.
- Tap the checkbox icon โ๏ธ at the bottom of the screen (this creates a list instead of a plain note). On a computer at keep.google.com, click the New list checkbox icon in the "Take a noteโฆ" bar.
- In the Title field, type: Costco Run ๐
- Tap List item and start adding items: Paper towels, Milk, Granola barsโฆ
Step 3: Share it with the other parent
- With the list open, tap the three dots โฎ in the bottom-right corner (on a computer, click the person icon with a plus sign).
- Tap Collaborator.
- Type the other parent's email address.
- Tap Save.
The list now appears on both phones and updates instantly.
Step 4: Pin it to the top
Tap the pushpin icon ๐ at the top of the note so it always stays first in your list.
๐ก Tips for success:
- Make one shared list per store: Costco Run, Grocery Store, Target/Pharmacy.
- When you check an item off, it moves to a "Checked items" section. Before your next trip, tap the three dots โฎ and choose Uncheck all items to reuse your staples list instead of retyping it.
- Older kids can be added as collaborators too.
Automation 2: Auto-Forward School Emails to the Other Parent (Gmail Filters)
School emails often go to just one parent, so the other parent is always a step behind. We'll set up a rule so that any email from the school principal (or teacher, or coach) is automatically forwarded to the other parent.
๐ Do this in the Gmail account of the parent who currently receives the school emails. It must be done on a computer; the Gmail phone app can't create filters.
Part A: Approve the forwarding address (one-time setup)
Gmail requires you to approve an address before it will forward anything to it. This protects you from someone secretly forwarding your mail.
- Go to mail.google.com.
- Click the gear icon โ๏ธ in the top-right corner.
- Click See all settings.
- Click the Forwarding and POP/IMAP tab at the top.
- Click Add a forwarding address.
- Type the other parent's email address and click Next, then Proceed, then OK.
- The other parent will receive an email with a confirmation code (or a confirmation link). They should either click the link or send you the code.
- If you received a code, type it into the box on the Forwarding tab and click Verify.
- โ ๏ธ Important: Leave the setting at the top as Disable forwarding. We do NOT want to forward all your email, just the school emails. The filter in Part B handles that.
- Scroll down and click Save Changes.
Part B: Create the filter
- Back in your Gmail inbox, click the Show search options icon (the little sliders icon at the right end of the search bar at the top).
- In the From box, type the principal's email address (for example principal@lincolnelementary.org).
- ๐ก Want ALL school emails? Type just the school's domain instead, like @lincolnelementary.org. This catches every teacher, the office, and the principal.
- ๐ก Multiple senders? Separate them with OR in capital letters: principal@school.org OR coach@league.com
- Click Create filter at the bottom of the box.
- Check the box Forward it to and choose the other parent's address from the dropdown.
- (Optional) Also check Apply the label and create a label called School to keep things tidy.
- Click Create filter.
๐ From now on, every matching email lands in both inboxes automatically.
๐ก Tip: Want school events on the calendar too? Forward important school emails to your family Gmail address as well, and add the dates while you're there.
Automation 3: The Morning Kitchen Announcement (Google Home Routine)
Imagine walking into the kitchen at 7:00 AM and hearing your speaker say: "Good morning. Today you have Emma's dentist appointment at 3:30 and Jack's soccer practice at 5โฆ"
We'll set this up with a Routine in the Google Home app.
๐ A quick note on names: Google has a separate feature called Family Bell, but it only plays a chime with a custom reminder (like "Time to brush teeth!"). It can't read your calendar. For a spoken calendar rundown, a Routine is the right tool. You can use both!
What you need
- A Google Nest speaker or Nest Hub (or another Google Assistant speaker) in the kitchen, already set up in the Google Home app
- The Google Home app on the phone of the parent whose account is linked to the speaker
Step 1: Turn on Personal Results (so the speaker is allowed to read your calendar)
- Open the Google Home app.
- Tap the kitchen speaker.
- Tap the gear icon โ๏ธ.
- Look for Recognition & personalization (or Personal results) and make sure Allow personal results is turned on.
Step 2: Make sure the speaker can see the family calendar
The speaker reads calendars from the account linked to it. Because you shared the family calendar in Phase 1, it now appears in that parent's Google Calendar. Open the Google Calendar app on that parent's phone and confirm The Smith Family calendar is checked (visible). If it's hidden in the app, the speaker may skip it.
Step 3: Create the routine
- In the Google Home app, tap Automations at the bottom of the screen.
- Tap the + Add button (or + Create).
- Choose Household if you want it to work for everyone in your home, or Personal if only you use it. (If available, Personal usually gives the most reliable access to your own calendar.)
- Tap Add starter.
- Choose At a specific time.
- Set the time to 7:00 AM, select the days you want (for example MondayโFriday), and choose the kitchen speaker as the device that responds. Tap Add starter or Done.
- Tap Add action.
- Choose Try adding your own (or Custom action) and type: Tell me about my day
- Alternatively, look for Get info, reminders and more and then choose Calendar events or Tell me about my day.
- Tap Done.
- (Optional) Add another action to make it more fun, like Weather or a greeting such as Broadcast "Good morning, Smith family!"
- Give your routine a name like Morning Rundown, then tap Save.
Step 4: Test it
Open the routine and tap Test automation (or say "Hey Google, tell me about my day" to the speaker). You should hear today's events.
๐ ๏ธ If it doesn't read the family calendar: Google is gradually updating its speakers with new "Gemini" features, so menu names can shift slightly. If the family events aren't read aloud, the most reliable fix is to add the family account to the Google Home app as a household member, link it with Voice Match on that speaker, and create the routine while signed in to the family account.
โ Phase 2 complete! You now have a shared grocery list, school emails reaching both parents, and a kitchen that talks you through your morning.
Phase 3The Magic Code (Copy/Paste Automation)
Don't Panic, You Can Do This ๐ช
The word "code" might make you want to close this guide. Please don't!
We're going to use something called Google Apps Script. It's a free tool that's already built into every Google account. Think of it like a little helper robot that lives inside your Google account and does chores on a schedule.
Here's the truth: you won't be writing any code. You'll be copying and pasting code that's already written for you, changing a couple of names or email addresses, and clicking Save. If you can copy a recipe, you can do this.
You'll set up three helpers in this phase:
- ๐ฌ The Sunday Night Rundown: a weekly email with everything coming up
- ๐จ The Urgent Text Alert: a text the night before anything marked URGENT
- ๐จ The Auto-Colorizer: automatically colors events by person
๐ Important: Do everything in Phase 3 while signed in to the family Google account (the one that owns the family calendar). Use a computer, not a phone.
Before You Start: The "Google Hasn't Verified This App" Warning
The first time you run one of your scripts, Google will show you a scary-looking screen. This is completely normal and expected.
Why does this happen?
Google shows this warning for any script that hasn't gone through its official review process for public apps. Your script isn't a public app. It's a private helper that you created, running only inside your own account. Google simply can't tell the difference, so it warns you just in case.
๐ Safety rule: Only approve scripts you've copied from a source you trust (like this guide) and that you created yourself in your own account. Never approve a script someone sends you through a random link.
Exactly what to click when you see it
- After clicking Run, a box pops up that says Authorization required. Click Review permissions.
- A window opens asking you to choose an account. Click the family account (e.g., thesmithfamily@gmail.com).
- You'll see a screen that says "Google hasn't verified this app." Don't click "Back to safety."
- Click the small link in the bottom-left that says Advanced.
- A new link appears at the bottom: Go to [Your Project Name] (unsafe). Click it.
(The word "unsafe" is just Google being cautious. It's the same message for every personal script.) - You'll see a list of what the script wants to do (like "View your calendars" and "Send email as you"). Check any boxes if asked (or click Select all), then click Continue or Allow.
You only need to do this once per script. After that, it runs quietly in the background forever.
Script 1: The Sunday Night Rundown ๐ฌ
What it does: Every Sunday evening, it looks at the family calendar, gathers everything happening in the next 7 days, organizes it by day, and emails a neat summary to both parents. Perfect for a quick Sunday night "here's our week" check-in.
Step 1: Create a new script project
- Go to script.google.com (signed in to the family account).
- Click New project in the top-left corner.
- At the top of the screen, click Untitled project and rename it to Sunday Night Rundown. Click Rename.
Step 2: Set the correct time zone
- On the left side of the screen, click the gear icon โ๏ธ (Project Settings).
- Under Time zone, choose your time zone (for example (GMT-05:00) Eastern Time - New York).
- Click the < > icon (Editor) on the left to go back to the code screen.
Step 3: Paste the code
- You'll see a little bit of code already there that looks like
function myFunction() { }. Click inside that box, select everything (Ctrl+A on Windows, Cmd+A on Mac), and delete it. - Click Copy Code below, then paste it into the empty box.
/**
* THE SUNDAY NIGHT RUNDOWN
* Emails both parents a summary of the next 7 days on the family calendar.
*
* โ๏ธ ONLY CHANGE THE TWO LINES IN THE "YOUR SETTINGS" SECTION BELOW.
*/
// ===== YOUR SETTINGS =====
const PARENT_EMAILS = "mom@example.com, dad@example.com"; // โ๏ธ Put both parents' emails here, separated by a comma
const FAMILY_NAME = "The Smith Family"; // โ๏ธ Your family name (appears in the email)
// =========================
function sendSundayRundown() {
const calendar = CalendarApp.getDefaultCalendar();
const timeZone = Session.getScriptTimeZone();
// Look from right now until 7 days from now
const start = new Date();
const end = new Date(start.getTime() + 7 * 24 * 60 * 60 * 1000);
const events = calendar.getEvents(start, end);
// Group the events by day
const days = {};
const dayOrder = [];
events.forEach(function (event) {
const dayLabel = Utilities.formatDate(event.getStartTime(), timeZone, "EEEE, MMMM d");
if (!days[dayLabel]) {
days[dayLabel] = [];
dayOrder.push(dayLabel);
}
let timeText;
if (event.isAllDayEvent()) {
timeText = "All day";
} else {
timeText =
Utilities.formatDate(event.getStartTime(), timeZone, "h:mm a") +
" โ " +
Utilities.formatDate(event.getEndTime(), timeZone, "h:mm a");
}
days[dayLabel].push({
time: timeText,
title: event.getTitle() || "(No title)",
location: event.getLocation()
});
});
// Build the email
const subject = "๐
" + FAMILY_NAME + " โ Your Week Ahead";
let html =
'<div style="font-family: Arial, sans-serif; max-width: 600px; color: #333;">' +
'<h2 style="color: #1a73e8;">๐
' + escapeHtml(FAMILY_NAME) + ': The Week Ahead</h2>' +
"<p>Here's everything on the family calendar for the next 7 days.</p>";
if (dayOrder.length === 0) {
html += "<p><strong>Nothing scheduled this week. Enjoy the breathing room! ๐</strong></p>";
} else {
dayOrder.forEach(function (dayLabel) {
html +=
'<h3 style="border-bottom: 2px solid #e0e0e0; padding-bottom: 4px; margin-top: 24px;">' +
escapeHtml(dayLabel) + "</h3><ul style='padding-left: 18px;'>";
days[dayLabel].forEach(function (item) {
html += "<li style='margin-bottom: 6px;'><strong>" + escapeHtml(item.time) + "</strong> โ " +
escapeHtml(item.title);
if (item.location) {
html += " <span style='color: #777;'>(๐ " + escapeHtml(item.location) + ")</span>";
}
html += "</li>";
});
html += "</ul>";
});
}
html += '<p style="margin-top: 30px; color: #999; font-size: 12px;">Sent automatically by your Family Command Center.</p></div>';
MailApp.sendEmail({
to: PARENT_EMAILS,
subject: subject,
htmlBody: html
});
}
// Helper: keeps event titles with special characters from breaking the email
function escapeHtml(text) {
return String(text)
.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, """);
}
Step 4: Personalize it
Near the top of the code, find the section labeled YOUR SETTINGS:
- Replace
mom@example.com, dad@example.comwith both parents' real email addresses. Keep the quotation marks and the comma between them. - Replace
The Smith Familywith your family name.
โ
Correct: const PARENT_EMAILS = "sarah.smith@gmail.com, mike.smith@icloud.com";
โ Wrong: const PARENT_EMAILS = sarah.smith@gmail.com, mike.smith@icloud.com; (missing quotation marks)
Step 5: Save and test it
- Click the Save icon ๐พ at the top (or press Ctrl+S / Cmd+S).
- At the top of the screen, make sure the dropdown next to the Run button says sendSundayRundown.
- Click Run โถ๏ธ.
- Follow the "Google hasn't verified this app" steps from earlier (Review permissions โ choose the family account โ Advanced โ Go to Sunday Night Rundown (unsafe) โ Allow).
- At the bottom of the screen, you'll see an Execution log. When it says Execution completed, check both parents' inboxes. Your first Rundown should be there! ๐
Step 6: Schedule it for every Sunday (the trigger)
A "trigger" is just an alarm clock that tells your script when to run.
- On the left side of the screen, click the clock icon โฐ (Triggers).
- Click the blue + Add Trigger button in the bottom-right corner.
- Fill in the settings exactly like this:
- Choose which function to run: sendSundayRundown
- Choose which deployment should run: Head
- Select event source: Time-driven
- Select type of time based trigger: Week timer
- Select day of week: Every Sunday
- Select time of day: 5pm to 6pm
- Failure notification settings: Notify me daily (so you'll know if something ever breaks)
- Click Save.
โฐ Good to know: Google runs scheduled scripts at some point within the hour you pick, so your email will arrive between 5:00 and 6:00 PM every Sunday, not at exactly 5:00 on the dot.
โ Done! Your Sunday Night Rundown now runs automatically every week.
Script 2: The Urgent Text Alert ๐จ
What it does: Every evening, this script checks tomorrow's events on the family calendar. If any event has the word URGENT in its title or description, it sends a text message to your phone(s). No more "Oh no, that was today?!"
It works using a little-known trick: most cell carriers give every phone number a special email address. When an email is sent to that address, it arrives on the phone as a text message. This is called an SMS gateway.
Step 1: Find your carrier's SMS gateway address
Your gateway address is your 10-digit phone number (no dashes or spaces) plus your carrier's special ending. For example, if your number is (555) 123-4567 and you're with Verizon, your address is 5551234567@vtext.com.
| Carrier | Your Gateway Address |
|---|---|
| Verizon | 5551234567@vtext.com |
| T-Mobile | 5551234567@tmomail.net |
| Metro by T-Mobile | 5551234567@mymetropcs.com |
| US Cellular | 5551234567@email.uscc.net |
| Cricket | 5551234567@mms.cricketwireless.net |
| Boost Mobile | 5551234567@sms.myboostmobile.com |
| Google Fi | 5551234567@msg.fi.google.com |
โ ๏ธ Important, please read: Carriers can change or shut down these gateways without much notice. AT&T discontinued its email-to-text service in 2025, and some smaller carriers never offered one. Before relying on this script, send a test email from the family Gmail to your gateway address and see if it arrives as a text.
If your carrier doesn't support it (or it stops working): Simply put a regular email address in the script instead, like your personal Gmail. Then turn on notifications for the Gmail app on your phone. You'll get a buzz on your phone just like a text.
Step 2: Create a new script project
- Go to script.google.com (signed in to the family account).
- Click New project.
- Click Untitled project at the top and rename it Urgent Text Alert. Click Rename.
- Click the gear icon โ๏ธ (Project Settings) on the left and set your Time zone (same as before).
- Click the < > icon (Editor) to go back to the code.
Step 3: Paste the code
- Select everything in the code box (Ctrl+A / Cmd+A) and delete it.
- Click Copy Code below, then paste it into the empty box.
/**
* THE URGENT TEXT ALERT
* Checks TOMORROW's family calendar for the word "URGENT".
* If found, sends a short text message through your carrier's SMS gateway.
*
* โ๏ธ ONLY CHANGE THE LINES IN THE "YOUR SETTINGS" SECTION BELOW.
*/
// ===== YOUR SETTINGS =====
const TEXT_ADDRESSES = [
"5551234567@vtext.com", // โ๏ธ Parent 1's gateway address
"5559876543@tmomail.net" // โ๏ธ Parent 2's gateway address (delete this line if you only want one)
];
const KEYWORD = "URGENT"; // The word the script looks for (not case-sensitive)
// =========================
function checkForUrgentEvents() {
const calendar = CalendarApp.getDefaultCalendar();
const timeZone = Session.getScriptTimeZone();
// Figure out the start and end of TOMORROW
const tomorrowStart = new Date();
tomorrowStart.setDate(tomorrowStart.getDate() + 1);
tomorrowStart.setHours(0, 0, 0, 0);
const tomorrowEnd = new Date(tomorrowStart);
tomorrowEnd.setDate(tomorrowEnd.getDate() + 1);
// Find events whose title or description contains the keyword
const events = calendar.getEvents(tomorrowStart, tomorrowEnd);
const urgentEvents = events.filter(function (event) {
const text = (event.getTitle() + " " + event.getDescription()).toUpperCase();
return text.indexOf(KEYWORD.toUpperCase()) !== -1;
});
// Nothing urgent? Do nothing.
if (urgentEvents.length === 0) {
return;
}
// Build a SHORT message (text messages have a character limit)
let message = "URGENT tomorrow: ";
const lines = urgentEvents.map(function (event) {
const time = event.isAllDayEvent()
? "All day"
: Utilities.formatDate(event.getStartTime(), timeZone, "h:mma");
const title = event.getTitle().replace(/urgent[\s:โ-]*/i, "").trim();
return time + " " + title;
});
message += lines.join("; ");
// Keep it under 150 characters so it isn't cut off or split
if (message.length > 150) {
message = message.substring(0, 147) + "...";
}
MailApp.sendEmail({
to: TEXT_ADDRESSES.join(","),
subject: "Family Alert",
body: message
});
}
Step 4: Personalize it
In the YOUR SETTINGS section:
- Replace
5551234567@vtext.comwith Parent 1's gateway address from the table above. - Replace
5559876543@tmomail.netwith Parent 2's gateway address.- Only want one parent to get texts? Delete that entire second line.
- Want to add a third person (like a grandparent)? Add a new line in the same format, with a comma after the line above it.
โ Correct:
const TEXT_ADDRESSES = [
"2165550142@vtext.com",
"2165550199@tmomail.net"
];
Step 5: Save and test it
- Click Save ๐พ.
- Go to calendar.google.com and create a test event for tomorrow called: URGENT โ Test alert
- Come back to the script. Make sure the dropdown next to Run says checkForUrgentEvents.
- Click Run โถ๏ธ.
- Follow the same security steps as before (Review permissions โ family account โ Advanced โ Go to Urgent Text Alert (unsafe) โ Allow).
- Within a minute or two, you should get a text like: "URGENT tomorrow: 9:00AM Test alert"
- Delete the test event from your calendar.
๐ ๏ธ No text arrived? Double-check that the phone number has no dashes or spaces and that you used the right carrier ending. Then check the table warning above: your carrier may not support email-to-text. Swap in a regular email address as the backup plan.
Step 6: Schedule it to check every evening (the trigger)
- Click the clock icon โฐ (Triggers) on the left.
- Click + Add Trigger.
- Fill it in like this:
- Choose which function to run: checkForUrgentEvents
- Choose which deployment should run: Head
- Select event source: Time-driven
- Select type of time based trigger: Day timer
- Select time of day: 7pm to 8pm (early enough to prepare, late enough to catch events added during the day)
- Failure notification settings: Notify me daily
- Click Save.
How to use it day-to-day
Whenever you add something to the calendar that absolutely cannot be missed, just put URGENT at the start of the title:
- URGENT โ Emma permission slip due
- URGENT โ Jack early dismissal 12:30
- URGENT โ Bring snacks for team
The night before, your phone will buzz. That's it. โจ
Script 3: The Auto-Colorizer ๐จ
What it does: Every hour, this script looks at the next 30 days on the family calendar. Any event with a family member's name in the title automatically gets that person's color. When Dad adds Jack โ Soccer from his phone and forgets to pick a color, it turns green on its own.
๐ก Why this matters: The color-by-person system only works if every event gets colored. In real life, people add events in a hurry from their phones and skip the color. This script is your safety net, so the calendar always stays readable at a glance.
Step 1: Create a new script project
- Go to script.google.com (signed in to the family account).
- Click New project.
- Click Untitled project at the top and rename it Auto-Colorizer. Click Rename.
- Click the gear icon โ๏ธ (Project Settings) on the left and set your Time zone (same as before).
- Click the < > icon (Editor) to go back to the code.
Step 2: Paste the code
- Select everything in the code box (Ctrl+A / Cmd+A) and delete it.
- Click Copy Code below, then paste it into the empty box.
/**
* THE AUTO-COLORIZER
* Automatically colors family calendar events based on whose name is in the title.
* It's a safety net: if someone forgets to pick a color, this fixes it.
*
* โ๏ธ ONLY CHANGE THE "YOUR SETTINGS" SECTION BELOW.
*/
// ===== YOUR SETTINGS =====
// Google's color numbers:
// 1 = Lavender 2 = Sage 3 = Grape 4 = Flamingo
// 5 = Banana 6 = Tangerine 7 = Peacock 8 = Graphite
// 9 = Blueberry 10 = Basil 11 = Tomato
//
// The script checks these rules from TOP to BOTTOM and uses the FIRST match.
// That's why URGENT is first: urgent events turn red no matter whose they are.
const COLOR_RULES = [
{ name: "URGENT", color: "11" }, // 11 = Tomato (Red)
{ name: "Mom", color: "3" }, // 3 = Grape (Purple)
{ name: "Dad", color: "9" }, // 9 = Blueberry (Blue)
{ name: "Emma", color: "4" }, // 4 = Flamingo (Pink)
{ name: "Jack", color: "10" }, // 10 = Basil (Green)
{ name: "Family", color: "5" } // 5 = Banana (Yellow)
];
// true = only color events that have NO color yet (keeps colors you picked by hand)
// false = always apply the rules above (replaces hand-picked colors)
const ONLY_FILL_MISSING_COLORS = true;
const DAYS_AHEAD = 30; // How many days into the future to check
// =========================
function autoColorEvents() {
const calendar = CalendarApp.getDefaultCalendar();
// Start at the beginning of today so earlier events today get colored too
const start = new Date();
start.setHours(0, 0, 0, 0);
const end = new Date(start.getTime() + DAYS_AHEAD * 24 * 60 * 60 * 1000);
const events = calendar.getEvents(start, end);
// Match WHOLE words only, so "Ella" won't match "Stella" or "umbrella"
const rules = COLOR_RULES.map(function (rule) {
const safeName = rule.name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
return {
pattern: new RegExp("(^|[^\\p{L}\\p{N}])" + safeName + "(?=$|[^\\p{L}\\p{N}])", "iu"),
color: String(rule.color)
};
});
let changed = 0;
events.forEach(function (event) {
const currentColor = event.getColor(); // "" means no color was picked
// Leave hand-picked colors alone (unless you turned this setting off)
if (ONLY_FILL_MISSING_COLORS && currentColor !== "") {
return;
}
const title = event.getTitle();
for (let i = 0; i < rules.length; i++) {
if (rules[i].pattern.test(title)) {
if (currentColor !== rules[i].color) {
event.setColor(rules[i].color);
changed++;
}
break; // First matching rule wins; move on to the next event
}
}
});
Logger.log("Auto-Colorizer finished. Events recolored: " + changed);
}
Step 3: Personalize it
In the YOUR SETTINGS section:
- Replace the names (
Mom,Dad,Emma,Jack) with the names your family actually uses at the start of event titles. Use exactly the word you type in the calendar. If you write Mommy โ Haircut, the rule should sayMommy. - Change the color numbers to match your family's color key, using the chart below.
- Adding a person? Copy one line, paste it below, and change the name and number. Every line needs a comma at the end except the last one.
- Removing a person? Delete their whole line. Make sure the new last line has no comma at the end.
| Number | Google's Color Name | Number | Google's Color Name |
|---|---|---|---|
| 1 | Lavender | 7 | Peacock |
| 2 | Sage | 8 | Graphite |
| 3 | Grape | 9 | Blueberry |
| 4 | Flamingo | 10 | Basil |
| 5 | Banana | 11 | Tomato |
| 6 | Tangerine |
โ Correct (a family with two kids named Leanne and Ella):
const COLOR_RULES = [
{ name: "URGENT", color: "11" },
{ name: "Mom", color: "3" },
{ name: "Dad", color: "9" },
{ name: "Leanne", color: "7" },
{ name: "Ella", color: "4" }
];
Two settings worth understanding
- The order of the rules matters. The script uses the first name it finds in the list. So URGENT โ Emma field trip form turns red, because URGENT is at the top. And Emma & Jack โ Dentist gets Emma's color, because Emma comes before Jack in the list. Put the rule you care about most at the top.
ONLY_FILL_MISSING_COLORScontrols whether the script respects colors people pick by hand.true(recommended): The script only colors events that don't have a color yet. If you deliberately color something differently, it stays that way.false: The script enforces the rules on every matching event, replacing hand-picked colors. Choose this if you want the calendar to be strictly consistent.
Step 4: Save and test it
- Click Save ๐พ.
- Go to calendar.google.com and create a test event for tomorrow called Jack โ Test (use one of your family's names). Don't pick a color.
- Come back to the script. Make sure the dropdown next to Run says autoColorEvents.
- Click Run โถ๏ธ.
- Follow the same security steps as before (Review permissions โ family account โ Advanced โ Go to Auto-Colorizer (unsafe) โ Allow).
- The Execution log at the bottom will say how many events were recolored.
- Refresh your calendar. The test event should now be that person's color! ๐จ
- Delete the test event.
๐ Bonus: The first run also colors every matching event already on your calendar for the next 30 days, so your whole month gets tidied up in one click.
Step 5: Schedule it to run every hour (the trigger)
- Click the clock icon โฐ (Triggers) on the left.
- Click + Add Trigger.
- Fill it in like this:
- Choose which function to run: autoColorEvents
- Choose which deployment should run: Head
- Select event source: Time-driven
- Select type of time based trigger: Hour timer
- Select hour interval: Every hour
- Failure notification settings: Notify me daily
- Click Save.
โฐ Good to know:
- New events can take up to an hour to get their color. If you want it colored right away, just pick the color yourself.
- The script matches whole words only. "Ella" won't accidentally color Stella's birthday party or Buy umbrella.
- With the recommended setting, an event that's already colored won't change later. So if you rename Emma โ Dentist to URGENT โ Emma โ Dentist, recolor it red yourself (or switch the setting to
false). - Events without anyone's name in the title are left alone.
โ Phase 3 complete! You now have three helper robots working for your family around the clock, for free.
Phase 4 ยท Optional UpgradeThe Kitchen Display
Have an old iPad or Android tablet sitting in a drawer? Turn it into a wall-mounted family calendar that everyone can see, like a digital whiteboard that updates itself.
Step 1: Prepare the tablet
- Charge the tablet and connect it to your home Wi-Fi.
- Install the Google Calendar app from the App Store (iPad) or Play Store (Android).
- Open the app and sign in with the family account.
- Tap the three lines โฐ menu and choose Week or 3 day view, whichever is easiest to read from across the room.
- Stop the screen from turning off:
- iPad: Settings โ Display & Brightness โ Auto-Lock โ Never
- Android: Settings โ Display โ Screen timeout โ choose the longest option. (For an always-on screen while plugged in, turn on Developer options, then turn on Stay awake.)
๐ก Older tablet won't install the app? Very old devices sometimes can't run the latest Google Calendar app. Open the web browser instead, go to calendar.google.com, and sign in with the family account.
Step 2: Mount it on the wall
- Choose a spot near an outlet at adult eye level, in a high-traffic area (next to the fridge or by the back door works well).
- Use a tablet wall mount (search "tablet wall mount" online; removable adhesive or screw-in versions both work) or a sturdy picture ledge with a lip.
- Run a charging cable to the outlet. A cord cover that sticks to the wall keeps it neat and out of reach of small hands.
๐ Battery tip: Tablets that are plugged in 24/7 can wear out their batteries. If your tablet has a battery protection setting, turn it on:
- iPad: Settings โ Battery โ Battery Health (or Charging Optimization) โ turn on Optimized Battery Charging or a charge limit, if available.
- Android: Settings โ Battery โ look for Protect battery or Adaptive charging and turn it on.
Check the battery every few months. If it ever starts to bulge, unplug it and stop using it.
Step 3: Lock it on the calendar screen
This keeps little fingers (and big ones!) from wandering off into YouTube.
๐ iPad: Use Guided Access
Turn it on (one time):
- Open Settings.
- Tap Accessibility.
- Scroll down and tap Guided Access.
- Turn Guided Access on (green).
- Tap Passcode Settings โ Set Guided Access Passcode and choose a 6-digit code that only the parents know.
- Tap Display Auto-Lock and choose Never.
Lock the calendar:
- Open the Google Calendar app.
- Triple-click the Top button (or the Home button on older iPads).
- Tap Start in the top-right corner.
The iPad is now locked to the calendar. To unlock it, triple-click the same button, enter your passcode, and tap End.
๐ค Android: Use App Pinning
Turn it on (one time):
- Open Settings.
- Tap Security (or Security & privacy โ More security settings). (On Samsung tablets: Settings โ Security and privacy โ Other security settings.)
- Tap App pinning (Samsung calls it Pin windows).
- Turn it on.
- Turn on Ask for PIN before unpinning (or Lock device when unpinning) so only parents can exit.
Pin the calendar:
- Open the Google Calendar app.
- Open your recent apps view (swipe up from the bottom and hold, or tap the square button).
- Tap the Google Calendar icon at the top of its window.
- Tap Pin (or Pin this app).
To unpin it, swipe up and hold (or press Back and Recents at the same time), then enter your PIN.
Step 4: Make it the family habit
A display only helps if people look at it. Try these simple habits:
- The "Check the Board" rule: Before anyone asks "What's happening today?", they check the wall.
- Sunday sync: When the Sunday Night Rundown email arrives, spend 10 minutes together looking at the week on the kitchen display.
- Kids point to their color: Younger kids love finding "their" color and counting how many activities they have.
Finish LineYou Did It! ๐
Take a moment to appreciate what you just built. Your family now has:
- ๐ One shared calendar, color-coded by person, on every parent's phone
- ๐ Shared shopping lists that update in real time
- ๐ง School emails automatically reaching both parents
- ๐ A morning announcement from your kitchen speaker
- ๐ฌ A weekly summary email every Sunday evening
- ๐จ Text alerts for anything urgent tomorrow
- ๐จ Automatic color-coding that catches every forgotten color
- ๐ฅ๏ธ (Optional) A kitchen command center on the wall
The mental load of parenting doesn't disappear, but it no longer has to live in just one person's head. Now it lives in a system that the whole family can see, trust, and share.
Quick-Reference Cheat Sheet
| I want toโฆ | Do this |
|---|---|
| Add an event for a kid | Start the title with their name. The Auto-Colorizer adds their color within the hour, or you can set it yourself. |
| Make sure an event triggers a text | Put URGENT in the title |
| Add something to the grocery list | Open Google Keep โ Costco Run list |
| Forward emails from a new teacher | Gmail โ๏ธ โ See all settings โ Filters and Blocked Addresses โ edit the school filter |
| Change who gets the Sunday email | script.google.com โ Sunday Night Rundown โ edit PARENT_EMAILS โ Save |
| Add a person or change a color | script.google.com โ Auto-Colorizer โ edit COLOR_RULES โ Save |
| Pause an automation | script.google.com โ open the project โ โฐ Triggers โ three dots โฎ โ Delete trigger |
| Unlock the kitchen tablet | iPad: triple-click + passcode ยท Android: swipe up and hold + PIN |
Welcome to calmer weeks. ๐