The short answer
To add attendees to Google Calendar events from Google Sheets, make one row per event and put guest email addresses in a Guests column. Our Google Sheets add-on, CalendarRows, can map that column along with the event title, date and times. Preview the rows, send them to a calendar you can edit, and check the resulting events.
Separate addresses in a Guests cell with commas, semicolons or spaces. CalendarRows accepts up to 50 per event. Anything that is not an email address is ignored and noted in the status, so read the status even when the rest of the event looks correct.
Before inviting real people, use a private calendar and your own second email address for a test. CalendarRows adds guests without sending an invitation email itself, so if people need to be told about an event, plan to tell them another way. How Google Calendar handles notifications and guest permissions depends on your account settings, so check them in your own account rather than assuming an outcome.
CalendarRows Free allows 50 calendar changes per day. The TEXTJOIN formula below is free to use in Google Sheets without the add-on. Preparing a guest list with that formula does not itself create an event or add anyone to one.
Prepare your meeting sheet
Create a sheet with a header row and one event per row. The example below uses fictional meetings and addresses. Replace the addresses with your own test address while you practice, and choose a private calendar for the first send.
| Title | Start date | Start time | End time | Location | Guests |
|---|---|---|---|---|---|
| Project check-in | 2026-11-10 | 9:00 AM | 9:30 AM | Meeting room | alex@example.com, sam@example.com |
| Design review | 2026-11-12 | 2:00 PM | 3:00 PM | Online | lee@example.com; pat@example.com |
| Planning session | 2026-11-13 | 10:00 AM | 11:00 AM | Meeting room | sam@example.com lee@example.com |
Title and Start date are required. Start time, End time, Location and Guests are optional fields, but they make the timed meeting and its guest list clear in this example. The separate time columns describe meetings that start and end on the date in the Start date column. If an event ends on a different day, add an End date column and map it too.
Enter the date as a real date cell and check that it represents the day you intend. A date such as 2026-11-10 is one format in the CalendarRows documentation. A quick check such as =ISNUMBER(B2) returns TRUE for a real date in the example layout. Check your spreadsheet’s time zone under File → Settings; CalendarRows uses that time zone when it reads the event times.
Use complete email addresses rather than names in Guests. A cell containing Alex does not give the add-on an email address to add. You can use different supported separators, as the table shows, but a consistent format makes the list easier to review. Check spelling and remove any address that should not be included before sending.
Keep access to the sheet appropriate for the information it contains. Guest addresses, meeting titles and locations can be sensitive. A private test calendar and fictional addresses in a draft sheet help you inspect the layout before you put real meeting details into use.
Build the Guests column
If each person’s address already has its own column, you do not need to retype the list into every Guests cell. Google Sheets can join the cells for each event. Keep the event fields in columns A through E as above, put Guests in F1, and use columns G through I for the individual addresses.
| F: Guests | G: Guest 1 | H: Guest 2 | I: Guest 3 |
|---|---|---|---|
| alex@example.com, sam@example.com | alex@example.com | sam@example.com | |
| lee@example.com, pat@example.com | lee@example.com | pat@example.com |
Enter this formula in F2, then fill it down for the event rows you want to prepare:
=TEXTJOIN(", ",TRUE,G2:I2)
The first argument puts a comma and a space between values. TRUE tells TEXTJOIN to skip empty cells, so a blank Guest 2 does not leave an extra separator in the middle. G2:I2 is the range of address cells for that event. Change the range if your address columns are elsewhere or if you have more of them. Your Google Sheets locale may require semicolons instead of commas between formula arguments.
Map the resulting Guests column, F, when you send. The individual address columns are helpers for the formula; they do not each need to be mapped as Guests. CalendarRows lets each column be used for one field only. Review the displayed result in F before sending, including addresses copied from another list. The formula joins what is in the cells; it does not establish that an address belongs to the intended person.
The formula is useful even if you do not use CalendarRows: it produces a combined text list in the sheet. It does not send calendar invites or change a calendar on its own. If you later change an address in G, H or I, check the resulting Guests cell and send the event row again to apply the change through CalendarRows.
Count the addresses for each event before sending. The limit is 50 guests per event, not 50 address columns per sheet. If a meeting needs more than 50 guests, check another way to manage that meeting in your account rather than assuming the extra addresses will be added.
Preview and send your events
Start with one test row. Use a private calendar you can edit and put your own second email address in Guests. Check the title, date, times and location as well as the address. This gives you a small event to inspect before you use a real team list.
- Install CalendarRows from the Google Workspace Marketplace. In your sheet, choose Extensions → CalendarRows → Open CalendarRows.
- On To Calendar, choose the sheet, its header row and your private test calendar. The calendar picker lists calendars where you can edit events.
- Map Title, Start date, Start time, End time, Location and Guests to their corresponding columns. Check that Guests points to the combined column if you used the formula.
- Choose selected rows for your test, then click Preview. Review the counts and any rows with problems. Preview does not change the calendar.
- Click Send to Calendar. Read the progress and status, then open the event and check its date, time, location and guest list.
CalendarRows adds CalendarRows event ID and CalendarRows status columns. Keep those columns and their notes with the rows. The ID cell note includes the calendar and a fingerprint of the row; the add-on uses that information to match a row to its event. A CREATED status means a new event was made. Read any accompanying status text for information about an ignored value.
Check your Google Calendar settings and the result at your second address. CalendarRows does not send an invitation email itself, and notification behavior and guest permissions depend on your Google Calendar settings. Make sure the behavior you observe meets your needs before repeating the process with real people. If anything is unclear, resolve it in your account before sending the rest of the sheet.
Once the test is satisfactory, review the real rows and choose the intended calendar. Preview again, check the counts, and send. If you use a different calendar from the test, remember that sending a row to another calendar creates a new event there; it does not move or remove the event in the first calendar.
Update a guest list later
To change an event’s guest list, edit the Guests cell on its row and send that row again to the same calendar. If the cell contains the TEXTJOIN formula, edit the individual address cells instead and check the combined result. CalendarRows sends changed rows and updates the event associated with each one.
Keep the event ID and status columns and their notes intact. They are part of how CalendarRows identifies the event belonging to a row. After sending, look for UPDATED and open the event to check the list. Test an addition and a removal with your own addresses first if you need to understand the behavior in your account.
Review the whole Guests cell when you make a change. For example, if a planning session should have Alex and Lee, check that both intended addresses appear and that an old address is gone before sending. Also check the title and time: a row represents the event, so it is sensible to review its other edited fields before an update.
Choose the same calendar used for the existing event. If you select a different calendar, CalendarRows creates a new event there and the row’s ID points to that new event. The event on the first calendar remains in place. This matters when moving from a private test calendar to a shared calendar: inspect both calendars and keep track of which row now points to which event.
If you need to remove an event altogether, add and map an Action column, type delete on that event’s row, choose the calendar where it was created and send again. Its status becomes DELETED. Removing a guest address and deleting the whole event are different actions, so check the row before sending.
Permissions, limits and checks
CalendarRows asks to view and edit events on your calendars so it can create, update and delete events for rows you send and read events for imports you request. It also reads the calendar list to show the picker. Only calendars where you can edit events appear there. Check that you have the access you need before preparing a large batch for a shared calendar.
The add-on also needs access to the spreadsheets you use with it so it can read the rows, add its event ID and status columns and create an import tab. The permission descriptions are in the CalendarRows documentation. Review them when you install and choose the account you intend to use.
On Free, each create, update or delete counts as one calendar change, with 50 changes per day. A meeting with several guests is still one event row; check the Preview counts to see the event changes in your batch. If a run reaches the daily limit, resume after the reset and check the remaining statuses. Plan updates as well as initial creates within that allowance.
For a one-time spreadsheet import, Google Calendar’s CSV format described in our spreadsheet import guide has no guest column. The TEXTJOIN method can prepare a list in Sheets, but it does not add guests through that CSV import. Choose a method that handles guests if the guest list is part of the job.
Adding guests and exporting attendees are separate tasks. If you already have events and want attendee information in a spreadsheet, start with our guide to exporting Google Calendar attendees. Do not assume that preparing a Guests column in this guide retrieves the people already on an event.
Common problems
A guest is missing from an event. Read the row’s status for an ignored value. Check that the cell contains a complete email address, that addresses are separated by commas, semicolons or spaces, and that the event has no more than 50 guests. Confirm that Guests was mapped to the correct column, then correct the row and send it again.
The combined Guests cell is blank or has the wrong people. Check the TEXTJOIN range and the row number. In the example, F2 reads G2 through I2; a formula pointing to another row reads that row’s addresses instead. Fill the formula down carefully and inspect the displayed list for each meeting before sending.
The event is at the wrong time. Check the Start date, Start time and End time cells, their mappings and the spreadsheet’s time zone under File → Settings. Make sure the date is a real date rather than text. If the meeting crosses into another day, supply and map an End date.
The calendar is not in the picker. Check that you opened CalendarRows with the intended Google account and that you can edit events on that calendar. The picker lists calendars where you can edit events. If it is someone else’s calendar, check the access they have given you.
An address appears in the sheet but the result at that address is unexpected. Check the event’s guest list and your Google Calendar settings. CalendarRows does not send an invitation email itself, and notifications depend on your Google Calendar settings. Test with your own second address and check in your account before relying on any particular notification.
A row reports an error or the run stops. Read the status reason, fix the row and send again. For PENDING, an ID was reserved but the run stopped before the event was confirmed; send again to finish. CalendarRows says it will not make a duplicate for that pending row. If the free daily limit was reached, resume after the reset.
There are events on two calendars. Check whether the row was sent to a different calendar after its first send. CalendarRows creates a new event on the newly selected calendar and does not remove the earlier one. Inspect both events before deciding which to keep, and use the documented Action column with the appropriate calendar if you need to delete an event.
Frequently asked questions
Can I add attendees to Google Calendar events from Google Sheets?
Yes. Put one event on each row and the attendees’ email addresses in a Guests column. CalendarRows can map that column and add the guests when you send the rows. Test with a private calendar and your own second address first.
How many guest addresses can I put in one cell?
CalendarRows accepts up to 50 guest email addresses per event. Separate addresses with commas, semicolons or spaces. Anything that is not an email address is ignored and noted in the status.
Will Google email an invitation to every guest?
CalendarRows adds guests to the event without sending them an invitation email of its own. Whether Google Calendar sends any notification can depend on your calendar settings, so test with your own second address before using real guests.
Can I combine several email columns into one Guests cell?
Yes. In Google Sheets, a formula such as =TEXTJOIN(", ",TRUE,G2:I2) combines the addresses in G2 through I2 and skips blank cells. This preparation works for free in Sheets without CalendarRows. Check the resulting addresses before sending.
Can I change the guests after creating an event?
Edit the Guests cell on the event’s row and send it again to the same calendar. CalendarRows updates changed rows. Keep its event ID and status columns and their notes so it can match the row to its event, then check the updated event.
Can I add guests with a Google Calendar CSV import?
The Google Calendar CSV columns described in our spreadsheet import guide do not include a guest column. You can prepare addresses in Google Sheets, but the CSV method described there does not add them as guests.
Can I export an existing event’s attendees to a sheet?
Exporting attendees is a separate task from adding guests to events. See our guide to exporting Google Calendar attendees to Google Sheets, and check the available options for your account before relying on an export.
Related
- Create Google Calendar events from Google Sheets
- Sync Google Sheets with Google Calendar
- Import a spreadsheet into Google Calendar
- Export Google Calendar attendees to Google Sheets
- CalendarRows documentation
- All guides
Disclosure: we make CalendarRows, the Google Sheets add-on mentioned in this guide. The free TEXTJOIN method for preparing a combined guest list works in Google Sheets without it.
Google Sheets, Google Calendar and Google Workspace are trademarks of Google LLC. CalendarRows and Cellbrook are not affiliated with or endorsed by Google.