Go to form.google.com
Create a form with these questions:
Once done, go to Responses then click “View responses in sheets”
Rename title of the sheets
Go to tool>Script Editor
Resources > Libraries
Include moment.js
Here's the key: MHMchiX6c1bwSqGM1PZiW_PxhMjh3Sh48
Type this code.
var moment = Moment.load(); var GLOBAL = { //the id of the form we will use to create calendar events formId : "14WoTH-2Uq3tpqPpd2Z19S7OQjOyurri7GaVPsKZRg3w", //the id of the calendar we will create events on calendarId : "c7o2tni40kbp29of5902j2oabs@group.calendar.google.com", //a mapping of form item titles to sections of the calendar event formMap : { eventTitle: "Event Title", startTime : "Event Date and Start Time", endTime: "Event End Time", description: "Event Description", location: "Event Location", email: "Add Guests", }, } function onFormSubmit() { var eventObject = getFormResponse(); var event = createCalendarEvent(eventObject); } function getFormResponse() { // Get a form object by opening the form using the // form id stored in the GLOBAL variable object var form = FormApp.openById(GLOBAL.formId), //Get all responses from the form. //This method returns an array of form responses responses = form.getResponses(), //find the length of the responses array length = responses.length, //find the index of the most recent form response //since arrays are zero indexed, the last response //is the total number of responses minus one lastResponse = responses[length-1], //get an array of responses to every question item //within the form for which the respondent provided an answer itemResponses = lastResponse.getItemResponses(), //create an empty object to store data from the last //form response //that will be used to create a calendar event eventObject = {}; //Loop through each item response in the item response array for (var i = 0, x = itemResponses.length; i<x; i++) { //Get the title of the form item being iterated on var thisItem = itemResponses[i].getItem().getTitle(), //get the submitted response to the form item being //iterated on thisResponse = itemResponses[i].getResponse(); //based on the form question title, map the response of the //item being iterated on into our eventObject variable //use the GLOBAL variable formMap sub object to match //form question titles to property keys in the event object switch (thisItem) { case GLOBAL.formMap.eventTitle: eventObject.title = thisResponse; break; case GLOBAL.formMap.startTime: eventObject.startTime = thisResponse; break; case GLOBAL.formMap.endTime: eventObject.endTime = thisResponse; break; case GLOBAL.formMap.description: eventObject.description = thisResponse; break; case GLOBAL.formMap.location: eventObject.location = thisResponse; break; case GLOBAL.formMap.email: eventObject.email = thisResponse; break; } } debugger; return eventObject; } function createCalendarEvent(eventObject) { //Get a calendar object by opening the calendar using the //calendar id stored in the GLOBAL variable object var calendar = CalendarApp.getCalendarById(GLOBAL.calendarId), //The title for the event that will be created title = eventObject.title, //The start time and date of the event that will be created startTime = moment(eventObject.startTime).toDate(), //The end time and date of the event that will be created endTime = moment(eventObject.endTime).toDate(); //an options object containing the description and guest list //for the event that will be created var options = { description : eventObject.description, guests : eventObject.email, location: eventObject.location, }; try { //create a calendar event with given title, start time, //end time, and description and guests stored in an //options argument var event = calendar.createEvent(title, startTime, endTime, options) } catch (e) { //delete the guest property from the options variable, //as an invalid email address with cause this method to //throw an error. delete options.guests //create the event without including the guest var event = calendar.createEvent(title, startTime, endTime, options) } return event; }
For formId, copy the code in form url
For the calendarId, create a new calendar then go to Settings > Interate Calendar, you will see the Calendar ID there.