Auto-Send SMS Reminders from Google Calendar
Learn how to auto-send SMS reminders from Google Calendar events using Zapier, Make.com, and Apps Script. Practical guide for Australian SMBs with AUD pricing.
Email reminders are easy to miss. SMS reminders are not. That distinction matters enormously when a client no-show costs your business an hour of billable time, a venue hire fee, or a wasted service call. Yet most Australian SMBs running on Google Workspace still rely on built-in Calendar email notifications or manual phone calls to remind clients about upcoming appointments — both of which are either invisible or time-consuming.
The good news is that Google Calendar can trigger an automatic SMS to any contact the moment an event is created, and again at whatever interval you choose before the appointment. You do not need to be a developer. You need one of three tools — Zapier, Make.com, or Google Apps Script — connected to Twilio, and about thirty minutes of setup time.
Why SMS Outperforms Email for Appointment Reminders
Open rates tell the story. Email open rates sit between 20 and 40 percent for well-run campaigns. SMS open rates sit at 95 to 98 percent, with most messages read within three minutes. For appointment reminders, that gap is decisive.
Research from scheduling platforms consistently shows a 30 to 50 percent reduction in no-shows when businesses add SMS reminders. For a trade business, a medical practice, or any service business where missed appointments mean unrecoverable lost revenue, that reduction represents real money.
Google Calendar's built-in notification system falls short in two specific ways. First, it sends email only — no native SMS capability exists in Workspace. Second, it notifies the event organiser, not the invited guests. A client you have added to a meeting receives no automatic reminder unless they have configured their own Calendar notifications, which most have not. Bridging this gap with an automated SMS workflow solves both problems at once.
Before you start, set up a Twilio account at twilio.com and purchase an Australian long-code number. Twilio pricing for Australian SMSs:
- Outbound SMS to Australian numbers: ~AUD $0.13–$0.16 per message
- Australian long-code number: ~AUD $2.50/month
For 200 reminder SMS per month, total Twilio cost is roughly AUD $28–$35 per month. That is the baseline cost for all three approaches below; the only variable is the automation platform on top.
Method 1: Zapier + Twilio (Fastest Setup, No Code)
Zapier is the most accessible path for non-technical users. The entire workflow is configured visually through a browser interface and requires no code. The trade-off is cost — Zapier's pricing is the highest of the three approaches — but if your team is already using Zapier for other automations, the marginal effort to add this workflow is minimal.
Setting Up the Zap
Trigger: Google Calendar — Event Start. This trigger fires a specified number of minutes before a calendar event begins. Zapier polls your Calendar (every 15 minutes on paid plans) and fires when an upcoming event matches your criteria.
- In Zapier, click Create Zap and select Google Calendar as the trigger app.
- Choose Event Start as the trigger event.
- Connect your Google account and select the appointments calendar you want to monitor.
- Set Time Before to your desired reminder window — 60 minutes, 1440 minutes (24 hours), or both using a multi-step Zap.
- Add a Filter step: limit the Zap to events where the title contains your appointment keyword (e.g., "Appointment" or "Client") to exclude internal meetings.
Extracting the phone number. Store the client's mobile in the event description in a consistent format:
Client: Sarah Mitchell
Phone: +61412345678
Add a Formatter by Zapier step using Text > Extract Pattern with the regex \+61[0-9]{9} to pull the number from the description field as a clean variable.
Action: Twilio — Send SMS Message.
- Add Twilio as the action app and connect it using your Account SID and Auth Token.
- Set From to your Twilio Australian number and To to the extracted phone number.
- Set the Body using dynamic fields:
Hi {{Guest Name}}, your appointment is on {{Start Date}} at {{Start Time}}.
Call us on 1300 XXX XXX to reschedule. Reply STOP to opt out.
Keep messages under 160 characters to avoid being split into two SMS segments, which doubles the per-reminder cost. Test with your own mobile before activating.
Zapier Pricing in AUD
| Plan | AUD/month (approx.) | Task limit |
|---|---|---|
| Free | $0 | 100 tasks/month |
| Starter | ~$47 | 750 tasks/month |
| Professional | ~$115 | 2,000 tasks/month |
For 200 reminders/month, the Starter plan (~AUD $47) plus Twilio (~AUD $30) totals roughly AUD $77/month.
Method 2: Make.com + Twilio (More Power, Better Value)
Make.com (formerly Integromat) provides a visual automation builder with significantly more flexibility at a lower price. Its scenario-based model handles conditional logic, data transformation, and looping — useful when you need to send reminders to multiple guests per event or vary the message based on event type.
Setting Up the Scenario
Make.com does not have a native "X minutes before event" trigger. Instead, schedule the scenario to run every 15 minutes and add a date filter that passes only events starting within your reminder window.
- Create a new scenario and add the Google Calendar > Watch Events module.
- After the trigger, add a Filter with this condition: event start time minus current time falls between 3,600 seconds (60 minutes) and 4,500 seconds (75 minutes). This ensures each event fires the SMS only once during a single 15-minute polling cycle.
- Add a Text Parser > Match Pattern module. Set the pattern to
\+61[0-9]{9}against the event description to extract the phone number. - Add the Twilio > Create a Message module with your credentials, and compose the message body using Make.com's dynamic variable syntax including
formatDatefor Australian-formatted dates. - Optionally add a Google Sheets > Add a Row module to log every sent reminder — event ID, start time, phone number, and timestamp — for auditing purposes.
Set the scenario to run every 15 minutes and activate it.
Make.com Pricing in AUD
| Plan | AUD/month (approx.) | Operations |
|---|---|---|
| Free | $0 | 1,000 ops/month |
| Core | ~$17 | 10,000 ops/month |
| Pro | ~$30 | 10,000 ops/month + advanced features |
For 200 reminders/month, the Core plan (~AUD $17) plus Twilio (~AUD $30) totals roughly AUD $47/month — a meaningful saving over Zapier with more workflow flexibility included.
Method 3: Google Apps Script (Free, Fully Within Google)
Apps Script eliminates the third-party platform cost entirely. A time-based trigger runs the script every 15 minutes, checks Google Calendar for upcoming events, and calls the Twilio API directly to dispatch SMS messages. Everything runs inside Google's infrastructure using your existing Workspace permissions.
The Tracking Sheet
Before writing the script, create a Google Sheet with these columns to prevent duplicate messages:
| EventId | EventTitle | StartTime | PhoneNumber | SmsSent | SentAt |
The Script
Open your tracking Sheet, go to Extensions > Apps Script, and paste the following:
var CONFIG = {
TWILIO_ACCOUNT_SID: 'YOUR_ACCOUNT_SID',
TWILIO_AUTH_TOKEN: 'YOUR_AUTH_TOKEN',
TWILIO_FROM_NUMBER: '+61290001234', // Your Twilio AU number
CALENDAR_ID: 'primary', // Or your calendar's email address
REMINDER_MINUTES: 60, // SMS fires this many minutes before
WINDOW_MINUTES: 15, // Matches your trigger polling interval
SHEET_NAME: 'SentReminders'
};
function sendCalendarSmsReminders() {
var sheet = SpreadsheetApp.getActiveSpreadsheet()
.getSheetByName(CONFIG.SHEET_NAME);
var now = new Date();
var windowStart = new Date(now.getTime() + CONFIG.REMINDER_MINUTES * 60 * 1000);
var windowEnd = new Date(windowStart.getTime() + CONFIG.WINDOW_MINUTES * 60 * 1000);
var calendar = CalendarApp.getCalendarById(CONFIG.CALENDAR_ID)
|| CalendarApp.getDefaultCalendar();
var events = calendar.getEvents(windowStart, windowEnd);
if (!events.length) return;
var sentIds = getSentEventIds(sheet);
events.forEach(function(event) {
var eventId = event.getId();
if (sentIds.indexOf(eventId) !== -1) return; // Already sent
var phone = extractPhone(event.getDescription() || '');
if (!phone) return;
var start = event.getStartTime();
var dateStr = Utilities.formatDate(start, 'Australia/Sydney', 'EEEE d MMMM yyyy');
var timeStr = Utilities.formatDate(start, 'Australia/Sydney', 'h:mm a');
var body = 'Hi there, your appointment is on ' + dateStr + ' at ' + timeStr
+ '. Call 1300 XXX XXX to reschedule. Reply STOP to opt out.';
var ok = sendSms(phone, body);
sheet.appendRow([eventId, event.getTitle(), start, phone, ok, new Date()]);
});
}
function extractPhone(text) {
var match = text.match(/(\+61[0-9]{9}|04[0-9]{8})/);
if (!match) return null;
var n = match[0];
return n.startsWith('04') ? '+614' + n.slice(2) : n;
}
function sendSms(to, body) {
var url = 'https://api.twilio.com/2010-04-01/Accounts/'
+ CONFIG.TWILIO_ACCOUNT_SID + '/Messages.json';
var opts = {
method: 'post',
payload: { To: to, From: CONFIG.TWILIO_FROM_NUMBER, Body: body },
headers: {
Authorization: 'Basic ' + Utilities.base64Encode(
CONFIG.TWILIO_ACCOUNT_SID + ':' + CONFIG.TWILIO_AUTH_TOKEN)
},
muteHttpExceptions: true
};
var resp = UrlFetchApp.fetch(url, opts);
return resp.getResponseCode() === 201;
}
function getSentEventIds(sheet) {
var data = sheet.getDataRange().getValues();
return data.slice(1).filter(r => r[4] === true).map(r => r[0]);
}
Replace the placeholder credentials in CONFIG with your actual Twilio values. For security, store credentials in the Properties Service rather than hardcoded:
// Run once to store, then remove from CONFIG
function storeCredentials() {
PropertiesService.getScriptProperties().setProperties({
TWILIO_ACCOUNT_SID: 'YOUR_SID',
TWILIO_AUTH_TOKEN: 'YOUR_TOKEN'
});
}
Setting the Trigger
- In the Apps Script editor, click the clock icon (Triggers) in the left sidebar.
- Click Add Trigger and select
sendCalendarSmsReminders. - Set the event source to Time-driven, type to Minutes timer, interval to Every 15 minutes.
- Click Save.
On first run, Google will prompt you to authorise Calendar, Sheets, and external URL access. Approve all three. The trigger then runs silently every 15 minutes, checks the reminder window, and dispatches SMS only to events that have not yet been messaged.
Total monthly cost for 200 reminders: ~AUD $30 (Twilio only — Apps Script is free within Google Workspace).
Use Cases for Australian SMBs
Trades and field services. An electrician or plumber who drives to a job and finds nobody home has lost an hour of billable time plus fuel. A 24-hour SMS and a 2-hour SMS together measurably reduce this outcome without any manual effort.
Allied health practices. Physiotherapy, osteopathy, and psychology clinics operate under tight scheduling where last-minute gaps are nearly impossible to fill. Automated reminders sent 48 hours and 2 hours before an appointment give the practice lead time to contact a waitlist client if the original patient cancels.
Real estate agencies. Agents managing property inspections can tag multiple buyer phone numbers in a Calendar event description. Make.com's iterator module loops through each number and sends individual SMS messages — Zapier and Apps Script handle this with minor modifications to the phone-extraction logic.
Training and education providers. Paid workshop hosts benefit from a confirmation SMS on booking creation and a reminder SMS 24 hours before the session. A no-show at a paid workshop is a direct revenue loss with no recovery path.
Cost Comparison at a Glance
| Approach | Platform (AUD/month) | Twilio (AUD/month) | Total |
|---|---|---|---|
| Zapier + Twilio | ~$47 | ~$30 | ~$77 |
| Make.com + Twilio | ~$17 | ~$30 | ~$47 |
| Apps Script + Twilio | $0 | ~$30 | ~$30 |
Choose Zapier if your team already uses it and you want the fastest possible setup. Choose Make.com if you want a no-code visual builder with more logical flexibility at a better price point. Choose Apps Script if you want the lowest ongoing cost, are comfortable with JavaScript, and want everything contained within Google's ecosystem.
Resources
If you are setting up or upgrading your Google Workspace environment to take advantage of Calendar-based automation workflows, the following link is worth bookmarking:
- Google Workspace Referral: https://referworkspace.app.goo.gl/ — Google Workspace provides the Calendar API, Apps Script runtime, and Google Sheets infrastructure that underpin all three methods in this guide. The Business Starter plan at approximately AUD $11/user/month gives you a properly configured environment with everything you need.
Before going live, confirm two things. First, ensure you have consent to contact each recipient via SMS. Under the Australian Privacy Act 1988 and the Spam Act 2003, you need express or implied consent to send commercial electronic messages. An appointment booking where the client provides their mobile and accepts your terms typically constitutes implied consent — but review your intake process against ACMA guidance if you are uncertain. Second, include an opt-out instruction in every message. The Reply STOP to opt out wording in the templates above satisfies this requirement. Honour opt-outs promptly by updating your tracking sheet or CRM.
Conclusion
Automated SMS reminders are one of the highest-value, lowest-effort improvements available to a service-based Australian SMB. A 30–60 minute setup investment pays for itself after the first prevented no-show. Every reminder the system sends after that is pure upside — time not spent on phone calls, no-shows you did not have to absorb, and a professional, timely client experience running automatically in the background.
Start with a single calendar, one reminder per event, and your own mobile as the test recipient. Confirm the date, time, and business name render correctly for Australian locale. Once you are satisfied, activate it for real clients and extend the workflow — a second reminder at a different interval, a multi-guest iterator, or a logging sheet for audit purposes — as your confidence in the system grows.
The businesses that retain clients most effectively are the ones that make clients feel looked after. A well-timed, automatic SMS reminder is a small but tangible signal that your business respects the client's time and has its operations under control.
Ash Ganda is the founder of CloudGeeks, a Google Workspace consultancy helping Australian SMBs get more from their cloud tools. He writes about practical technology strategies at insights.cloudgeeks.com.au.