Cellbrook

CalendarRows for Google Sheets™

Spreadsheet rows to calendar events, and back.

Create, update and delete Google Calendar™ events in bulk from the rows of your sheet, or import a calendar into a new tab. Running it again updates the same events instead of making duplicates.

Features

Your schedule lives in the sheet. The calendar follows.

Shift rotas, class timetables, fixtures, content calendars, bookings: keep the list where it is easiest to edit, and let CalendarRows keep Google Calendar in step.

One row, one event

A title and a start date are all you need. Add start and end times, an All day column, location, description, guests and a colour (Google Calendar colour names such as Tomato or Sage).

Edit the sheet, send again

Each row's event ID is saved next to it. Change a row and send again: the same event is updated. Rows you didn't change are skipped and cost nothing.

No duplicates, even if interrupted

The event ID is written to your sheet before the event is created. If a run is cut off, resuming it never makes a second copy of an event.

Delete from the sheet

Type delete in a mapped Action column and send again. That row's event is removed from the calendar.

Import a calendar into a new tab

Pick a calendar and a date range, and optionally a search word. The events go into a new tab with their IDs, so you can edit them there and send them back.

Preview first, no emails

Preview shows how many events will be created, updated or deleted before anything changes. Guests are added without sending invitation emails.

How it works

Three steps. No setup.

  1. Open CalendarRows

    Choose Extensions → CalendarRows → Open CalendarRows. It suggests columns from your headers, such as Title, Date, Start time and Location.

  2. Pick a calendar

    Only calendars you can edit are listed. Check the column choices and pick a default length for rows without an end time.

  3. Preview, then send

    Preview shows what will change. Send adds two columns to your sheet, an event ID and a status for every row.

Read the CalendarRows docs

Example

What your sheet looks like after a run.

Your own columns stay exactly as they were. CalendarRows only adds and fills the last two columns.

EventDateStart timeEnd timeLocationCalendarRows event IDCalendarRows status
Team standup2026-11-029:00 AM9:15 AMOnlinecr4f1c…CREATED
Site visit2026-11-1010:00 AM11:30 AMSpace Needle, Seattle, WAcr9a07…UPDATED
Office closed2026-11-26cr2bd3…CREATED

Illustrative example, after a second run in which the Site visit row was edited. A row with a date but no time becomes an all-day event.

Plans

Free, or Pro when you need more.

FeatureFreePro
Calendar changes per day (create, update or delete)502,000 (fair use)
Unchanged rows, previewsFreeFree
Events per import1005,000
Times, all-day, location, guests, colours, delete✓✓
Repeating events—✓
Price$0$9/month or $59/year

Prices include tax. Buy Pro in the add-on (Account tab) or on our pricing page; see the subscription terms. Google Calendar also has its own limits: if Google asks CalendarRows to slow down, it pauses and you can resume a minute later.

Privacy

Your data goes from your sheet to your calendar. Nowhere else.

CalendarRows asks Google for access to only the spreadsheet you have open, to events in your calendars (to create, change and delete the events you send, and to read the events you import) and to a read-only list of your calendars for the calendar picker. It works only while you use it and never runs in the background. Nothing from your sheet or your calendar is sent to or stored on Cellbrook servers. Read the privacy policy.

FAQ

Questions, answered.

Is CalendarRows available now?

Yes. CalendarRows is on the Google Workspace Marketplace. Install it from its Marketplace page for free, then open it from Extensions → CalendarRows → Open CalendarRows in Google Sheets.

Will my guests get invitation emails?

No. CalendarRows adds the email addresses in your Guests column to the event with Google Calendar's “don't send updates” option, so no invitation or update emails are sent, and CalendarRows sends no email of its own. Guests who use Google Calendar may still see the event in their own calendar, depending on their calendar settings.

What happens if I send the same rows twice?

CalendarRows writes each event's ID into a “CalendarRows event ID” column. On the next run, rows that have an ID update that same event, and rows you have not changed are skipped. You don't get duplicates.

What counts toward the daily limit?

Each event created, updated or deleted is one change. Unchanged rows, previews and imports don't use changes. Free includes 50 changes a day. Allowances reset at 00:00 UTC.

What happens when I reach the limit?

CalendarRows does as many rows as you have changes left, saves its place and pauses. After the daily reset, click Resume and it carries on from the next unfinished row.

Which calendars can I use?

Any calendar in your calendar list where you can edit events: your own calendars and shared calendars where you have edit access.

Does CalendarRows see my other spreadsheets, email or files?

No. It can only open the spreadsheet you use it in. It does not ask for your Gmail, contacts or Drive. It reads your list of calendars when the sidebar opens, and reads or changes events only when you click Send or Import. See our privacy policy.

Try CalendarRows free.

CalendarRows is on the Google Workspace Marketplace. Install it, then open it from Extensions → CalendarRows in Google Sheets.

Add to Google Sheets

Google Calendar and Google Sheets are trademarks of Google LLC. CalendarRows is not affiliated with or endorsed by Google.