How to Add Attendees to Google Calendar From Google Forms (2026)

Turn Google Forms sign-ups into Google Calendar guests automatically, free with Apps Script or with Zapier, and hide the guest list from invitees.

The Merlin team11 min read

Google Forms can't add respondents to a Google Calendar event on its own; there is no built-in setting for it. You have three ways to connect them: a short Google Apps Script attached to the form (free, adds each person as their response comes in), a Zapier Zap that pairs New Form Response with Add Attendee(s) to Event, or copying addresses into the event's Guests box by hand.

Registrations for a workshop, a webinar or an open office hour pile up in a form, while the people behind them wait for a calendar invite that only arrives if someone sends it. The first time I ran sign-ups through a form, I pasted every address into the event by hand the morning of, and missed one. Below: the settings to change before you share the form, the free script, the Zapier route, and the usual reasons an invite goes missing.

Which method should you use?

For most people the Apps Script route is the right one: it costs nothing, runs as soon as a response is submitted, and needs no third-party account. Zapier is the better pick when you already pay for it or don't want to touch code. Adding guests by hand only makes sense for a small, one-off event.

Three ways to add Google Forms respondents to a Google Calendar event

Method

Cost

When guests are added

Best for

Apps Script on the form

Free

When each response is submitted

Recurring sign-ups, anyone comfortable pasting code

Zapier

Free plan: 100 tasks a month; Pro starts at $19.99 monthly, paid yearly

Free plan checks every 15 minutes; Pro every 2 minutes

People who already use Zapier or want no code

By hand

Free

Whenever you paste them in

A one-off event with a short list

Zapier's prices and check intervals come from Zapier's pricing page. Every method works on an event that already exists, so create the event in Google Calendar first, with its date, time, location or video link, and description.

Three settings to change before you share the form

Before the first response arrives, turn on email collection in Google Forms, hide the guest list on the Google Calendar event, and cap the number of responses. Each one prevents a problem that is hard to undo once invites have gone out.

1. Collect email addresses in Google Forms

A form built in Google Forms doesn't collect email addresses by default, and without an address there is nobody to invite. Google's Forms help page gives the path:

  1. Open the form and click Settings.
  2. Next to Responses, click the down arrow.
  3. Under Collect email addresses, choose Verified or Responder input.

Verified makes respondents sign in with a Google Account and records that account's address. Responder input lets them type any address, which suits people without a Google Account but can't stop a typo. For internal sessions I go with Verified every time. For a public event, Responder input is friendlier, and I accept that the odd invite will bounce.

2. Hide the guest list on the event

Google Calendar shows every guest to every other guest unless you change it. Google's page on sharing events says See guest list is the default setting, and that with it switched off, invited guests won't see other guests on the invite. For a public sign-up, that matters: everyone who registers would otherwise see everyone else's email address.

  1. Open the event in Google Calendar and click Edit event.
  2. Under Guest permissions, clear See guest list.
  3. While you're there, clear Invite others if you don't want guests forwarding the invite, as Google's invite guide describes.
  4. Click Save.

One trade-off: Google notes that with See guest list off, the shareable event page link stops working. If you planned to post that link publicly, share the form instead. When I send a public sign-up form, I hide the guest list before the first response lands, not after.

3. Cap responses at the event's guest limit

A single Google Calendar event takes up to 200 invited guests, according to Google's invite guide; beyond that, Google suggests inviting a Google Group, which can hold up to 100,000 people. Google Forms can close itself at a limit: on a published form, click Published, then under Accepting responses set a close date or a response limit, per Google's Forms help page. You can also edit the message people see once it closes.

How to add Google Forms respondents to a Calendar event with Apps Script

Google Apps Script can add every new Google Forms respondent to an existing Google Calendar event and send them the invitation. You paste one script into the form, turn on the Google Calendar API service, and add a form submit trigger. It takes no paid account and runs under your own Google Account.

Step 1: Open the script editor from the form

  1. Open your form in Google Forms.
  2. Click More (the three dots) and choose Apps Script. Google's guide to bound scripts describes the same path.
  3. In the editor, next to Services, click Add a service, choose Google Calendar API and click Add. Google's advanced services guide covers this step; it makes the `Calendar` object in the script available.

Step 2: Paste the script

Delete whatever is in the code window and paste the script below. It does three things: finds your event's ID, reads the respondent's email address when a response comes in, and adds that address to the event's guests with an invitation email.

Code.gs
// 1. Fill these in
const CALENDAR_ID = 'primary';           // or the calendar's ID from its settings
const EVENT_ID = 'paste-the-event-id-here';
const SEARCH = 'Workshop';               // a word from the event title

