Skip to content

Instantly share code, notes, and snippets.

@remoblaser
Created March 6, 2018 13:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save remoblaser/33ef87487b1ee7bf6564252d05dc2cf4 to your computer and use it in GitHub Desktop.
Save remoblaser/33ef87487b1ee7bf6564252d05dc2cf4 to your computer and use it in GitHub Desktop.
This Google Forms Script adds your Form automatically to a Google Calendar
var moment = Moment.load();
var GLOBAL = {
formId : "GOOGLE FORM ID",
calendarId : "GOOGLE CALENDAR ID",
formMap : {
eventTitle: "FORM FIELD TITLE NAME",
startTime : "FORM FIELD START TIME NAME",
description: "FORM FIELD DESCRIPTION NAME",
},
}
function sendFormToCalendar() {
var eventObject = getFormResponse();
var event = createCalendarEvent(eventObject);
}
function getFormResponse() {
var form = FormApp.openById(GLOBAL.formId),
responses = form.getResponses(),
length = responses.length,
lastResponse = responses[length-1],
itemResponses = lastResponse.getItemResponses(),
eventObject = {};
for (var i = 0, x = itemResponses.length; i<x; i++) {
var thisItem = itemResponses[i].getItem().getTitle(),
thisResponse = itemResponses[i].getResponse();
switch (thisItem) {
case GLOBAL.formMap.eventTitle:
eventObject.title = thisResponse;
break;
case GLOBAL.formMap.startTime:
eventObject.startTime = thisResponse;
break;
case GLOBAL.formMap.description:
eventObject.description = thisResponse;
break;
}
}
return eventObject;
}
function createCalendarEvent(eventObject) {
var calendar = CalendarApp.getCalendarById(GLOBAL.calendarId),
title = eventObject.title + " - " + eventObject.description,
startTime = moment(eventObject.startTime).toDate(),
endTime = moment(eventObject.startTime).toDate();
var event = calendar.createEvent(title, startTime, endTime);
return event;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment