In this article:

Create a Google Calendar event for new Google Forms responses

This article shows how to automatically create Google Calendar events when a new row is added to a Google Sheet or a new response is submitted to a Google Form. 

This automation saves time and reduces missed appointments. It's particularly useful for sales teams, consultants, and any business that wants to automatically schedule an appointment automatically when a form is filled out.

Connect your Google Form to a Google Sheet

First, we need to connect our Google Form to a Google Sheet, so that new form responses are automatically added to the sheet. In your Google Form, go to the responses tab. Then click on the Link to Sheets button.

You will be prompted to select a destination for responses. Select Create a new spreadsheet. Then click Create.

Connect your Google Sheet to Lido

We will use Lido, a new spreadsheet built to automate repetitive tasks, to merge our Google Sheet data into the Google Doc template to create new Google Docs. There is a free tier with paid plans as well. You can create a new account here: https://www.lido.app/go/signup

Step 1. From the Lido Files page, click Create a new file

Step 2. then click Connect Data and select Google Sheets.

Next, paste in your Google Sheet URL. If it's your first time connecting a Google Sheet to Lido, you'll need to authenticate into a Google account that has access to the sheet you're trying to connect.

Select all of the columns that you want to connect to Lido. Make sure to connect all of the columns that are referenced as variables in your Google Doc template.

Click Add Data.

Your Lido spreadsheet should now have connected data from your Google Sheet. It will look like this:

Add ADDCALENDAREVENT formula

Our next step is to add another column to the right of your data that has the ADDCALENDAREVENT formula. This formula will add a calendar event in Google Calendar based on values from each row that you specify. The formula syntax is: 

=ADDCALENDAREVENT(calendar_credential, calendar_id, title, description, start_date, end_date, status_cell, [attendees])

Connect to Google Calendar

Start typing =ADDCALENDAREVENT in the first row of data (Row 2 in this example). This will bring up a dropdown to add a Google Calendar Credential. If you have already added one, feel free to use it.

Click the "Add Credential" button, then click the "Connect to Google Calendar" button in the new window. A new tab or window will open in your browser allowing you to authenticate with Google.

Connect to Google Calendar

Once you've finished the Google authentication, you will be brought back to Lido, and you can click the "Update" button to automatically place your new Google Calendar credential into the ADDCALENDAREVENT formula.

Get your Google Calendar ID

The next argument we need to add is the Google Calendar ID.

1. Go to Google Calendar and find the calendar you want to use with Lido on the left sidebar. Mouse over the name of the calendar, click the three dots that appear, then click "Settings and sharing".

2. Then, on the navigation for the settings page on the left-hand side, click "Integrate calendar" (you may need to click the name of your calendar again to make it appear).

Your browser should scroll down the page to that section. The first item you should see is the Calendar ID. Copy this text, then go back to Lido. Select one of the cells you were editing before (it may have an error, this is fine!) and hit Enter to edit it.

3. Finally, paste the Calendar ID between double-quotes for the second argument. Your Calendar is now connected to the ADDCALENDAREVENT formula.

Get the Google Calendar id

Add Meeting Title, Description and Start / End times

Next, we can enter the parameters for the event. The title can be anything you want. For this example, we want "Meeting with <customer's name>". We can use the concatenation operator & to assemble this title. For the third argument (title), we'll use:

"Meeting with " & A2.

This will combine the "Meeting with " part with the values in the first column, which are our customer names.

For the description, we'll just use the "meeting agenda" column, so we can enter C2.

We have a "meeting time" column that we can use for the start_date argument (D2), but how do we get the ending time?

We'll assume for this example that all the meetings should last an hour. Then we can just add an hour to the start_date, and use that for the end_date argument: D2 + TIME(1, 0, 0).

Finishing off ADDCALENDAREVENT formula

The last required argument is the status_cell. This is where ADDCALENDAREVENT will output a "success" message if it runs successfully, or output error information otherwise. This is going to be a Linked Column to the right of the ADDCALENDAREVENT Computed Column, which we'll set up shortly.

For now, just use the cell directly to the right of the one we're editing, which in this case is F2.

Then hit Enter, and your ADDCALENDAREVENT Computed Column is finished!

For this example, our formula looks like this: 

