Simple triggers and
installable triggers let Apps Script
run a function automatically if a certain event occurs. When a trigger fires,
Apps Script passes the function an event object as an argument, typically called
e
. The event object contains information about the context that caused the
trigger to fire. For example, the sample code below shows a simple onEdit(e)
trigger for a Google Sheets script that uses the event object to determine which
cell was edited.
function onEdit(e){
// Set a comment on the edited cell to indicate when it was changed.
var range = e.range;
range.setNote('Last modified: ' + new Date());
}
This page details the fields in the event object for different types of triggers.
Google Sheets events
The various Google Sheets-specific triggers let scripts respond to a user's actions in a spreadsheet.
Open(simple and installable) |
|
---|---|
authMode |
A value from the LIMITED |
source |
A Spreadsheet |
triggerUid |
ID of trigger that produced this event (installable triggers only). 4034124084959907503 |
user |
A amin@example.com |
Change(installable) |
|
---|---|
authMode |
A value from the FULL |
changeType |
The type of change ( INSERT_ROW |
source |
A
Spreadsheet |
triggerUid |
ID of trigger that produced this event. 4034124084959907503 |
user |
A amin@example.com |
Edit(simple and installable) |
|
---|---|
authMode |
A value from the LIMITED |
oldValue |
Cell value prior to the edit, if any. Only available if the edited range is a single cell. Will be undefined if the cell had no previous content. 1234 |
range |
A Range |
source |
A Spreadsheet |
triggerUid |
ID of trigger that produced this event (installable triggers only). 4034124084959907503 |
user |
A amin@example.com |
value |
New cell value after the edit. Only available if the edited range is a single cell. 10 |
Form submit(installable) |
|
---|---|
authMode |
A value from the FULL |
namedValues |
An object containing the question names and values from the form submission. { 'First Name': ['Jane'], 'Timestamp': ['6/7/2015 20:54:13'], 'Last Name': ['Doe'] } |
range |
A Range |
triggerUid |
ID of trigger that produced this event. 4034124084959907503 |
values |
Array with values in the same order as they appear in the spreadsheet. ['2015/05/04 15:00', 'amin@example.com', 'Bob', '27', 'Bill', '28', 'Susan', '25'] |
Google Docs events
Triggers allow Google Docs to respond when a user opens a document.
Open(simple and installable) |
|
---|---|
authMode |
A value from the LIMITED |
source |
A Document |
triggerUid |
ID of trigger that produced this event (installable triggers only). 4034124084959907503 |
user |
A amin@example.com |
Google Slides events
Triggers allow Google Slides to respond when a user opens a presentation.
Open(simple) |
|
---|---|
authMode |
A value from the LIMITED |
source |
A Presentation |
user |
A amin@example.com |
Google Forms events
The Google Forms-specific triggers let scripts respond when a user edits a form or submits a response.
Open* (simple and installable) |
|
---|---|
authMode |
A value from the LIMITED |
source |
A Form |
triggerUid |
ID of trigger that produced this event (installable triggers only). 4034124084959907503 |
user |
A amin@example.com |
* This event does not occur when a user opens a form to respond, but rather when an editor opens the form to modify it.
Form submit(installable) |
|
---|---|
authMode |
A value from the FULL |
response |
A FormResponse |
source |
A Form |
triggerUid |
ID of trigger that produced this event. 4034124084959907503 |
Google Calendar events
Calendar triggers fire when a user's calendar events are updated (created, edited, or deleted).
These triggers do not tell you which event changed or how it changed. Instead, they indicate that your code needs to do an incremental sync operation to pick up recent changes to the calendar. For a full description of this procedure, see the Synchronizing resources guide for the Calendar API.
To synchronize with Calendar in Apps Script, perform the following steps:
- Enable the Calendar advanced service for the script project. The built-in Calendar service isn't sufficient for this workflow.
- Determine what calendars should be synchronized. For each such calendar, perform an initial sync operation using the Calendar advanced service's Events.list() method.
- The result of the initial sync returns a
nextSyncToken
for that calendar. Store this token for later use. - When the Apps Script
EventUpdated
trigger fires indicating a calendar event change, perform an incremental sync for the affected calendar using the storednextSyncToken
. This is essentially another Events.list() request, but providing thenextSyncToken
limits the response to only events that have changed since the last sync. - Examine the response of the sync to learn what events were updated and have your code respond appropriately. For example, you can log the change, update a spreadsheet, send email notices, or take other actions.
- Update the
nextSyncToken
you stored for that calendar with the one returned by the incremental sync request. This forces the next sync operation to only return the most current changes.
EventUpdated(installable) |
|
---|---|
authMode |
A value from the
FULL |
calendarId |
The string ID of the calendar where the event update occurred. susan@example.com |
triggerUid |
ID of trigger that produced this event. 4034124084959907503 |
Google Workspace add-on events
The onInstall()
trigger runs
automatically when a user installs an add-on.
Install(simple) |
|
---|---|
authMode |
A value from the FULL |
Google Chat app events
To learn about event objects in Google Chat, see Receive and respond to interactions with your Google Chat app.
Time-driven events
Time-driven triggers (also called clock triggers) let scripts execute at a particular time or on a recurring interval.
Time-driven (installable) | |
---|---|
authMode |
A value from the FULL |
day-of-month |
Between Because this property name contains dashes it must be accessed via
31 |
day-of-week |
Between Because this property name contains dashes it must be accessed via
7 |
hour |
Between 23 |
minute |
Between 59 |
month |
Between 12 |
second |
Between 59 |
timezone |
The time zone. UTC |
triggerUid |
ID of trigger that produced this event. 4034124084959907503 |
week-of-year |
Between Because this property name contains dashes it must be accessed via
52 |
year |
The year. 2015 |