// 2. Run this once to find the event ID (it prints to the execution log)
function findEventId() {
  const now = new Date();
  const later = new Date(now.getTime() + 90 * 24 * 60 * 60 * 1000);
  const result = Calendar.Events.list(CALENDAR_ID, {
    q: SEARCH,
    timeMin: now.toISOString(),
    timeMax: later.toISOString(),
    singleEvents: true
  });
  (result.items || []).forEach(function (ev) {
    Logger.log(ev.summary + ' | ' + (ev.start.dateTime || ev.start.date) + ' | ' + ev.id);
  });
}

// 3. The form submit trigger runs this for every new response
function addRespondentToEvent(e) {
  const email = e.response.getRespondentEmail();
  if (!email) {
    Logger.log('No email on this response. Turn on Collect email addresses.');
    return;
  }
  const lock = LockService.getScriptLock();
  lock.waitLock(30000);
  try {
    const event = Calendar.Events.get(CALENDAR_ID, EVENT_ID);
    const attendees = event.attendees || [];
    const already = attendees.some(function (a) {
      return a.email && a.email.toLowerCase() === email.toLowerCase();
    });
    if (already) return;
    attendees.push({ email: email });
    Calendar.Events.patch({ attendees: attendees }, CALENDAR_ID, EVENT_ID, { sendUpdates: 'all' });
  } finally {
    lock.releaseLock();
  }
}

A few lines deserve a second look before the form goes live:

  • getRespondentEmail() returns the address Google Forms collected, but only when email collection is on, per the FormResponse reference. That's why setting 1 above comes first.
  • sendUpdates: 'all' tells Google Calendar to email every guest about the change, which is how the new person gets their invite. The Calendar API reference lists the other values, `externalOnly` and `none`.
  • The script reads the guest list first and sends it back with the new person added. The same reference says array fields sent in a patch overwrite the existing array, so sending only the new address would wipe everyone already invited.
  • LockService stops two responses submitted at the same moment from overwriting each other; a script lock "prevents any user from concurrently running a section of code," per Google's LockService reference.
  • It skips duplicates, so someone who submits twice gets one invite.

The simpler `CalendarEvent.addGuest()` method also adds a guest, but its reference page doesn't say whether Google emails the invitation, so I'd rather use the version that states it.

Step 3: Find the event ID

  1. In the script's first lines, change `SEARCH` to a word from the event's title.
  2. Choose findEventId in the function menu and click Run.
  3. Approve the permissions Google asks for. Because the script uses your calendar, you may see a warning that the app is unverified by Google, which Google's authorization guide says can happen with sensitive scopes. It's your own script, so you can continue.
  4. Open the execution log, find the line with the right title and date, and copy the ID at the end.
  5. Paste it into `EVENT_ID` and save.

The search looks at events in the next 90 days and, with `singleEvents` on, lists each occurrence of a repeating event separately, as the events list reference explains. Pick the specific date people are signing up for.

Step 4: Add the form submit trigger

  1. In the left panel of the editor, click Triggers.
  2. Click Add Trigger.
  3. Choose addRespondentToEvent as the function, set the event source to the form and the event type to form submit.
  4. Click Save.

Google's installable triggers guide notes that these triggers always run under the account of the person who created them. The invites come from you, and the event must be on a calendar your account can edit. A test response submitted from a script won't fire the trigger, so test it the normal way.

Step 5: Test it with a real response

Open the form's live link, submit a response using a second address you own, then open the event in Google Calendar and check the guest list. I add a test response with my own second address before the form goes to anyone else, then remove that guest from the event. If nothing appears, open Executions in the script editor; the error there usually names the problem.

Apps Script limits for a free Google account

Triggers on a personal gmail.com account get 90 minutes of total runtime a day, and 6 hours on Google Workspace, according to Google's Apps Script quotas page. The script makes one short run per response, a small share of that budget for a typical sign-up form.

How to add attendees from Google Forms with Zapier

Zapier connects Google Forms to Google Calendar with a two-step Zap: the Google Forms trigger New Form Response and the Google Calendar action Add Attendee(s) to Event, both listed on Zapier's Google Forms and Google Calendar page. It needs no code, but it isn't instant on the free plan.

  1. In Zapier, create a Zap and choose Google Forms as the trigger app.
  2. Pick New Form Response, connect your Google account and choose the form.
  3. Test the trigger. Submit a sample response first if the form is new, so Zapier has something to pull in.
  4. Add an action: Google Calendar, then Add Attendee(s) to Event.
  5. Choose the calendar and the event, then map the attendee field to the email from the form response.
  6. Test the action, check the event's guest list, and turn the Zap on.

