onibaku.apps
Google Sheets add-on

Sheet to Calendar Sync

One row, one event. Add a schedule, rota or class timetable to Google Calendar straight from your Google Sheet. Change a row and sync again: the event updates instead of being duplicated.

Updates, never duplicates

Each row remembers its event. Edit a time, title or guest list and sync again, and only the changed events are updated. Rows you haven't touched are left alone.

Times exactly as typed

09:00 in your sheet is 09:00 in Calendar, through clock changes and whatever time zone your calendar is in. Rows can carry their own time zone too.

Preview and undo

See every event that will be created, changed or deleted before anything is written, with problems flagged by row. Changed your mind? Undo the last sync in one click.

Getting started

  1. Install the add-on from the Google Workspace Marketplace, then open the Google Sheet with your events.
  2. Choose Extensions → Sheet to Calendar Sync → Open.
  3. Pick the sheet and the calendar to add events to. Columns are matched by their headers; change any that were guessed wrong.
  4. Press Preview to check what will happen, then Sync to Calendar.

Two columns are added to the right of your table: Sync status, which links each row to its event, and a hidden Event ID (sync) column. Leave the hidden column in place: it's how the add-on knows which event a row belongs to.

Starting from scratch? Open the add-on on an empty sheet and press Add example columns.

Columns

Only Title and Start are needed. Headers are matched loosely ("Event name", "Date", "Notes", "Attendees" all work), and you can pick any column by hand.

ColumnWhat to put in itExample
TitleThe event nameTeam standup
StartA date, or a date and time. A date with no time makes an all-day event.14/10/2026 09:30
Start time, End timeTimes, if you keep them apart from the date9:30 am
EndWhen it finishes. For all-day events, the last day. A time earlier than the start runs past midnight.14/10/2026 10:00
DurationUsed when there's no end. Minutes, or "1h30", "2 days". A header saying hours means hours.45
All dayYes or no, or a tick boxYes
Description, LocationTextRoom 4
GuestsEmail addresses, separated by commas, spaces or new linesjo@acme.com, lee@acme.com
RepeatPlain words or an RRULEweekly on Mon and Wed until 18/12/2026
ColourA Calendar colour name, a plain colour, or 1–11Tomato, green, 7
RemindersTimes before the event; "email" for email reminders; "none"10 min, email 1 day
Show asBusy or freefree
Google MeetYes to add a Meet linkYes
CalendarSend this row to another calendar, by name or IDTeam rota
Time zoneFor this row only, as a name like Europe/LondonAmerica/New_York
DeleteYes to delete the row's event on the next syncYes

Repeats understand daily, weekdays, weekly, fortnightly, monthly, yearly, every 3 weeks, every Tuesday and Thursday, and endings like until 31/12/2026, 10 times or for 6 weeks. For anything else, paste an RRULE such as RRULE:FREQ=MONTHLY;BYDAY=2TU (second Tuesday of each month).

Dates and time zones

Google Forms

Linked a form to the sheet? Pick the form's responses sheet in the add-on, map its questions to columns (say "Your name" as the title and "Email Address" as a guest), and sync. With Pro, tick Add an event for each new response automatically and every new response becomes an event within seconds.

Options

Plans

FreePro
Rows per sheetThe first 25Every row
Updates, deletes, preview, undoIncludedIncluded
New form responses added automaticallyNoYes
PriceFree$5 a month or $39 a year

Upgrade from the sidebar. Payment is handled by Stripe, and Pro unlocks in the sidebar within a few seconds, on the Google account you upgraded from. The receipt page shows a licence key, which you can use to move Pro to a different Google account. Cancel or change your card any time from Manage subscription in the sidebar.

Security and your data

Details are in our privacy policy.

Guides

Help

A row says Error

The Sync status column says what's wrong in plain words, for example a date it can't read or an email address with a typo. Fix the row and sync again; the rest of the sheet isn't held up by it.

I deleted an event in Calendar and it came back

Syncing makes Calendar match the sheet. To remove an event for good, put Yes in a Delete column (or delete the row and the event yourself).

I copied a row and now two rows share an event

They don't: the add-on spots a copied row and gives it its own event on the next sync.

I paid but the add-on still says Free

Reopen the sidebar on the Google account you upgraded from. If you paid from a different account, choose Have a licence key? and paste the key from your receipt page. Still stuck? Email admin@onibaku.co.uk with the email on your Stripe receipt and we'll sort it the same day.

It says a permission is missing

Google lets you untick permissions when installing. Press Allow access in the sidebar and tick everything, then press check again.

Found a bug, or want a feature? Email admin@onibaku.co.uk.