Home/Integrations/Google Calendar
Google Calendar and Google Sheets integration
If your schedule lives in a sheet and your team lives in Google Calendar, someone ends up copying between the two. I connect them so rows become calendar events with the right people invited, changes in the sheet update the event, and booked time can be read back into the sheet for reports.
Connect Google Calendar to my sheetWhat it can do
Common Google Calendar jobs I set up. Yours will match how you use Google Calendar today.
Events from rows
A job, lesson, appointment or shift in the sheet becomes an event with the time, location, notes and the right people invited.
Changes kept in sync
Move the date or time in the sheet and the calendar event moves too. Cancel the row and the event is removed.
Staff calendars
Each staff member or room gets its own calendar, and events go on the right one based on who or what is assigned.
Availability checks
Before booking, the script checks free and busy time on the relevant calendars so nothing gets double booked.
Hours reports
Events read back into the sheet to total booked hours by person, client or type for payroll or invoicing.
Customer invites
Customers added as guests so the appointment lands on their own calendar with your details.
How it's built
The script uses CalendarApp, or the Advanced Calendar service when it needs features like conference links or more control over recurring events. Each event's ID is saved on its row, which is how the script finds and updates the right event later.
Changes in the sheet are picked up by an installable on-edit trigger or a scheduled sync, depending on how many people edit at once. For changes made on the calendar side, Apps Script has a calendar-updated trigger, and the script then reads what changed and updates the sheet.
Availability checks read events in a time range across several calendars before a booking is written. The booking step uses a script lock, so two bookings arriving together can't both claim the same slot.
Good to know
- The account running the script needs edit access to every calendar it writes to.
- Google limits how many calendar events an account can create in a day. Normal business scheduling stays far under it, but bulk-creating a full year of events at once may need to be spread over runs.
- Recurring events edited on the calendar one occurrence at a time are harder to keep in sync. I usually let the sheet own the schedule and the calendar display it.
- Guest invites send emails from the account that owns the calendar.
Google Calendar questions
If someone edits the event in Calendar, does the sheet update?
It can. I'll agree with you which side wins when both change, because syncing in both directions needs a clear rule.
Can customers book themselves?
Yes, through a booking page built with Apps Script that reads open slots from the sheet or calendar. Google Calendar's own appointment schedules are another option for simple cases.
Does it work with shared calendars?
Yes, as long as the account running the script has permission to make changes to them.
Can it add video call links?
Yes. Using the Advanced Calendar service, the script can attach a Google Meet link to each event.
Tell me what your sheet needs to do
A few sentences is enough to start. I'll reply with questions, then a plan and a fixed quote.