Google Form to Google Calendar — Free Apps Script Generator
Turn every Google Form submission into a Google Calendar event automatically. Map your form's date, time and other questions below — we generate a ready-to-paste Apps Script so you can skip the paid add-on. No signup required.
Use {Question Title} to insert any form answer. E.g. {Name}, {Email}. Match the question's exact label.
Exact title — case-sensitive.
Leave blank if the date field also holds a time.
🔒 privacy-friendly — your inputs never leave your browser. nothing is stored or sent to our servers.
Got your script? Skip the Apps Script setup next time.
Now you're about to paste this into Google's script editor, set up a trigger, click through an "unverified app" warning, and hope your date format parses correctly. In FormNX, calendar events fire from form submissions natively — one toggle, no script, no fragile date parsing. Plus the things Google Forms can't do at all: availability checks, conditional routing to different team calendars, branded confirmation emails.
Get FormNX Free — Calendar Built In →Free forever plan. No credit card required.
Real limitations of this Google Forms to Calendar Apps Script approach
The script above works — but you should know what you're committing to. Here are the honest limits Apps Script can't solve without writing more code:
No availability check — double bookings will happen
The script creates an event for every submission, no matter what's already on your calendar. If two people pick the same 3pm slot, you'll have two overlapping events and no way to know until someone shows up. There's no built-in conflict prevention.
Date and time parsing is fragile
Google Forms doesn't pass a real Date object — it passes whatever string the field formatted (e.g. "12/04/2026" or "Dec 4, 2026"). If the submitter's locale or your field type differs from what the script expects, parsing fails silently and no event is created.
Timezone is your account's, not the submitter's
The event is created in your Apps Script account's timezone. If a submitter in another timezone enters "2pm", the script will create the event at 2pm in your timezone — almost certainly not what they meant. There's no easy way to detect or convert the submitter's timezone in Apps Script.
No reschedule or cancel handling
If a submitter needs to change their booking, they'll re-submit the form — and the script will create a second event without removing the first. You'll have to manually find and delete the old one. There's no way to link a submission to an existing calendar event.
Same calendar for everyone — no routing
The script writes to one fixed calendar. You can't route bookings to different team members based on form answers (e.g. "if Service = Coaching → Alice's calendar; if Service = Audit → Bob's"), without rewriting the script for each branch.
Silent failures + authorisation can expire
If the script errors (bad date parse, calendar not found, quota hit) or your trigger expires, nothing tells you. You only find out when a submitter says "I never got the calendar invite." You'll have to manually open the Executions log to investigate.
"Functions that are particularly useful: Multi-Step Forms, progress bar, personalized 'Thank You' Page, smart form scheduling, duplicate check, reporting & charts. Very fast help!"
When the script isn't enough — what FormNX adds
- ✓ Native calendar event creation — no scripting, no date-format gotchas
- ✓ Availability check before booking — submitters only see free slots; no double-bookings
- ✓ Submitter timezone auto-detected — events created in the right local time
- ✓ Conditional routing — different services route to different team calendars automatically
- ✓ Branded confirmation emails — not the default Google Calendar invite
- ✓ Multi-step booking flow — higher completion than a single long page
- ✓ Built-in OTP email verification so every booking is from a real inbox
Comparing options? See FormNX vs Google Forms →
Switch to FormNX — Free Forever Plan →Free forever plan. No credit card required.
How to install the script in your Google Form (6 steps)
- Open your Google Form in your browser.
- Click the three-dot menu (⋮) in the top-right and choose Script editor. (In the newer UI it's under Extensions → Apps Script.)
- A new tab opens with a code editor. Delete any existing code, then paste the script generated above.
- Click the 💾 Save icon (or press Ctrl/Cmd + S). Give the project a name if asked — something like "Form to Calendar".
- In the left sidebar, click Triggers (⏰). Click + Add Trigger (bottom right). Set: Function =
createCalendarEvent, Event source = From form, Event type = On form submit. Click Save. - Google will ask for permissions to access Calendar. You'll see a warning that says "Google hasn't verified this app" — this is normal because the script is your own. Click Advanced → Go to [project] (unsafe) → Allow. Submit a test response to your form and check that the calendar event was created.
Every new submission from now on creates a calendar event automatically. If your form's question titles change, regenerate the script and replace the code in the editor.
What this script actually does
The script registers an on-form-submit trigger. Every time someone submits a response, Google's servers call the createCalendarEvent function and pass the response data via e.namedValues — a dictionary keyed by your question titles.
The function reads the date and time answers, parses them into a JavaScript Date, fills in the title and description by substituting {Question Title} placeholders with the actual answers, then calls CalendarApp.createEvent() on your chosen calendar. If you enabled the "invite the submitter" toggle, it scans the responses for an email-format value and adds that person as a guest.
Frequently Asked Questions
-
1. Is there a simpler way to send Google Form submissions to Google Calendar?
Yes — switch to a form builder with native calendar integration. FormNX turns every submission into a calendar event without scripting, handles timezones correctly, supports availability checks, and routes different services to different team calendars — all visually, no code. The free plan covers most use cases.
-
2. Can Google Forms create calendar events natively, without an add-on or script?
No. Google Forms doesn't have a native calendar integration — you need either a paid Workspace add-on (Form to Calendar, Form2Cal, Form Director), Zapier, or a custom Apps Script. The generator above gives you the Apps Script approach, free.
-
3. Is this generator really free?
Yes — completely free with no signup. The script is generated entirely in your browser. We never see your question titles, calendar ID, or any data.
-
4. How do I find the exact "question title" to paste into the date and time fields?
Open your Google Form in edit mode. The question title is the bold text at the top of each question (e.g. "Preferred date"). Type it into the generator above exactly as it appears — capitalisation and punctuation matter, because Apps Script matches it as a dictionary key.
-
5. What date format does the script expect?
It uses JavaScript's built-in
new Date(...)parser, which accepts most common formats — ISO ("2026-12-04"), US ("12/04/2026"), and long-form ("Dec 4, 2026"). For predictable results, use Google Forms' native Date question type rather than a free-text field. If parsing fails, check the Executions log in the script editor for the raw value. -
6. Can I add the submitter as a guest to the event?
Yes — enable the "Invite the submitter" toggle. The script scans the responses for an email-format answer (e.g. an "Email" question) and adds that address as a guest on the calendar event.
-
7. Can I write events to a calendar other than my primary one?
Yes. Open Google Calendar → Settings for the calendar you want → scroll to "Integrate calendar" → copy the Calendar ID (it looks like
[email protected]). Paste it into the Calendar ID field above. Make sure your account has write access to that calendar. -
8. Can I prevent double-bookings on the same time slot?
No — the Apps Script approach creates an event for every submission, regardless of conflicts. To prevent double-bookings, you need a form builder like FormNX with built-in availability slots, or a dedicated booking tool. The script blindly trusts whatever date/time the submitter entered.
-
9. How do I handle different services routing to different team calendars?
You'd need to hand-edit the script with branching logic (
if response = "Coaching" then calendar A, else calendar B). It works but quickly becomes hard to maintain. Visual conditional routing is built into FormNX — no code to edit per service. -
10. How do I remove or disable the calendar sync later?
Open the script editor (Extensions → Apps Script), click Triggers (clock icon) in the left sidebar, find your trigger, and click the trash icon. New submissions stop creating events immediately. Existing events stay on your calendar.
-
11. Can I use Google Forms to schedule appointments or meetings?
Not on its own. Google Forms collects a requested date and time, but it has no availability check, no time-slot picker, and no way to stop two people booking the same slot - so it is a request form, not a scheduler. The Apps Script above turns each submission into a calendar event, which is enough for simple intake, but for real appointment or meeting scheduling - showing only free slots, confirmations, reminders, and correct timezones - use a form builder with native scheduling like FormNX or a dedicated booking tool.
-
12. How do I add a calendar date picker to a Google Form?
Add a question and choose the Date question type - Google Forms then shows respondents a calendar date picker (add a separate Time question if you also need a time). That captures the date on the form itself; to push it into Google Calendar as an event you still need the Apps Script above, a Workspace add-on, or Zapier. FormNX works the same way with built-in date and time fields, but creates the calendar event natively with no script.
-
13. Does Google Forms have a calendar template?
No - Google Forms has no built-in calendar template and no native calendar view. You collect dates with the Date question type, and if you want each response to appear on Google Calendar you connect the form using the Apps Script above, a paid Workspace add-on, or Zapier. There is no setting inside Google Forms that creates calendar events on its own.
Made by FormNX — the form builder with built-in calendar integration, availability checks, and conditional routing. See our other free tools: email notifications generator, embed Google Form generator, and QR code for Google Forms.