On cost, Zapier's free plan gives you 100 tasks each month, and Zapier counts a task for each successful action, not for the trigger. One sign-up equals one task here, so a form with more than 100 sign-ups a month needs a paid plan. The free plan also checks for new responses every 15 minutes, so a late registrant might wait a little for their invite.

Zapier earns its place when the same response needs to go further, such as adding the person to a mailing list as well. Multi-step Zaps need a paid plan, per Zapier's pricing page.

How to add form respondents to a Calendar event by hand

For a short list, copying addresses from Google Forms into the event's Guests field takes a few minutes and needs no setup. Collect the addresses first, then follow Google's invite guide:

  1. In Google Forms, click Responses, then Link to Sheets to see every answer in a spreadsheet, as Google's Forms help page describes.
  2. Open the event on calendar.google.com and click Edit event.
  3. Under Guests, type or paste each email address.
  4. Click Save and choose to send the invitation emails.

To know when to come back and add more, turn on alerts: in the form, click Responses, then More, then Get email notifications for new responses. When a session is a week away and sign-ups trickle in, I add people in one batch a day rather than one by one.

Why didn't someone get the Google Calendar invite?

When a respondent says the invite never arrived, the cause is usually one of six things: no email was collected, the address was mistyped, the change was saved without notifying guests, the guest list was overwritten, the event hit its guest limit, or the script or Zap stopped running. Check them in this order.

  • No email address on the response. Open the response in Google Forms. If there's no email, Collect email addresses was off when they submitted, and the script logs a line saying so.
  • A typo in the address. With Responder input, a mistyped address sends the invite somewhere else, or nowhere. Fix it in the event's guest list and save.
  • Guests weren't notified. Added by hand, the invite only goes out if you choose to send it when saving. In the script, `sendUpdates` must be `'all'`.
  • The guest list was replaced. If you adapt the script and send only the new address in a patch, every earlier guest is removed. Restore the list from the spreadsheet of responses.
  • The event is full. 200 invited guests is the most one Google Calendar event allows; switch to a Google Group or a second event.
  • The trigger or Zap stopped. An Apps Script trigger runs as the account that created it, so it can fail if that account loses edit access to the calendar. Check the script's Executions page, or the Zap's run history in Zapier.

When a form isn't the right tool

Google Forms works well when many people sign up for one event. For one-on-one bookings, such as office hours or client calls, a Google Calendar appointment schedule is usually the better fit, and our appointment scheduling guide walks through setting one up. If the event is ticketed through Eventbrite, our post on adding Eventbrite events to Google Calendar covers getting those onto your calendar.

If the form is one of several things you want running on its own, our guide to automating Google Calendar covers default alerts, daily agendas and other set-and-forget settings.

Before the event: a short checklist

  • Email collection is on, and set to Verified or Responder input on purpose.
  • See guest list and Invite others are cleared on the event, unless attendees should see each other.
  • The form closes at 200 responses, or at the room's capacity if that's lower.
  • A test response reached the event, and you removed the test guest afterward.
  • The event description holds everything people need on the day: the video link or address, and what to bring.
  • If you change the time later, choose to email guests when you save. Their calendars usually update either way, but an email is what people actually notice.

Add the late sign-ups in one sentence

Someone always emails instead of filling in the form. With Merlin, a desktop assistant connected to Google Calendar, you can type who to add to which event, and it comes back as an event card with the guest list to check. Change anything you like, and the event only updates once you approve it.

Get Merlin

Frequently asked questions

Can Google Forms automatically add people to a Google Calendar event?

Not by itself. Google Forms has no setting for it, so you need a Google Apps Script with a form submit trigger, or an automation tool such as Zapier, to add each respondent to the event.

Does adding a guest send a Google Calendar invitation?

It does when you choose to send it. In Google Calendar you're asked whether to email guests when you save, and in the Calendar API the sendUpdates parameter set to 'all' notifies every guest.

How many people can I invite to one Google Calendar event?

Google Calendar allows up to 200 invited guests per event. For larger events, invite a Google Group instead, which can hold up to 100,000 people.

Can attendees see each other's email addresses?

Yes, by default. Open the event, click Edit event and clear See guest list under Guest permissions, and guests will no longer see each other on the invite.

Is the Zapier method free?

It can be. This Zap has only two steps, which the free plan allows, and each attendee added uses one of the plan's 100 monthly tasks, so busier forms need a paid plan.

Why does my Apps Script say there's no email on the response?

The form isn't collecting email addresses. In Google Forms, open Settings, expand Responses and choose Verified or Responder input under Collect email addresses.

you scrolled all the way down here

your next free moment starts in three minutes

getting started takes three minutes. sign in, and i'm on your to-dos, starting with who's waiting on you

you decide what comes after

Download for Mac Free forever. No credit card.