Calrows

How to sync a spreadsheet with Google Calendar™, both ways

"Sync" is the word everyone uses and few tools deliver. Most create events once and stop. Here is what real two-way sync involves and how Calrows does it.

The problem: which row is which event?

A calendar event has no idea which spreadsheet row created it. Without a link between them, a second run can only guess, and guessing by title and time breaks the moment you rename or move something. So the tool has to store the link.

Calrows adds a hidden column named _eventId to your sheet the first time it syncs. Each row gets the ID of the event it created. From then on:

Don't delete the hidden column. If you do, the next run treats every row as new.

Which side wins?

Whichever you sync from. "Send rows" makes the sheet the source of truth; "Pull changes" makes the calendar the source. Most people pick one direction as the master and use the other for corrections. Automatic sync on the Pro plan runs "Send rows" on a schedule and can optionally follow it with a pull and a removal, so the sheet drives the calendar every 15 minutes to once a day, even with the sheet closed.

Things that are not sync

Large sheets

Google stops any Apps Script run after six minutes. Calrows works in chunks and, if a sheet is too big for one run, schedules itself to continue a minute later, with the progress bar in the sidebar showing where it is. A 300-row sheet takes a few minutes and finishes on its own.

Install Calrows, free