
Teach yourself Apps Script
Learn Apps Script fundamentals with codelabs
Explore a playlist of guided codelab tutorials that teach you the basics of Apps Script with Google Sheets.Try a 5-minute quickstart
After exploring the codelab playlist, try one of our quickstarts to quickly build a working script project. Create menus and custom functions in Google Sheets, manage responses in Google Forms, or create a basic Google Docs add-on or Hangouts Chat bot!Custom functions in Sheets | Manage Forms responses |
Build a Docs add-on | Build a Hangouts Chat bot |
Build add-ons to extend Google Sheets, Docs, Slides, Forms, and Gmail
Desktop add-ons for Docs, Sheets, Slides, and Forms
Apps Script makes it easy to create and publish add-ons in an online store for Google Sheets, Docs, Slides, and Forms. There’s no better way to distribute scripts to large numbers of users, whether you want to ship your code to the whole world or keep it private to the users in your G Suite domain.
Desktop and mobile add-ons for Gmail
You can also build add-ons that extend Gmail on both desktop and mobile. Since you build Gmail add-ons with a card and widget library, you don't need to build separate UIs for desktop and mobile clients.
A living, breathing platform (well, metaphorically)
December 11, 2019
- The Data Studio service has been
extended with the following class and new methods to support different response
types and dynamic statuses:
GetDataResponse
GetSchemaREsponse
SetCredentialsResponse
-
Checkbox.setIsDynamic(isDynamic)
-
CommunityConnector.newGetDataResponse()
-
CommunityConnector.newGetSchemaResponse()
-
CommunityConnector.newSetCredentialsResponse()
-
Config.setIsSteppedConfig(isSteppedConfig)
-
SelectMultiple.setIsDynamic(isDynamic)
-
SelectSingle.setIsDynamic(isDynamic)
-
TextArea.setIsDynamic(isDynamic)
-
TextInput.setIsDynamic(isDynamic)
December 6, 2019
A new Apps Script Fundamentals codelab playlist has been created. This playlist walks new users through basic Apps Script concepts as they build scripts for Google Sheets.
November 6, 2019
- The Spreadsheet service has been extended with the following class and new methods to support using slicers to filter ranges, charts, and pivot tables:
- The Script service has been extended
with the
ScriptApp.getIdentityToken()
method, which returns an identity token for the effective user.
October 28, 2019
You can no longer publish web apps to the Chrome Web Store. The Chrome Web Store
deprecated Chrome apps in 2016 and they are now only available for ChromeOS devices.
This change includes published Apps Script web apps. Previously published web apps are no longer discoverable in the Chrome Web Store. Editor add-ons aren't affected; you can still publish editor add-ons to the Chrome Web Store.
October 23, 2019
- The Slides service class
RgbColor
and the enumerationColorType
have been moved from the Slides service to the Base script service. The functionality of these classes has not changed. Moving these classes to the Base script service enables other services to make use of them in the future. You can now find the documenation for these classes atRgbColor
andColorType
. - Several classes and methods relating to the now shutdown
UiApp service have been removed. Most
of these methods involved interactions between the
Charts service and
UiApp
that were very seldom used. The following is a full list of the removed classes and methods:- Charts service
CategoryFilterBuilder
Control
DashboardPanel
DashboardPanelBuilder
Chart.getId()
Chart.getType()
Charts.newCategoryFilter()
Charts.newDashboardPanel()
Charts.newNumberRangeFilter()
Charts.newStringFilter()
NumberRangeFilterBuilder.build()
NumberRangeFilterBuilder.setDataTable(tableBuilder)
NumberRangeFilterBuilder.setDataTable(table)
NumberRangeFilterBuilder.setFilterColumnIndex(columnIndex)
NumberRangeFilterBuilder.setFilterColumnLabel(columnLabel)
NumberRangeFilterBuilder.setLabel(label)
NumberRangeFilterBuilder.setLabelSeparator(labelSeparator)
NumberRangeFilterBuilder.setLabelStacking(orientation)
StringFilterBuilder.build()
StringFilterBuilder.setDataTable(tableBuilder)
StringFilterBuilder.setDataTable(table)
StringFilterBuilder.setFilterColumnIndex(columnIndex)
StringFilterBuilder.setFilterColumnLabel(columnLabel)
StringFilterBuilder.setLabel(label)
StringFilterBuilder.setLabelSeparator(labelSeparator)
StringFilterBuilder.setLabelStacking(orientation)
- Spreadsheet service
EmbeddedChart.getId()
EmbeddedChart.getType()
EmbeddedChart.setId(id)
- Charts service