```=ADDCALENDAREVENT(<calendar-credential>, "ben@trylido.com", "Meeting with "&A2, C2, D2, D2+TIME(1, 1, 0), F2)```

Add the "status" Linked Column

Our formula will work as is, but it'll be better to have the status cell as part of a Linked Column.

To create the Linked Column for the status values:

1. Hoever your mouse over the right of the customers table, click the Add Column icon, and select "Add Linked Column".

2. Select a unique ID column to use for the Linked Column (in this case "email") and click "Save". The Linked Column will keep track of the status values and make sure they always stay with their associated rows, even if some get re-ordered or removed.

You can also rename the Computed and Linked columns if you'd like. Just edit the header cells and change the name in the window that appears.

Adding the status Linked Column and renaming columns

Your ADDCALENDAREVENT Action is ready!

To try it out, right-click one of the ADDCALENDAREVENT cells and click "Run action".

You should see a "success" message appear in the Status column and a new event appear in your Google Calendar.

If something went wrong, you'll see an error message appear in the status column instead.

Adding attendees

We can also optionally invite other people to our event.

In our example meeting use case, we can use this to automatically send them an email about the event (and if we also use Google Meet, they can even join the meeting from the email). Suppose we also want to add our head of sales to every meeting, just in case they want to meet with the customer as well.

All we have to do is add the attendees argument to ADDCALENDAREVENT. We already have the customer emails, and we'll assume that the email for the head of sales is sales@lido.app.

Then for the second argument, we can use the ARRAY function to join the two emails together into a single argument:

ARRAY(B2, "sales@lido.app").

We can add as many attendees as we want by just adding more emails to the ARRAY function. So the final formula will look like: 

=ADDCALENDAREVENT("calendar-credential", "ben@trylido.com", "Meeting with "&A2, C2, D2, D2+TIME(1, 1, 0), F2, ARRAY(B2,"sales@lido.app"))

Run the "Add Cal Event" column to create many events at once

If you have many events you want to create at once, choose "Run Column Now" from the Add Cal Event column menu. For every cell where there is an ADDCALENDAREVENT formula displaying, it will run the formula.

Automate the "Add Cal Event" column

To set it up so that a Calendar event is automatically created for each new Forms submission, we want to automate the running of the "Add Cal Event" column on a regular schedule.

Do the following:

  1. Wrap the ADDCALENDAREVENT in an IF statement to make sure a calendar event hasn't already been created. We do this by checking if "success" is already in the "status" column.

    IF(F2 <> "success",ADDCALENDAREVENT(...etc

    You'll notice for the test event you have already created, the value FALSE will be there instead of displaying the action formula. Otherwise, it would create a new event for every row each time the column is run.
  2. Choose, "Run Column on a Schedule" from the column menu choosing an interval that makes sense for your use case.

Automate repetitive tasks with Lido

Save hours on repetitive and tedious work. Lido is a new spreadsheet that connects your spreadsheets, forms, PDFs, and email inbox.

Trigger
Action
Select trigger
When a cell value in Google Sheets changes
Check Google Sheets for today's date
When a new row is added to Google Sheets
On new Google Form submission
Send me a daily reminder
On new Typeform submission
When a cell value in database changes
Check database for today's date
When a new row is added in database
When a new HubSpot customer is created
Select action
ADDCALENDAREVENT
Creates a one- or multiple-day calendar event with optional attendees
ADDHUBSPOT
Adds an object to Hubspot
ADDSLACKCHANNEL
Create a Slack channel, and optionally add a topic or members
CALLURL
Makes any HTTP request
CREATEGOOGLEDOC
Replaces [@column_name] values in a Google Doc with the corresponding table row's values
CREATEPDF
Replaces [@column_name] values in a Google Doc with the corresponding table row's values, then export it as a PDF
FETCH
Makes any HTTP request and returns the response
INSERTROWS
Inserts given array below defined values in given worksheet
SENDGMAIL
Sends an email using your Google account
SENDOUTLOOK
Sends an email using your Microsoft Outlook account
SENDSLACK
Sends a Slack message
SENDSMS
Sends an SMS message using your Twilio account
UPDATECELL
Updates cells with given values
UPDATEHUBSPOT
Updates a property of a Hubspot object
Trigger is required
Action is required
Get started