AI-generated Key Takeaways
- 
          TriggerBuilder is a generic builder used for creating script triggers in Apps Script. 
- 
          It provides methods to create trigger builders for specific Google services such as Documents, Forms, Spreadsheets, and Calendar. 
- 
          TriggerBuilder also allows the creation of time-based triggers using the timeBased()method.
- 
          Each method returns a specialized builder for the respective service or time-based triggers. 
- 
          Creating triggers requires appropriate authorization scopes depending on the service being used. 
A generic builder for script triggers.
Methods
| Method | Return type | Brief description | 
|---|---|---|
| for | Document | Creates and returns a Documenttied to the given document. | 
| for | Document | Creates and returns a Documenttied to the document with the given ID. | 
| for | Form | Creates and returns a Formtied to the given form. | 
| for | Form | Creates and returns a Formtied to the form with the given ID. | 
| for | Spreadsheet | Creates and returns a Spreadsheettied to the given spreadsheet. | 
| for | Spreadsheet | Creates and returns a Spreadsheettied to the spreadsheet with the given
ID. | 
| for | Calendar | Returns a builder for building calendar triggers. | 
| time | Clock | Creates and returns a Clockfor building time-based triggers. | 
Detailed documentation
forDocument(document) 
Creates and returns a Document tied to the given document.
ScriptApp .newTrigger('myFunction') .forDocument(DocumentApp.getActiveDocument()) .onOpen() .create();
Parameters
| Name | Type | Description | 
|---|---|---|
| document | Document | the document | 
Return
Document — the new DocumentTriggerBuilder
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
- 
https://www.googleapis.com/auth/documents.currentonly
- 
https://www.googleapis.com/auth/documents
forDocument(key) 
Creates and returns a Document tied to the document with the given ID.
ScriptApp .newTrigger('myFunction') .forDocument('1234567890abcdefghijklmnopqrstuvwxyz') .onOpen() .create();
Parameters
| Name | Type | Description | 
|---|---|---|
| key | String | the ID for the document | 
Return
Document — the new DocumentTriggerBuilder
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
- 
https://www.googleapis.com/auth/documents.currentonly
- 
https://www.googleapis.com/auth/documents
forForm(form) 
Creates and returns a Form tied to the given form.
ScriptApp .newTrigger('myFunction') .forForm(FormApp.getActiveForm()) .onFormSubmit() .create();
Parameters
| Name | Type | Description | 
|---|---|---|
| form | Form | the form | 
Return
Form — the new FormTriggerBuilder
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
- 
https://www.googleapis.com/auth/forms.currentonly
- 
https://www.googleapis.com/auth/forms
forForm(key) 
Creates and returns a Form tied to the form with the given ID.
ScriptApp .newTrigger('myFunction') .forForm('1234567890abcdefghijklmnopqrstuvwxyz') .onFormSubmit() .create();
Parameters
| Name | Type | Description | 
|---|---|---|
| key | String | the ID for the form | 
Return
Form — the new FormTriggerBuilder
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
- 
https://www.googleapis.com/auth/forms.currentonly
- 
https://www.googleapis.com/auth/forms
forSpreadsheet(sheet) 
Creates and returns a Spreadsheet tied to the given spreadsheet.
ScriptApp .newTrigger('myFunction') .forSpreadsheet(SpreadsheetApp.getActive()) .onEdit() .create();
Parameters
| Name | Type | Description | 
|---|---|---|
| sheet | Spreadsheet | the spreadsheet | 
Return
Spreadsheet — the new SpreadsheetTriggerBuilder
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
- 
https://www.googleapis.com/auth/spreadsheets.currentonly
- 
https://www.googleapis.com/auth/spreadsheets
forSpreadsheet(key) 
Creates and returns a Spreadsheet tied to the spreadsheet with the given
ID.
ScriptApp .newTrigger('myFunction') .forSpreadsheet('1234567890abcdefghijklmnopqrstuvwxyz') .onEdit() .create();
Parameters
| Name | Type | Description | 
|---|---|---|
| key | String | the ID for the spreadsheet | 
Return
Spreadsheet — the new SpreadsheetTriggerBuilder
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
- 
https://www.googleapis.com/auth/spreadsheets.currentonly
- 
https://www.googleapis.com/auth/spreadsheets
forUserCalendar(emailId)  
Returns a builder for building calendar triggers.
Parameters
| Name | Type | Description | 
|---|---|---|
| email | String | email ID of the user calendar the trigger monitors. | 
Return
Calendar — The new CalendarTriggerBuilder.
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
- 
https://www.googleapis.com/auth/calendar
- 
https://www.googleapis.com/auth/calendar.readonly
- 
https://www.googleapis.com/auth/calendar.events
- 
https://www.googleapis.com/auth/calendar.events.readonly
- 
https://www.google.com/calendar/feeds
timeBased() 
Creates and returns a Clock for building time-based triggers.
ScriptApp .newTrigger('myFunction').timeBased().atDate(2013, 10, 31).create();
Return
Clock — the new ClockTriggerBuilder
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
- 
https://www.googleapis.com/auth/script.scriptapp