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.
Open CalendarRows
Choose Extensions → CalendarRows → Open CalendarRows. It suggests columns from your headers, such as Title, Date, Start time and Location.
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.
Preview, then send
Preview shows what will change. Send adds two columns to your sheet, an event ID and a status for every row.
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.
| Event | Date | Start time | End time | Location | CalendarRows event ID | CalendarRows status |
|---|---|---|---|---|---|---|
| Team standup | 2026-11-02 | 9:00 AM | 9:15 AM | Online | cr4f1c… | CREATED |
| Site visit | 2026-11-10 | 10:00 AM | 11:30 AM | Space Needle, Seattle, WA | cr9a07… | UPDATED |
| Office closed | 2026-11-26 | cr2bd3… | 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.
| Feature | Free | Pro |
|---|---|---|
| Calendar changes per day (create, update or delete) | 50 | 2,000 (fair use) |
| Unchanged rows, previews | Free | Free |
| Events per import | 100 | 5,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.
Guides
Sheets and Calendar, with or without CalendarRows.
Step-by-step guides, each starting with the free method: the CSV import, a script that doesn’t duplicate events, and exporting a date range to a sheet.
- How to create Google Calendar events from Google Sheets
- How to import a spreadsheet or CSV into Google Calendar
- How to export Google Calendar to Google Sheets
- How to put a shift schedule from Google Sheets into Google Calendar
- How to send Google Form responses to Google Calendar
- How to create recurring Google Calendar events from Google Sheets
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.
Google Calendar and Google Sheets are trademarks of Google LLC. CalendarRows is not affiliated with or endorsed by Google.