To get the latest product updates delivered to you, add the URL of this page to your
feed
reader, or add the feed URL directly: https://developers.google.com/feeds/apps-script-release-notes.xml.
This page contains release notes for features and updates to Apps Script. We recommend that Apps Script developers periodically check this list for any new announcements.
February 20, 2025
As of February 20, 2025, the Rhino runtime is deprecated. Scripts running on Rhino will continue to function until January 31, 2026, after which they will no longer execute. Please migrate your scripts to the V8 runtime before this date. Refer to Migrate scripts to the V8 runtime.
December 09, 2024
Generally available: The getSheetById() method has been added to the Spreadsheet class of the Spreadsheet service. This lets you get a sheet in a spreadsheet using its unique ID.
The getUrl() method for the CellImage, CellImageBuilder, and OverGridImage classes of the Spreadsheet service has been deprecated. An image's source URL isn't available regardless of how the image is inserted into a spreadsheet.
October 02, 2024
Apps Script has rescheduled the shutdown date of the Contacts service to January 31, 2025. Refer to the Apps Script sunset schedule.
The Apps Script Contacts service was deprecated in December 2022. Instead, use the People API advanced service. Refer to Migrate from Contacts service to People API advanced service.
April 30, 2024
The cancelDataRefresh() method has been added to the following classes of the Spreadsheet service:
The cancelDataRefresh() method cancels the data refresh associated with the object it's called on if the refresh is currently running.
The cancelAllLinkedDataSourceObjectRefreshes() method has been added to the DataSource class. This method cancels all currently running refreshes of data source objects linked to the data source this method is called on.
March 05, 2024
(Generally Available): The LinkPreview class has been added to the Apps Script Card service. This class lets you control various aspects of link previews, including the smart chip title, the link preview title, and the link preview card.
February 21, 2024
(Developer Preview): Multiselect menus are now in Developer Preview for Add-ons.
For more information refer to the following:
February 20, 2024
(Developer Preview): Google Chat apps now support Google Apps Script's Card Service. If you've built your Chat app using Apps Script, you can use Card Service to build user interfaces such as card messages and dialogs. For more information, see the Card Service reference documentation.
January 24, 2024
(Generally Available): Google Workspace Add-ons now support third-party resource creation from the @ menu in Google Docs. This feature is gradually rolling out over the next few weeks. To use this feature, see Create third-party resources from the @ menu.
December 13, 2023
(Generally available): The setPersistValues(persistValues) method has been added to the Action class of the Card service. This means that you can now indicate whether form values are determined by the client's values or the server's values after an action response updates a form's card.
December 11, 2023
(Generally Available): You can now call version 3 of the Google Drive API from Apps Script with the advanced Drive service. To learn more, see Advanced Drive service.
November 15, 2023
(Developer Preview): Google Workspace Add-ons now support third-party resource creation from the @ menu in Google Docs. To use this feature, see Create third-party resources from the @ menu.
September 19, 2023
The classic Google Sites service has been deprecated due to the transition from classic Sites to new Sites. There isn't a way to connect to new Sites with Apps Script.
November 03, 2022
Apps Script added a new method to the Utilities class. parseDate(date, timeZone, format) parses a provided string date according to the specification described in the Java Standard Edition SimpleDateFormat class.
September 27, 2022
Apps Script has turned down the legacy integrated development environment (IDE) in favor of the redesigned IDE that launched in December 2020.
Learn more about the IDE updates from the following blog posts:
June 06, 2022
You can now call functions in separate files before they're parsed. Previously, the V8 runtime required a script file to be parsed before any other file could call the functions it defines.
Now, the order of files in the Apps Script editor doesn't matter. This means that you can call a function in a different file to assign a value to a global variable—the function is always defined before it's called. This behavior reflects that of the legacy Rhino runtime.
September 01, 2021
In the HTML Service iframe sandbox, allow-top-navigation, which allows the content to navigate its top-level browsing context, is restricted and not set as an attribute in the sandbox. Instead, the allow-top-navigation-by-user-activation attribute has been added to the sandbox.
If you need to redirect your script, add a link or a button for the user to take action on.
Learn more about HMTL Service restrictions.
September 03, 2020
New classes and methods have been added to support Connected Sheets.
The following new classes have been added to the Spreadsheet service:
DataSourceChartDataSourceColumnDataSourceFormulaDataSourcePivotTableDataSourceRefreshScheduleDataSourceRefreshScheduleFrequencyDataSourceSheetDataSourceSheetFilterDataSourceTableColumnDataSourceTableFilterDateTimeGroupingRulePivotGroupLimitSortSpec
New methods to support Connected Sheets have been added to the following classes in the Spreadsheet service:
BigQueryDataSourceSpecBuilderBigQueryDataSourceSpecDataExecutionStatusDataSourceTableDataSourceEmbeddedChartFilterCriteriaBuilder- `PivotFilter
PivotGroupPivotTablePivotValueRangeSheetSpreadsheetAppSpreadsheet
July 27, 2020
The following Folder class methods have been deprecated:
addFile(File)addFolder(Folder)removeFile(File)removeFolder(Folder)
April 02, 2020
The following has been added to the Spreadsheet service:
- A new
Drawingclass has been added to support drawings. - You can now get your drawings with the
Sheet.getDrawings()method.
The following has been added to the Drive service:
- There's a new
FILE_ORGANIZERvalue in thePermissionenum. If you haveFILE_ORGANIZERpermission on a shared drive, you can edit, trash, and move content within that drive.
February 28, 2020
The following methods have been added to the Spreadsheet service to support the use of theme colors. Many of these methods duplicate the effect of existing color methods, but let you use Color objects instead of strings as parameters and return types:
- The
Bandingclass now has 16 new methods that manipulate color in the banding columns and rows usingColorobjects. - The
BooleanConditionclass now has two new methods that retrieve the color of the condition's background and font asColorobjects. - The
ConditionalFormatRuleBuilderclass now has seven new methods that set color-based format rules usingColorobjects. - The
GradientConditionclass now has three new methods that retrieve condition colors asColorobjects. - The
Rangeclass now has eight new methods that get and set font and background colors usingColorobjects. - The
Sheetclass now has two new methods that get and set tab colors usingColorobjects. - The
Slicerclass now has two new methods that get and set the background color of the slicer usingColorobjects. - The
TextStyleBuilderclass now has aTextStyleBuilder.setForegroundColorObject(color)method that updates the foreground color of the style builder using aColorobject. - The
TextStyleclass now has aTextStyle.getForegroundColorObject()method that gets the foreground color of the style as aColorobject.
November 06, 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:
SlicerSheet.getSlicers()Sheet.insertSlicer(range, anchorRowPos, anchorColPos)Sheet.insertSlicer(range, anchorRowPos, anchorColPos, offsetX, offsetY)
The Script service has been extended with the ScriptApp.getIdentityToken() method, which returns an identity token for the effective user.
April 19, 2019
The Data Studio service has been updated to add a few values to FieldType enum:
HYPERLINKIMAGEIMAGE_LINK
April 05, 2019
- The Spreadsheet service has been extended with the following new classes and methods to support text finding, checkboxes, and other features:
TextFinderRecalculationIntervalSheetTypeDataValidationBuilder.requireCheckbox()DataValidationBuilder.requireCheckbox(checkedValue)DataValidationBuilder.requireCheckbox(checkedValue, uncheckedValue)- A
clearRanges()method has been added to the all the embedded chart type builder classes, such asEmbeddedAreaChartBuilder.clearRanges() EmbeddedChart.getChartId()RangeList.check()RangeList.insertCheckboxes()RangeList.insertCheckboxes(checkedValue)RangeList.insertCheckboxes(checkedValue, uncheckedValue)RangeList.removeCheckboxes()RangeList.uncheck()Range.check()Range.createTextFinder(findText)Range.getDataRegion()Range.getDataRegion(dimension)Range.insertCheckboxes()Range.insertCheckboxes(checkedValue)Range.insertCheckboxes(checkedValue, uncheckedValue)Range.removeCheckboxes()Range.uncheck()Sheet.createTextFinder(findText)Sheet.getType()Spreadsheet.createTextFinder(findText)Spreadsheet.getIterativeCalculationConvergenceThreshold()Spreadsheet.getMaxIterativeCalculationCycles()Spreadsheet.getRecalculationInterval()Spreadsheet.isIterativeCalculationEnabled()Spreadsheet.moveChartToObjectSheet(chart)Spreadsheet.setIterativeCalculationConvergenceThreshold(minThreshold)Spreadsheet.setIterativeCalculationEnabled(isEnabled)Spreadsheet.setMaxIterativeCalculationCycles(maxIterations)Spreadsheet.setRecalculationInterval(recalculationInterval)
- The Data Studio service has been extended with the following new classes and methods that support configuring BigQuery connectors:
- The
Notificationobjects in the Card service no longer have a type that you must set. Calls to the now removedNotification.setType(type)method result in a no-op.
October 30, 2018
The Spreadsheet service has been extended with the following new classes and methods:
OverGridImageSheet.getImages()Sheet.isColumnHiddenByUser(columnPosition)Sheet.isRowHiddenByFilter(rowPosition)Sheet.isRowHiddenByUser(rowPosition)Spreadsheet.getImages()Spreadsheet.isColumnHiddenByUser(columnPosition)Spreadsheet.isRowHiddenByFilter(rowPosition)Spreadsheet.isRowHiddenByUser(rowPosition)
The following methods have been added to existing services:
- console service
- DataStudio service
- Gmail service
August 20, 2018
The Utilities service has been extended with the following methods and classes:
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.
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 19, 2018
- The
UrlFetchservice now has afetchAllmethod that makes multiple fetch requests. - The Utilities service now has methods to compress and decompress Blob objects using
gzip.
September 26, 2017
Added Apps Script support for the Google Slides service. You can now use Apps Script to create and edit presentations and their contents; you can also build add-ons for Google Slides.
April 26, 2017
- Quizzes in Google Forms is now accessible from the Apps Script Forms service.
- Added support for Combo and Histogram charts. Like other charts, these can be embedded in a Google Sheet.
- Added ability to
getColor()andsetColor()for Calendar Events. Events have their own color set:EventColor.
December 01, 2016
Introduced the Early Access program for new G Suite Business features. These features include App Maker and Stackdriver Logging.
October 19, 2016
Added X-Frame-Option header support to HtmlService, allowing iframes to render Apps Script HTML and web apps.
July 28, 2016
Added support for Android add-ons. Now you can make Google Docs and Sheets add-ons that work on Android.
July 06, 2016
NATIVE sandbox mode is now shut down. All scripts default to IFRAME mode, regardless of which mode, if any, is specified. Scripts that relied on NATIVE mode features may need to be migrated.
March 25, 2016
Deprecated the add(widget) method in the DashboardPanel class because it takes a UiApp.Widget argument, and UiApp was deprecated in 2014.
February 29, 2016
The Spreadsheet API adds new methods for
getTabColor()andsetTabColor(color).The Spreadsheet API adds a new
NamedRangetype and the following related methods:NamedRange.getName()gets the name of the named rangeNamedRange.setName(name)sets the name of the named rangeNamedRange.getRange()gets the underlying range associated with the named rangeNamedRange.setRange(range)sets the underlying range associated with the named rangeNamedRange.remove()deletes the named rangeSpreadsheet.getNamedRanges()gets an array of all the named ranges in the spreadsheetSheet.getNamedRanges()gets an array of all the named ranges in the sheetProtection.setNamedRange(range)associates an existing protected range with an existing named range
The Utilities API includes a new
getUuid()method that generates a unique identifier.
December 10, 2015
In the HTML service, EMULATED sandbox mode was sunset. Any scripts that explicitly request EMULATED mode now default to IFRAME mode.
November 12, 2015
In the HTML service, all new scripts default to IFRAME sandbox mode unless NATIVE mode is explicitly specified.
March 19, 2015
- Added the ability to publish add-ons for domain-wide installation. This lets an admin of a Google Apps domain install and authorize a Docs, Sheets, or Forms add-on for all users in the domain if the add-on is published to the Google Apps Marketplace. If the developer has already published a Google Apps Marketplace app that is closely related to their add-on, they can also choose to bundle the add-on with the Marketplace app so that admins install both the app and the add-on together.
- Added the ability to change the Google Developers Console project that a script uses for authorization. This feature is most commonly used to bundle an add-on with a Google Apps Marketplace app, as above.
December 11, 2014
- Deprecated both the UI service and the
DocsListservice. As announced in the blog post, theDocsListservice will be turned off on April 20, 2015, and the UI service will be turned off on June 30, 2015. To create user interfaces, use the HTML service instead. To replace theDocsListservice, use theDriveservice instead. - Removed the Domain service, as announced earlier in the year.
October 23, 2014
Add-ons are now available in Google Forms. As with add-ons for Docs and Sheets, Forms add-ons are in developer preview, so you must apply to publish them.
July 17, 2014
Added the value ON_CHANGE to the ScriptApp.EventType enum so that Google Sheets change events can be detected correctly.
May 29, 2014
Added the Document service methods getTextAlignment and setTextAlignment as well as the enum TextAlignment, to support NORMAL, SUPERSCRIPT, and SUBSCRIPT text alignment in Google Docs.
May 15, 2014
Deprecated both ScriptDB and the Domain service. As announced in the blog post, the services will remain available for the next six months but will be turned off on November 20, 2014. To replace ScriptDB, see the migration guide and the improved guide to connecting to external databases through JDBC. To replace the Domain service, see the Admin SDK Directory and Admin SDK Reports advanced services.
April 24, 2014
In the new version of Google Sheets, the Undo command can now revert changes made by a script. This was already true in Docs, Forms, and the older version of Sheets.
April 17, 2014
The Document method setSelection, the Sheet method activate, and the Spreadsheet methods setActiveRange and setActiveSelection no longer have any effect if they are called from an onOpen or onEdit trigger.
April 10, 2014
- Issue 3788: In the new version of Sheets, custom functions now calculate if they are passed an error value as an argument. This matches the behavior in the older version of Sheets.
- Issue 3539: In the new version of Sheets, the
RangemethodssetValueandsetValuesnow automatically detect when a value should be set as a formula. This matches the behavior in the older version of Sheets.
March 27, 2014
- Issue 3691: In the new version of Google Sheets, scripts can now run for 6 minutes instead of 5 minutes.
- Issue 3236: Google Picker, a "file-open" dialog for information stored in Google servers, including files in Google Drive, is now supported in HTML service.
January 27, 2014
Renamed several classes and methods in DocumentApp. The old names are deprecated but will continue to work. You do not need to update your code.
SearchResultandSelectedElementare nowRangeElement.Selectionis nowRange.Selection.getSelectedElements()is nowRange.getRangeElements().
January 21, 2014
The new SpreadsheetApp method Spreadsheet.getUi() allows scripts to access the spreadsheet's user-interface environment in order to add features like menus, dialogs, and sidebars. This method is consistent with the getUi() methods in DocumentApp and FormApp, but only works in the new version of Google Sheets. The older version of Google Sheets continues to use the existing methods documented in the guides to dialogs and sidebars and menus.
December 16, 2013
Issue 3461: A yellow warning bar should no longer appear on Apps Script gadgets that are embedded in Google Sites.
November 18, 2013
The Apps Script methods Utilities.jsonParse() and Utilities.jsonStringify() have been deprecated in favor of the now-standard JavaScript methods JSON.parse() and JSON.stringify(), which now appear in autocomplete.
November 11, 2013
Issue 3189: A rare issue in which LockService failed to acquire a lock should no longer occur.
November 04, 2013
If a version of a library has been deleted by the library owner, scripts can no longer use that version.
September 09, 2013
Deprecated the DocumentApp methods getFootnotes(), getLinkUrl(), setLinkUrl(url), and isAtDocumentEnd() in the classes FooterSection, FootnoteSection, and HeaderSection, as well as the methods getNextSibling() and getPreviousSibling() in the classes FooterSection and HeaderSection. These methods were not useful.
September 03, 2013
- Added the
DriveAppmethodsDriveApp.getFoldersByName(name)andDriveApp.searchFolders(params), which return aFolderIteratorwith the requested results. - Added the
DriveAppmethodsFile.getViewers(),File.getEditors(),Folder.getViewers(), andFolder.getEditors(), which return an array ofUserswith view or edit access.
August 05, 2013
- Issue 2916: HTML files inserted into a new Apps Script project using the Google Drive SDK are no longer created with the
server_jsfiletype. - Issue 2880: Special characters (such as apostrophes) no longer need to be escaped twice when passed to
DriveApp.getFilesByName(). - Issue 2780:
DriveAppnow throws a more appropriate error message if Google Drive apps are prohibited within the user's domain.
July 29, 2013
Issue 2947: Newlines are now supported in Ui.alert() and Ui.prompt() dialogs.
July 22, 2013
Added DriveApp and FormApp to the services tracked on the Apps Script Dashboard.
July 09, 2013
Deprecated the old Xml service, SoapService, and support for the JavaScript feature E4X.
June 25, 2013
- Any script that is container-bound to a Google Doc can now access the active user's
CursorandSelectionby callingDocument.getCursor()andDocument.getSelection(), respectively. - The Publish > Deploy as web app dialog now includes an option to save a version of the script, if a version has not previously been saved. Subsequent versions of the script must still be saved through the File > Manage versions dialog.
- Scripts now always require authorization to use the methods
Session.getEffectiveUser()orSession.getUser(). Existing scripts that use those methods and were upgraded to the new authorization experience require reauthorization but will not prompt for authorization automatically. To reauthorize the script, follow these instructions. UrlFetchrequests made by scripts that run on a time-based trigger now include anIf-Modified-SinceHTTP header so that Apps Script can use a cached copy of the page if one is available and the page has not changed.
June 17, 2013
- Issue 2626: The execution transcript now correctly reports the execution time for methods that are called repeatedly.
- Issue 2559: A sporadic issue in which
Spreadsheet.getSheetByName()returned null for a valid sheet name no longer occurs. - Issue 1965: Emails forwarded using
GmailMessage.forward()now preserve inline images. - Issue 1414:
Range.copyTo()now adds additional rows as necessary, if the destination sheet does not have enough rows to accommodate the range.
June 11, 2013
- Issue 2823: Timestamps for the start and end of script execution, including total runtime, now appear in the execution transcript (View > Execution transcript) instead of the log.
- Issue 2807: A rare issue where a script could not be upgraded to the new authorization flow no longer occurs.
- Issue 2791: Calling
Trigger.getTriggerSource()for a Form-based trigger no longer throws an exception. - Issue 2734:
HtmlServicescripts that call long-running server-side functions no longer repeat the function call multiple times.
June 03, 2013
- Issue 2819:
Folder.createFile(name, content, mimeType)now creates the file in the folder on which the method was executed. - Issue 2776: Existing deployed web apps now properly authenticate after upgrading a script to use the new authorization experience.
- Issue 2679: The
getAs()method of the File class no longer throws an error when converting .docx, .pptx, or .xlsx files to PDF. - Issue 2643: The timestamps for a script's log messages are now in the script's timezone.
- Issue 2597: The script editor's Find functionality no longer skips the first result.
May 13, 2013
- The script editor is now available within Google Docs and the Google Forms editor, and both Docs and Forms can now be containers for scripts.
- Added Forms Service, which allows scripts to create and modify Google Forms.
- Added Drive Service, which allows scripts to create and modify files and folders in Google Drive. This is a newer version of the existing DocsList Service.
- Added a
getUimethod toDocumentAppandFormApp, which returns a Ui object that allows the script to add features like menus, dialogs, and sidebars to the Docs or Forms editor. - Added the
FormTriggerBuilderclass to allow scripts to respond to Forms events. - Added a
setSandboxModemethod to enable a faster version of theHtmlServicesandbox. - Added a
MimeTypeenum, which provides access toMIME-type declarations without typing the strings explicitly. - Added an option to upgrade to a new authorization flow that requires fewer clicks and automatically creates a Google Developers Console project for every script.
May 02, 2013
Issue 2585: Xml.parse() once again correctly parses well-structured XML and HTML documents.
April 22, 2013
- Issue 2665:
UrlFetchApp.fetch()once again allows URLs that contain spaces. - Issue 2593:
Range.setValue()now behaves correctly in a function called from anonEditspreadsheet trigger. - Issue 941: The event parameter for a
ListBoxhandler function now includes the value of the selected item rather than its name. - Issue 307: The event parameter for a
Treehandler function now includes the ID of the selected item.
April 15, 2013
The following changes were made to simplify the Document service:
- Renamed the
DocumentBodySectionclass toBody. - Renamed
Document.getActiveSection()togetBody(). - Removed methods of the
Bodyclass fromDocumentso they only appear in one location. - Removed
merge()methods for various classes that cannot be merged, such asPageBreakandHorizontalRule. - Removed text-related methods such as
isBold()andisUnderline()from container elements such asTablewhile retaining them on theTextclass. This functionality can now be achieved by callingeditAsText()on the container element, and calling the text-related methods on the returnedTextclass. - Removed methods which allowed appending or inserting
HorizonalRuleelements with specified attributes.
April 08, 2013
- Issue 2548: Triggers created in web apps that allow for anonymous access no longer fail to fire.
- Issue 2488: Charts dashboard components no longer throw serialization errors in certain scenarios.
March 18, 2013
Renamed the action "Publish to Gallery" to "Submit to Gallery", to avoid confusion with publishing a web app.
March 11, 2013
Issue 1917: It is no longer possible to install a script multiple times from the Script Gallery.
February 25, 2013
- Issue 2435: Spreadsheet-bound scripts that use
Browser.inputBox()no longer fail. - Issue 1128: Font colors set using
Range.setFontColor()orRange.setFontColors()now appear correctly when printing the spreadsheet or exporting it as a PDF. - Issue 529:
SpreadsheetApp.getActiveSheet()no longer fails to run inonOpen()triggers for certain spreadsheets.
February 14, 2013
Added the method DocumentApp.openByUrl(), which allows documents to be opened by their URL directly.
February 11, 2013
- Issue 2388: The quota dashboard once again displays the correct number of columns.
- Issue 2344: Scripts that contain
onInstall()functions no longer produce an error when installed from the Script Gallery. - Issue 2250: Dates are now logged in the script's time zone.
- Issue 2021:
UiInstance.setStyleAttribute()now properly sets thebackgroundImageproperty in all supported browsers. - Issue 1811: The debugger can now step into libraries used in development mode.
- Issue 1300: If a script bound to one spreadsheet uses an installable
onEdit()trigger to monitor a separate spreadsheet, the range event parameter passed to the callback function now correctly recognizes the monitored spreadsheet as its parent. - Issue 1226: Client handlers for
ListBoxnow fire properly inUiApp. - Issue 1030: The
setStyleAttribute()method of variousUiAppobjects now properly sets the 'float' attribute in Firefox. - Issue 1014:
setFocus()now works correctly. - Issue 231: Added
show()andhide()methods toPopupPanel.
January 31, 2013
Added the method SpreadsheetApp.openByUrl(), which allows spreadsheets to be opened by their URL directly.
- Issue 2317: Email address validation in
UiAppnow works correctly with uppercase input. - Issue 2306: The GUI Builder dialog shown for File > Open no longer has two "Cancel" buttons.
- Issue 2265: Static maps can now contain many more markers.
- Issue 2203:
CalendarEvent.getGuestList()now returns the event creator in addition to the other guests. - Issue 2137: A
DateBoxcontaining an empty or invalid date will now have a null value when processed in a server handler ordoPost()callback. By default, setting an empty or invalid date will not trigger a value-changed event, but you can call the methodsetFireEventsForInvalid()to override that behavior. - Issue 1795:
TextAreawidgets created using the GUI Builder now default to displaying scrollbars when the text is too long. - Issue 1764:
ClockTriggerBuilder.onWeekDay()now works correctly when used in conjunction witheveryWeeks(). - Issue 1695: GmailLabel.getThreads() now works correctly when the label name contains special characters.
- Issue 1366: The methods getEditors() and getViewers() of the File class now return the full email address for entries that are groups.
- Issue 918: Subsequent calls to Sheet.hideColumns() on different sheets no longer results in an error.
- Issue 53: Rows containing only data-validation rules no longer count towards Sheet.getLastRow().
December 11, 2012
Added extra validation to the datasource URLs used in charts. Custom datasource URLs that rely on non-Google authentication will no longer work.
November 28, 2012
- Fixed an issue where
onFormSubmittrigger's callback range was incorrect if the submit triggered a formula recalculation. - Fixed an issue where
XmlDocumentproperties and functions did not autocomplete when generating an XmlDocument with the Soap service.
November 21, 2012
November 06, 2012
Updated some icons to match icons of other Google Drive applications.
September 28, 2012
Fixed an issue where certain files could not be copied via DocsList.copy().
Fixed an issue where certain files could not be copied via DocsList.copy().
September 07, 2012
Added an isDeleted() method to SitesApp's Page class.
August 30, 2012
Fixed an issue with scrolling in the script editor so that line numbers will be displayed even when horizontally scrolling on long lines.
August 22, 2012
July 26, 2012
- Fixed an error in the Gmail script template from the welcome screen.
- Fixed an issue where saving an object in
ScriptDbwith an empty string key causes errors. - Fixed an issue where scripts were not being copied when a Site was copied.
- Fixed an issue with
DatePicker.setValue.
July 16, 2012
Updated the link to the support page on the Google Apps Script Dashboard.
Updated the link to the support page on the Google Apps Script Dashboard.
May 04, 2012
Launched the Google Apps Script Dashboard so that developers can view service health and quota limits.
April 16, 2012
- Fixed an issue in the Script Editor where the debugger would not terminate after executing the last statement of a script.
- Fixed an issue where an embedded image would not copy properly in a Google Document.
- Fixed an issue where a shared folder would not show up in "Collections shared with me".
April 11, 2012
Fixed an issue where files and collections in Google Docs could not be shared with groups.
April 04, 2012
Modified document collaboration and sharing rules to make them consistent with what is possible in the user interface.
Modified document collaboration and sharing rules to make them consistent with what is possible in the user interface.
March 20, 2012
Fixed an issue where Spreadsheet.insertSheet() failed to properly copy a sheet when given a {template:sheet_obj} parameter.
February 12, 2012
- Added methods to the
Documentclass toaddHeader()andaddFooter(). - Added a
merge()method to theRangeclass.
February 06, 2012
- Added a feature to cancel running scripts, when the script is run from the script editor.
- Added
getEventSeriesById()to Calendar.
January 11, 2012
Fixed an issue with Paragraph.setHeading() where text was not formatted as expected.
December 14, 2011
Fixed an issue with the debugger, where it would close when stepping into a function that is located in a different file.
August 04, 2011
Added support for ScrollPanel to the GUI Builder.
July 25, 2011
Added supports for projects in Apps Script.
July 14, 2011
Fixed an issue where GmailApp.getUserLabelByName() failed for label names that contained spaces.
October 21, 2010
Added integration with Google Sites, so that Apps Script can now be run from within Google Sites. Read more here.
July 12, 2010
- Fixed an issue with the
Contactsservice, where a 'Mismatch: etags' error was thrown when a contact was modified more than once. - Fixed an issue where a popup dialog with the text "Error encountered: An unexpected error occurred" was displayed when the change handler for a
ListBox was called, but no app was returned by the change handler. - Fixed an issue where
ListBox.addItemwasn't working after callinggetElementById. - Fixed an issue with
Utilities.formatDate, where it was previously always formatting the date into GMT.