This page lists the major changes in each release of Google Apps Script in 2018. It is intended to help developers identify changes in behavior. For more recent changes, see the current year's release notes.
December 2018
December 13, 2018
- The Slides service has been extended with
the following new classes and methods that support connector lines:
ConnnectionSite
Group.getConnectionSites()
Image.getConnectionSites()
Line.getConnectionSites()
Line.getEndConnection()
Line.getLineCategory()
Line.getStartConnection()
Line.isConnector()
Line.setEndConnection(connectionSite)
Line.setLineCategory(lineCategory)
Line.setStartConnection(connectionSite)
LineCategory.UNSUPPORTED
PageElement.getConnectionSites()
Shape.getConnectionSites()
SheetsChart.getConnectionSites()
Table.getConnectionSites()
Video.getConnectionSites()
WordArt.getConnectionSites()
- The Fusion Tables advanced service has been deprecated and will shutdown fully on December 3rd, 2019.
November 2018
November 14, 2018
- The Card service has been extended with the following new classes and methods that let you to customize the background of text button widgets:
- The Slides service has been extended with
the following new methods that let you control the Z-positioning of page
elements in Slides. Other new methods let you add alt titles and alt
descriptions to page elements. The following methods have been added to the
Group
,Image
,Line
,PageElement
,Shape
,SheetsChart
,Table
,Video
, andWordArt
classes:bringForward()
bringToFront()
sendBackward()
sendToBack()
setDescription(description)
setTitle(title)
- The Spreadsheet service has been
extended with the following new classes and methods that let you add and
search for metadata strings attached to rows, columns, sheets, or
spreadsheets:
DeveloperMetadata
DeveloperMetadataFinder
DeveloperMetadataLocation
DeveloperMetadataLocationType
DeveloperMetadataVisibility
Range.addDeveloperMetadata(key)
Range.addDeveloperMetadata(key, visibility)
Range.addDeveloperMetadata(key, value)
Range.addDeveloperMetadata(key, value, visibility)
Range.createDeveloperMetadataFinder()
Range.getDeveloperMetadata()
Sheet.addDeveloperMetadata(key)
Sheet.addDeveloperMetadata(key, visibility)
Sheet.addDeveloperMetadata(key, value)
Sheet.addDeveloperMetadata(key, value, visibility)
Sheet.createDeveloperMetadataFinder()
Sheet.getDeveloperMetadata()
Spreadsheet.addDeveloperMetadata(key)
Spreadsheet.addDeveloperMetadata(key, visibility)
Spreadsheet.addDeveloperMetadata(key, value)
Spreadsheet.addDeveloperMetadata(key, value, visibility)
Spreadsheet.createDeveloperMetadataFinder()
Spreadsheet.getDeveloperMetadata()
October 2018
October 30, 2018
- The Spreadsheet service has been
extended with the following new classes and methods:
OverGridImage
Sheet.getImages()
Sheet.isColumnHiddenByUser(columnPosition)
Sheet.isRowHiddenByFilter(rowPosition)
Sheet.isRowHiddenByUser(rowPosition)
Spreadsheet.getImages()
Spreadsheet.isColumnHiddenByUser(columnPosition)
Spreadsheet.isRowHiddenByFilter(rowPosition)
Spreadsheet.isRowHiddenByUser(rowPosition)
- The following methods in the Spreadsheet service
now return an
OverGridImage
object instead ofvoid
: - The following methods have been added to existing services:
- console service
- DataStudio service
- Gmail service
October 18, 2018
- The Card service has been extended with the following classes and methods to support Gmail add-on compose actions:
September 2018
September 27, 2018
- The Data Studio service is now available. You can use this service when building a Data Studio Community Connector.
August 2018
August 20, 2018
- The Utilities service has been extended with the following methods and classes:
August 17, 2018
Apps Script add-on documentation has been moved to a new location: G Suite Developer > Add-ons. The Add-on documentation has been moved in an effort to make add-ons more discoverable and improve site navigation.
In the coming months we will continue to expand and revise the Add-ons documentation to create a better developer learning experience.
June 2018
June 19, 2018
- The quota limits
for
UrlFetch
GET
response size andPOST
size have been increased to 50MB / call. The quota on total data received byUrlFetch
per day per user has been removed. - The Forms service now has the following method:
- The Utilities service now has the
following methods:
Utilities.computeDigest(algorithm, value)
, wherevalue
is aByte
arrayUtilities.computeHmacSha256Signature(value, key)
, wherevalue
andkey
areByte
arraysUtilities.computeHmacSignature(algorithm, value, key)
, wherevalue
andkey
areByte
arrays
April 2018
April 23, 2018
- The Spreadsheet service
has been extended with the new
Group
class and theGroupControlTogglePosition
enum. Groups are an association between an interval of contiguous rows or columns that can be expanded or collapsed as a unit. - The Spreadsheet service
has been extended with the following new methods to support Groups:
Range.collapseGroups()
Range.expandGroups()
Range.shiftColumnGroupDepth(delta)
Range.shiftRowGroupDepth(delta)
Sheet.collapseAllColumnGroups()
Sheet.collapseAllRowGroups()
Sheet.expandAllColumnGroups()
Sheet.expandAllRowGroups()
Sheet.expandColumnGroupsUpToDepth(groupDepth)
Sheet.expandRowGroupsUpToDepth(groupDepth)
Sheet.getColumnGroup(columnIndex, groupDepth)
Sheet.getColumnGroupControlPosition()
Sheet.getColumnGroupDepth(columnIndex)
Sheet.getRowGroup(rowIndex, groupDepth)
Sheet.getRowGroupControlPosition()
Sheet.getRowGroupDepth(rowIndex)
Sheet.setColumnGroupControlPosition(position)
Sheet.setRowGroupControlPosition(position)
April 11, 2018
- Macros for Google Sheets are now becoming available for users, and will finish rolling out over then next few weeks. This feature lets you record macros in the Google Sheets UI and use Apps Script to create or edit them.
- The Sheets service has been extended
with a large number of new classes and methods. The addition of these
methods make it possible to reproduce in code nearly any action a Sheets
user can take at a keyboard. The new classes and methods include:
BandingTheme
Banding
BooleanCondition
BooleanCriteria
ConditionalFormatRuleBuilder
ConditionalFormatRule
Dimension
Direction
FilterCriteriaBuilder
FilterCriteria
Filter
GradientCondition
InterpolationType
PivotFilter
PivotGroup
PivotTableSummarizeFunction
PivotTable
PivotTableDisplayType
PivotValue
RangeList
RelativeDate
Selection
TextDirection
TextRotation
TextToColumnsDelimiter
WrapStrategy
EmbeddedChartBuilder.setHiddenDimensionStrategy(strategy)
(also in each of the type-specific chart builder classes)EmbeddedChartBuilder.setNumHeaders(headers)
(also in each of the type-specific chart builder classes)EmbeddedChartBuilder.setMergeStrategy(mergeStrategy)
(also in each of the type-specific chart builder classes)EmbeddedChartBuilder.setTransposeRowsAndColumns(transpose)
(also in each of the type-specific chart builder classes)Range.activateAsCurrentCell()
Range.applyColumnBanding()
Range.applyColumnBanding(bandingTheme)
Range.applyColumnBanding(bandingTheme, showHeader, showFooter)
Range.applyRowBanding()
Range.applyRowBanding(bandingTheme)
Range.applyRowBanding(bandingTheme, showHeader, showFooter)
Range.createFilter()
Range.createPivotTable(sourceData)
Range.deleteCells(shiftDimension)
Range.getBandings()
Range.getNextDataCell(direction)
Range.getTextDirection()
Range.getTextDirections()
Range.getTextRotation()
Range.getTextRotations()
Range.getWrapStrategies()
Range.getWrapStrategy()
Range.insertCells(shiftDimension)
Range.setShowHyperlink(showHyperlink)
Range.setTextDirection(direction)
Range.setTextDirections(directions)
Range.setTextRotation(degrees)
Range.setTextRotation(rotation)
Range.setTextRotations(rotations)
Range.setVerticalText(isVertical)
Range.setWrapStrategies(strategies)
Range.setWrapStrategy(strategy)
Range.setTextToColumns()
Range.setTextToColumns(delimiter)
Range.setTextToColumns(delimiter)
Sheet.autoResizeColumns(startColumns, numColumns)
Sheet.autoResizeRows(startRows, numRows)
Sheet.clearConditionalFormatRules()
Sheet.getActiveRangeList()
Sheet.getBandings()
Sheet.getConditionalFormatRules()
Sheet.getCurrentCell()
Sheet.getFilter()
Sheet.getPivotTables()
Sheet.getRangeList(a1Notations)
Sheet.getSelection()
Sheet.hasHiddenGridlines()
Sheet.isRightToLeft()
Sheet.setActiveRangeList(rangeList)
Sheet.setColumnWidths(startColumn numColumns, width)
Sheet.setConditionalFormatRules(rules)
Sheet.setCurrentCell(cell)
Sheet.setHiddenGridlines(hideGridlines)
Sheet.setRightToLeft(rightToLeft)
Sheet.setRowHeights(startRow, numRows, height)
Spreadsheet.getActiveRangeList()
Spreadsheet.getBandings()
Spreadsheet.getCurrentCell()
Spreadsheet.getRangeList(a1Notations)
Spreadsheet.getSelection()
Spreadsheet.setActiveRangeList(rangeList)
Spreadsheet.setCurrentCell(cell)
- The Charts service has been extended to
suppot
EmbeddedCharts
in Google Sheets with the enumsChartHiddenDimensionStrategy
andChartMergeStrategy
. In addition, the followingChartTypes
have been added:TIMELINE
BUBBLE
CANDLESTICK
GAUGE
GEO
RADAR
ORG
SPARKLINE
STEPPED_AREA
TREEMAP
WATERFALL
March 2018
March 26, 2018
- The Spreadsheet service has been extended with the following new methods:
- The deprecated
enable(restriction)
method of theScriptApp.Service
class has been sunset. - The deprecated
Service.Restriction
enum used with theScriptApp.Service
class has been sunset.
February 2018
February 26, 2018
- Calendar event triggers are now available. You can use these triggers in conjunction with the Calendar advanced service to discover recently changed calendar events via regular sync operations.
February 13, 2018
- The Slides service has been extended with
the following new methods:
Layout.insertGroup(group)
Layout.insertImage(image)
Layout.insertLine(line)
Layout.insertPageElement(pageElement)
Layout.insertShape(shape)
Layout.insertSheetsChart(sheetsChart)
Layout.insertTable(table)
Layout.insertVideo(video)
Layout.insertWordArt(wordArt)
Master.insertGroup(group)
Master.insertImage(image)
Master.insertLine(line)
Master.insertPageElement(pageElement)
Master.insertShape(shape)
Master.insertSheetsChart(sheetsChart)
Master.insertTable(table)
Master.insertVideo(video)
Master.insertWordArt(wordArt)
Page.insertGroup(group)
Page.insertImage(image)
Page.insertLine(line)
Page.insertPageElement(pageElement)
Page.insertShape(shape)
Page.insertSheetsChart(sheetsChart)
Page.insertTable(table)
Page.insertVideo(video)
Page.insertWordArt(wordArt)
Presentation.appendSlide(slide)
Presentation.insertSlide(insertionIndex, slide)
Slide.insertGroup(group)
Slide.insertImage(image)
Slide.insertLine(line)
Slide.insertPageElement(pageElement)
Slide.insertShape(shape)
Slide.insertSheetsChart(sheetsChart)
Slide.insertTable(table)
Slide.insertVideo(video)
Slide.insertWordArt(wordArt)
TextRange.appendRange(textRange)
TextRange.appendRange(textRange, matchSourceFormatting)
TextRange.insertRange(startOffset, textRange)
TextRange.insertRange(startOffset, textRange, matchSourceFormatting)
- The Spreadsheet service has been extended with the following new enum class and method:
CopyPasteType
, an enum class describing paste types.Range.copyTo(destination, copyPasteType, transposed)
January 2018
January 19, 2018
- The UrlFetch service now
has a
fetchAll
method that makes multiple fetch requests. - The Utilites service now has
methods to compress
and decompress
Blob objects using
gzip
.
January 11, 2018
- The Apps Script dashboard is now available. You can use it to see, search, and monitor all your script projects.
- The Apps Script API is now available. This API includes and extends the original Apps Script Execution API. You can use the Apps Script API in an application to do any of the following:
- The open-source
clasp
tool is now available. It lets you manage and develop Apps Script projects locally from the command line instead of the Apps Script editor.