Class TriggerBuilder

  • 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.

TriggerBuilder

A generic builder for script triggers.

Methods

MethodReturn typeBrief description
forDocument(document) DocumentTriggerBuilder Creates and returns a DocumentTriggerBuilder tied to the given document.
forDocument(key) DocumentTriggerBuilder Creates and returns a DocumentTriggerBuilder tied to the document with the given ID.
forForm(form) FormTriggerBuilder Creates and returns a FormTriggerBuilder tied to the given form.
forForm(key) FormTriggerBuilder Creates and returns a FormTriggerBuilder tied to the form with the given ID.
forSpreadsheet(sheet) SpreadsheetTriggerBuilder Creates and returns a SpreadsheetTriggerBuilder tied to the given spreadsheet.
forSpreadsheet(key) SpreadsheetTriggerBuilder Creates and returns a SpreadsheetTriggerBuilder tied to the spreadsheet with the given ID.
forUserCalendar(emailId) CalendarTriggerBuilder Returns a builder for building calendar triggers.
timeBased() ClockTriggerBuilder Creates and returns a ClockTriggerBuilder for building time-based triggers.

Detailed documentation

forDocument(document)

Creates and returns a DocumentTriggerBuilder tied to the given document.

ScriptApp.newTrigger('myFunction')
.forDocument(DocumentApp.getActiveDocument())
.onOpen()
.create();

Parameters

NameTypeDescription
documentDocument the document

Return

DocumentTriggerBuilder — 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 DocumentTriggerBuilder tied to the document with the given ID.

ScriptApp.newTrigger('myFunction')
.forDocument('1234567890abcdefghijklmnopqrstuvwxyz')
.onOpen()
.create();

Parameters

NameTypeDescription
keyStringthe ID for the document

Return

DocumentTriggerBuilder — 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 FormTriggerBuilder tied to the given form.

ScriptApp.newTrigger('myFunction')
.forForm(FormApp.getActiveForm())
.onFormSubmit()
.create();

Parameters

NameTypeDescription
formForm the form

Return

FormTriggerBuilder — 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 FormTriggerBuilder tied to the form with the given ID.

ScriptApp.newTrigger('myFunction')
.forForm('1234567890abcdefghijklmnopqrstuvwxyz')
.onFormSubmit()
.create();

Parameters

NameTypeDescription
keyStringthe ID for the form

Return

FormTriggerBuilder — 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 SpreadsheetTriggerBuilder tied to the given spreadsheet.

ScriptApp.newTrigger('myFunction')
.forSpreadsheet(SpreadsheetApp.getActive())
.onEdit()
.create();

Parameters

NameTypeDescription
sheetSpreadsheet the spreadsheet

Return

SpreadsheetTriggerBuilder — 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 SpreadsheetTriggerBuilder tied to the spreadsheet with the given ID.

ScriptApp.newTrigger('myFunction')
.forSpreadsheet('1234567890abcdefghijklmnopqrstuvwxyz')
.onEdit()
.create();

Parameters

NameTypeDescription
keyStringthe ID for the spreadsheet

Return

SpreadsheetTriggerBuilder — 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

NameTypeDescription
emailIdStringemail ID of the user calendar the trigger monitors.

Return

CalendarTriggerBuilder — 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 ClockTriggerBuilder for building time-based triggers.

ScriptApp.newTrigger('myFunction').timeBased().atDate(2013,10,31).create();

Return

ClockTriggerBuilder — 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

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2024年12月02日 UTC.