To get the latest product updates delivered to you, add the URL of this page to your
[feed
reader](https://wikipedia.org/wiki/Comparison_of_feed_aggregators), or add the feed URL directly: `https://developers.google.com/feeds/workspace-release-notes.xml`.

## November 04, 2026

**Chat API** v1 Feature **Developer Preview:** Google Chat apps can now stream messages incrementally
using the
[`spaces.streamMessages`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.streamMessages.md.txt)
resource in the Google Chat API. Message streaming lets your Google Chat app
display live progress indicators, intermediate reasoning or tool-execution
steps, inline citations, and incremental text responses before committing a
finalized message.

Streaming supports the following methods on the `spaces.streamMessages`
resource:

- [`create`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.streamMessages/create.md.txt): Starts a new stream message in a threaded space.
- [`appendStreamMessageContent`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.streamMessages/appendStreamMessageContent.md.txt): Appends text chunks, steps, inline citations, and updates progress text.
- [`patch`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.streamMessages/patch.md.txt): Replaces streamed content chunks or updates progress text in place.
- [`commit`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.streamMessages/commit.md.txt): Finalizes the stream into a permanent `Message` resource and attaches cards, accessory widgets, or footer sources.
- [`delete`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.streamMessages/delete.md.txt): Discards an active stream without saving a message in the space.

Users can also stop an active stream in Google Chat, which sends a
`SYSTEM_COMMAND` interaction event containing `cancelStream` metadata to your
Google Chat app.

This feature is available as part of the [Google Workspace Developer Preview
Program](https://developers.google.com/workspace/preview). For more information,
see [Stream messages using the Google Chat
API](https://developers.google.com/workspace/chat/stream-messages).

## November 03, 2026

**Chat API** v1 Feature **Generally Available:** You can now add citations and footer sources to Google
Chat text messages.

You can provide sources in two ways:

- **Inline citations**: Interactive cards that appear when users hold the pointer over specific parts of your message text.
- **Footer sources**: A list of sources displayed at the bottom of the message as footer links.

Citations are supported when the message's `markupSyntax` is set to
`MARKUP_SYNTAX_MARKDOWN` and when messages are created asynchronously using the
Google Chat API.

For more information, see [Add citations to a text
message](https://developers.google.com/workspace/chat/format-messages#messages-citations).
**Google Calendar API** v3 Feature **Generally Available:** You can now read and update a Google Workspace user's
working hours on their primary calendar using the new `workingHours` property on
the `Calendars` resource.

To learn more, see the [`Calendars` resource
documentation](https://developers.google.com/workspace/calendar/api/v3/reference/calendars).

## October 30, 2026

**Chat API** v1 Feature **Developer Preview:** You can now configure your Google Chat app to organize
1:1 direct messages with users into separate, thread-based conversation
sessions by turning on **Enable Agentic features** on the Google Chat API
**Configuration** page in the Google Cloud console. Using the Google Chat API,
your app can also retrieve session details with
[`spaces.threads.get`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.threads/get.md.txt),
update session titles and icons with
[`spaces.threads.patch`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.threads/patch.md.txt),
and list sessions in a 1:1 direct message space with
[`spaces.threads.list`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.threads/list.md.txt).

For more information, see [Organize conversations into
sessions](https://developers.google.com/workspace/chat/sessions).

## October 29, 2026

**Chat API** v1 Feature **Generally Available:** Subscriptions to all Google Chat events in a Google
Workspace organization, known as customer-level subscriptions, are now
generally available.

Using customer-level subscriptions, Google Chat apps can monitor space and user
events across an entire Google Workspace organization without the app being a
member of every space.

Customer-level subscriptions support the following authorization scopes, which
require service account configuration and administrator approval:

- `https://www.googleapis.com/auth/chat.app.all.spaces.readonly`: To see space metadata.
- `https://www.googleapis.com/auth/chat.app.all.memberships.readonly`: To see all space memberships.
- `https://www.googleapis.com/auth/chat.app.all.messages.readonly`: To see all messages and reactions.
- `https://www.googleapis.com/auth/chat.app.all.users.readstate.readonly`: To see read states of all users.

To learn more, see
[Subscribe to all Google Chat events in a Workspace organization](https://developers.google.com/workspace/events/guides/create-subscription.md.txt#customer-subscription)
and
[Customer subscription limitations and delivery behaviors](https://developers.google.com/workspace/events/guides/events-chat.md.txt#customer-limitations).
**Google Workspace Events API** v1 Feature **Generally Available:** Subscriptions to all Google Chat events in a Google
Workspace organization, known as customer-level subscriptions, are now
generally available.

Using customer-level subscriptions, Google Chat apps can monitor space and user
events across an entire Google Workspace organization without the app being a
member of every space.

Customer-level subscriptions support the following authorization scopes, which
require service account configuration and administrator approval:

- `https://www.googleapis.com/auth/chat.app.all.spaces.readonly`: To see space metadata.
- `https://www.googleapis.com/auth/chat.app.all.memberships.readonly`: To see all space memberships.
- `https://www.googleapis.com/auth/chat.app.all.messages.readonly`: To see all messages and reactions.
- `https://www.googleapis.com/auth/chat.app.all.users.readstate.readonly`: To see read states of all users.

To learn more, see
[Subscribe to all Google Chat events in a Workspace organization](https://developers.google.com/workspace/events/guides/create-subscription.md.txt#customer-subscription)
and
[Customer subscription limitations and delivery behaviors](https://developers.google.com/workspace/events/guides/events-chat.md.txt#customer-limitations).

## October 28, 2026

**Google Meet** Deprecated **Meet Media API**

**Deprecated**: Following our evaluation of the developer preview phase, and
after feedback from the developer community, we have decided to wind down the
Google Meet Media API and permanently turn down its endpoints on January 15,
2027.

Existing [Developer Preview Program (DPP)](https://developers.google.com/workspace/preview.md.txt) participants will retain access to their approved developer credentials and staging environments to transition their workflows until this date. After this date, you will not be able to access the Meet Media API.

This change only affects the Meet Media API. The Meet REST API and Meet Add-ons SDK, both Generally Available (GA), are not impacted and remain fully supported. For developers looking to build intelligent meeting workflows, action item extractors, post-call summaries, and compliance pipelines, we recommend transitioning to the [Meet REST API](https://developers.google.com/workspace/meet/api/guides/overview.md.txt).

## October 23, 2026

**Chat API** v1 Feature **Generally Available:** Chat apps can now create messages containing
[cards](https://developers.google.com/workspace/chat/api/reference/rest/v1/cards)
on behalf of users with [user
authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user).
Additionally, apps can asynchronously update cards in these messages without
requiring user interaction using the
[`replaceCards`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages/replaceCards.md.txt)
method.

For more information, see [Create and update interactive
cards](https://developers.google.com/workspace/chat/create-update-interactive-cards).
Feature **Developer Preview:** You can now programmatically read and update
configurations for Google Chat apps (built as Google Workspace add-ons) using
the `GetChatAppConfig` and `UpdateChatAppConfig` methods on the `chatAppConfig`
resource in the Google Workspace Add-ons API. This feature is available as part
of the [Google Workspace Developer Preview
Program](https://developers.google.com/workspace/preview). For more information,
see [Configure your Chat app using the Google Workspace Add-ons
API](https://developers.google.com/workspace/chat/configure-chat-api#configure-api).
**Google Workspace add-ons** Feature **Developer Preview:** You can now programmatically read and update
configurations for Google Chat apps (built as Google Workspace add-ons) using
the `GetChatAppConfig` and `UpdateChatAppConfig` methods on the `chatAppConfig`
resource in the Google Workspace Add-ons API. This feature is available as part
of the [Google Workspace Developer Preview
Program](https://developers.google.com/workspace/preview). For more information,
see [Configure your Chat app using the Google Workspace Add-ons
API](https://developers.google.com/workspace/chat/configure-chat-api#configure-api).

## October 16, 2026

**Chat API** v1 Feature **Generally Available:** You can now configure an app-level default **Markup
syntax** ---to use standard Markdown syntax or the original Google Chat syntax---on
the Google Chat API **Configuration** page in the Google Cloud console, which
starts to roll out today, with an expected completion in the next few days. You
can also override the app-level default on individual API requests by specifying
the `markupSyntax` field in the
[`Message`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages.md.txt)
resource when creating, updating, or reading Google Chat messages.

For more information, see [Configure the Google Chat
API](https://developers.google.com/workspace/chat/configure-chat-api#configure-console)
and [Format
messages](https://developers.google.com/workspace/chat/format-messages#format-texts).

## October 12, 2026

**Chat API** v1 Announcement OAuth 2.0 clients calling the Google Chat Model Context Protocol (MCP) server
are required to have **Use this client for an AI-powered agent** selected in
**Google Auth Platform** **\>** **Clients**.

Starting November 11, 2026, Google Workspace MCP servers will reject requests
from any app or integration whose OAuth client is not marked as agentic by
selecting **Use this client for an AI-powered agent**. OAuth clients that are
not marked as agentic by November 12, 2026 will remain non-agentic and can't
call Google Workspace MCP servers. To use MCP after this date, you will need to
create a new OAuth client marked as agentic and update your app to use it.

Apps and integrations that are not AI agents, like those that only call Google
Workspace REST APIs, are not affected by this change. If an existing OAuth
client is used for both AI agent and non-agent features, create a separate OAuth
client for the AI agent and mark only that client as agentic. Keep the existing
client for your non-agent features.

The Google Chat MCP server is available as part of the [Developer Preview
Program](https://developers.google.com/workspace/preview). For instructions on
configuring an OAuth 2.0 client for the Google Chat MCP server, see [Set up the
Google Chat MCP
server](https://developers.google.com/workspace/chat/api/guides/configure-mcp-server#configure-mcp-client)
and [Manage OAuth Clients](https://support.google.com/cloud/answer/15549257).
**Gmail API** v1 Announcement OAuth 2.0 clients calling the Gmail Model Context Protocol (MCP) server are
required to have **Use this client for an AI-powered agent** selected in
**Google Auth Platform** **\>** **Clients**.

Starting November 11, 2026, Google Workspace MCP servers will reject requests
from any app or integration whose OAuth client is not marked as agentic by
selecting **Use this client for an AI-powered agent**. OAuth clients that are
not marked as agentic by November 12, 2026 will remain non-agentic and can't
call Google Workspace MCP servers. To use MCP after this date, you will need to
create a new OAuth client marked as agentic and update your app to use it.

Apps and integrations that are not AI agents, like those that only call Google
Workspace REST APIs, are not affected by this change. If an existing OAuth
client is used for both AI agent and non-agent features, create a separate OAuth
client for the AI agent and mark only that client as agentic. Keep the existing
client for your non-agent features.

The Gmail MCP server is available as part of the [Developer Preview
Program](https://developers.google.com/workspace/preview). For instructions on
configuring an OAuth 2.0 client for the Gmail MCP server, see [Set up the Gmail
MCP
server](https://developers.google.com/workspace/gmail/api/guides/configure-mcp-server#configure-mcp-client)
and [Manage OAuth Clients](https://support.google.com/cloud/answer/15549257).
**Google Calendar API** v3 Announcement OAuth 2.0 clients calling the Google Calendar Model Context Protocol (MCP)
server are required to have **Use this client for an AI-powered agent** selected
in **Google Auth Platform** **\>** **Clients**.

Starting November 11, 2026, Google Workspace MCP servers will reject requests
from any app or integration whose OAuth client is not marked as agentic by
selecting **Use this client for an AI-powered agent**. OAuth clients that are
not marked as agentic by November 12, 2026 will remain non-agentic and can't
call Google Workspace MCP servers. To use MCP after this date, you will need to
create a new OAuth client marked as agentic and update your app to use it.

Apps and integrations that are not AI agents, like those that only call Google
Workspace REST APIs, are not affected by this change. If an existing OAuth
client is used for both AI agent and non-agent features, create a separate OAuth
client for the AI agent and mark only that client as agentic. Keep the existing
client for your non-agent features.

The Google Calendar MCP server is available as part of the [Developer Preview
Program](https://developers.google.com/workspace/preview). For instructions on
configuring an OAuth 2.0 client for the Google Calendar MCP server, see [Set up
the Google Calendar MCP
server](https://developers.google.com/workspace/calendar/api/guides/configure-mcp-server#configure-mcp-client)
and [Manage OAuth Clients](https://support.google.com/cloud/answer/15549257).
**Google Docs API** v1 Announcement OAuth 2.0 clients calling the Google Docs Model Context Protocol (MCP) server
are required to have **Use this client for an AI-powered agent** selected in
**Google Auth Platform** **\>** **Clients**.

Starting November 11, 2026, Google Workspace MCP servers will reject requests
from any app or integration whose OAuth client is not marked as agentic by
selecting **Use this client for an AI-powered agent**. OAuth clients that are
not marked as agentic by November 12, 2026 will remain non-agentic and can't
call Google Workspace MCP servers. To use MCP after this date, you will need to
create a new OAuth client marked as agentic and update your app to use it.

Apps and integrations that are not AI agents, like those that only call Google
Workspace REST APIs, are not affected by this change. If an existing OAuth
client is used for both AI agent and non-agent features, create a separate OAuth
client for the AI agent and mark only that client as agentic. Keep the existing
client for your non-agent features.

The Google Docs MCP server is available as part of the [Developer Preview
Program](https://developers.google.com/workspace/preview). For instructions on
configuring an OAuth 2.0 client for the Google Docs MCP server, see [Set up the
Google Docs MCP
server](https://developers.google.com/workspace/docs/api/guides/configure-mcp-server#configure-mcp-client)
and [Manage OAuth Clients](https://support.google.com/cloud/answer/15549257).
**Google Drive API** v3 Announcement OAuth 2.0 clients calling the Google Drive Model Context Protocol (MCP) server
are required to have **Use this client for an AI-powered agent** selected in
**Google Auth Platform** **\>** **Clients**.

Starting November 11, 2026, Google Workspace MCP servers will reject requests
from any app or integration whose OAuth client is not marked as agentic by
selecting **Use this client for an AI-powered agent**. OAuth clients that are
not marked as agentic by November 12, 2026 will remain non-agentic and can't
call Google Workspace MCP servers. To use MCP after this date, you will need to
create a new OAuth client marked as agentic and update your app to use it.

Apps and integrations that are not AI agents, like those that only call Google
Workspace REST APIs, are not affected by this change. If an existing OAuth
client is used for both AI agent and non-agent features, create a separate OAuth
client for the AI agent and mark only that client as agentic. Keep the existing
client for your non-agent features.

The Google Drive MCP server is available as part of the [Developer Preview
Program](https://developers.google.com/workspace/preview). For instructions on
configuring an OAuth 2.0 client for the Google Drive MCP server, see [Set up the
Google Drive MCP
server](https://developers.google.com/workspace/drive/api/guides/configure-mcp-server#configure-mcp-client)
and [Manage OAuth Clients](https://support.google.com/cloud/answer/15549257).
**Google Sheets API** v4 Announcement OAuth 2.0 clients calling the Google Sheets Model Context Protocol (MCP) server
are required to have **Use this client for an AI-powered agent** selected in
**Google Auth Platform** **\>** **Clients**.

Starting November 11, 2026, Google Workspace MCP servers will reject requests
from any app or integration whose OAuth client is not marked as agentic by
selecting **Use this client for an AI-powered agent**. OAuth clients that are
not marked as agentic by November 12, 2026 will remain non-agentic and can't
call Google Workspace MCP servers. To use MCP after this date, you will need to
create a new OAuth client marked as agentic and update your app to use it.

Apps and integrations that are not AI agents, like those that only call Google
Workspace REST APIs, are not affected by this change. If an existing OAuth
client is used for both AI agent and non-agent features, create a separate OAuth
client for the AI agent and mark only that client as agentic. Keep the existing
client for your non-agent features.

The Google Sheets MCP server is available as part of the [Developer Preview
Program](https://developers.google.com/workspace/preview). For instructions on
configuring an OAuth 2.0 client for the Google Sheets MCP server, see [Set up
the Google Sheets MCP
server](https://developers.google.com/workspace/sheets/api/guides/configure-mcp-server#configure-mcp-client)
and [Manage OAuth Clients](https://support.google.com/cloud/answer/15549257).
**Google Slides API** v1 Announcement OAuth 2.0 clients calling the Google Slides Model Context Protocol (MCP) server
are required to have **Use this client for an AI-powered agent** selected in
**Google Auth Platform** **\>** **Clients**.

Starting November 11, 2026, Google Workspace MCP servers will reject requests
from any app or integration whose OAuth client is not marked as agentic by
selecting **Use this client for an AI-powered agent**. OAuth clients that are
not marked as agentic by November 12, 2026 will remain non-agentic and can't
call Google Workspace MCP servers. To use MCP after this date, you will need to
create a new OAuth client marked as agentic and update your app to use it.

Apps and integrations that are not AI agents, like those that only call Google
Workspace REST APIs, are not affected by this change. If an existing OAuth
client is used for both AI agent and non-agent features, create a separate OAuth
client for the AI agent and mark only that client as agentic. Keep the existing
client for your non-agent features.

The Google Slides MCP server is available as part of the [Developer Preview
Program](https://developers.google.com/workspace/preview). For instructions on
configuring an OAuth 2.0 client for the Google Slides MCP server, see [Set up
the Google Slides MCP
server](https://developers.google.com/workspace/slides/api/guides/configure-mcp-server#configure-mcp-client)
and [Manage OAuth Clients](https://support.google.com/cloud/answer/15549257).

## October 01, 2026

**Google Docs API** v1 Feature **[Developer Preview](https://developers.google.com/workspace/preview.md.txt)**: The
Google Docs Model Context Protocol (MCP) server now supports reading and
managing document comments:

- Include comments when reading a document by setting the optional `commentsIncluded` field on the [`read_doc`](https://developers.google.com/workspace/docs/api/reference/mcp/tools_list/read_doc.md.txt) tool.
- Create, reply to, resolve or reopen, update, and delete comments and replies using the [`update_doc`](https://developers.google.com/workspace/docs/api/reference/mcp/tools_list/update_doc.md.txt) tool with the `insertComment`, `addCommentReply`, `updateCommentPost`, `deleteComment`, and `deleteCommentReply` operations.

To learn more, see [Configure the Docs MCP
server](https://developers.google.com/workspace/docs/api/guides/configure-mcp-server)
and the [Docs MCP tool
reference](https://developers.google.com/workspace/docs/api/reference/mcp).
Feature **[Developer Preview](https://developers.google.com/workspace/preview.md.txt)**: The
Google Docs Model Context Protocol (MCP) server and its reference documentation
include the following updates:

- Added the optional `writeControl` (`WriteControl` with `writeMode`, `requiredRevisionId`, and `targetRevisionId`) field to `UpdateDocRequest` and `UpdateDocResponse` in [`update_doc`](https://developers.google.com/workspace/docs/api/reference/mcp/tools_list/update_doc.md.txt), along with inline request schemas for all `documents.batchUpdate` operations (including `acceptSuggestion`, `rejectSuggestion`, and `deleteSuggestion`).
- Expanded the Tool Annotations section across tool reference pages with definitions of `readOnlyHint`, `destructiveHint`, `idempotentHint`, and `openWorldHint`.

To learn more, see [Configure the Docs MCP
server](https://developers.google.com/workspace/docs/api/guides/configure-mcp-server)
and the [Docs MCP tool
reference](https://developers.google.com/workspace/docs/api/reference/mcp).
**Google Sheets API** v4 Feature **[Developer Preview](https://developers.google.com/workspace/preview.md.txt)**: The
Google Sheets Model Context Protocol (MCP) server now supports reading and
managing spreadsheet comments:

- Include comments when retrieving a spreadsheet by setting the optional `commentsIncluded` field on the [`get_spreadsheet`](https://developers.google.com/workspace/sheets/api/reference/mcp/tools_list/get_spreadsheet.md.txt) tool.
- Create, reply to, resolve or reopen, update, and delete comments and replies using the [`update_spreadsheet`](https://developers.google.com/workspace/sheets/api/reference/mcp/tools_list/update_spreadsheet.md.txt) tool with the `insertComment`, `addCommentReply`, `updateCommentPost`, `deleteComment`, and `deleteCommentReply` operations.

To learn more, see [Configure the Sheets MCP
server](https://developers.google.com/workspace/sheets/api/guides/configure-mcp-server)
and the [Sheets MCP tool
reference](https://developers.google.com/workspace/sheets/api/reference/mcp).
Feature **[Developer Preview](https://developers.google.com/workspace/preview.md.txt)**: The
Google Sheets Model Context Protocol (MCP) server and its reference
documentation include the following updates:

- Added the optional `fields` (field mask) and `ranges` (A1 or R1C1 notation) parameters to [`get_spreadsheet`](https://developers.google.com/workspace/sheets/api/reference/mcp/tools_list/get_spreadsheet.md.txt).
- Added the optional `writeControl` (`WriteControl` with `requiredRevisionId`) parameter to [`update_spreadsheet`](https://developers.google.com/workspace/sheets/api/reference/mcp/tools_list/update_spreadsheet.md.txt), along with inline request schemas in tool descriptions across the Sheets MCP reference pages.
- Expanded the Tool Annotations section across tool reference pages with definitions of `readOnlyHint`, `destructiveHint`, `idempotentHint`, and `openWorldHint`.

To learn more, see [Configure the Sheets MCP
server](https://developers.google.com/workspace/sheets/api/guides/configure-mcp-server)
and the [Sheets MCP tool
reference](https://developers.google.com/workspace/sheets/api/reference/mcp).
**Google Slides API** v1 Feature **[Developer Preview](https://developers.google.com/workspace/preview.md.txt)**: The
Google Slides Model Context Protocol (MCP) server now supports reading and
managing presentation comments:

- Include comments when reading a presentation or slide page by setting the optional `commentsIncluded` field on the [`read_presentation`](https://developers.google.com/workspace/slides/api/reference/mcp/tools_list/read_presentation.md.txt) and [`read_slide_page`](https://developers.google.com/workspace/slides/api/reference/mcp/tools_list/read_slide_page.md.txt) tools.
- Create, reply to, resolve or reopen, update, and delete comments and replies using the [`update_presentation`](https://developers.google.com/workspace/slides/api/reference/mcp/tools_list/update_presentation.md.txt) tool with the `insertComment`, `addCommentReply`, `updateCommentPost`, `deleteComment`, and `deleteCommentReply` operations.

To learn more, see [Configure the Slides MCP
server](https://developers.google.com/workspace/slides/api/guides/configure-mcp-server)
and the [Slides MCP tool
reference](https://developers.google.com/workspace/slides/api/reference/mcp).
Feature **[Developer Preview](https://developers.google.com/workspace/preview.md.txt)**: The
Google Slides Model Context Protocol (MCP) server and its reference
documentation include the following updates:

- Added the [`read_slide_page`](https://developers.google.com/workspace/slides/api/reference/mcp/tools_list/read_slide_page.md.txt) tool to read a single slide page from a presentation and the [`read_slide_page_thumbnail`](https://developers.google.com/workspace/slides/api/reference/mcp/tools_list/read_slide_page_thumbnail.md.txt) tool to retrieve a thumbnail image of a slide page.
- Added the optional `fields` field mask parameter to [`read_presentation`](https://developers.google.com/workspace/slides/api/reference/mcp/tools_list/read_presentation.md.txt) and updated `ReadPresentationResponse.content` to `object (Struct format)`.
- Added the optional `writeControl` (`WriteControl` with `requiredRevisionId`) parameter and inline request schemas for all `presentations.batchUpdate` operations to [`update_presentation`](https://developers.google.com/workspace/slides/api/reference/mcp/tools_list/update_presentation.md.txt).
- Expanded the Tool Annotations section across tool reference pages with definitions of `readOnlyHint`, `destructiveHint`, `idempotentHint`, and `openWorldHint`.

To learn more, see [Configure the Slides MCP
server](https://developers.google.com/workspace/slides/api/guides/configure-mcp-server)
and the [Slides MCP tool
reference](https://developers.google.com/workspace/slides/api/reference/mcp).

## September 30, 2026

**Chat API** v1 Feature **Generally Available:** Google Workspace Add-ons that extend Google Chat now
support **App Home** , letting you display a custom homepage card in the **Home**
tab of a 1:1 direct message with your Chat app. You can configure an App Home
trigger in the Google Cloud console and return a `RenderActions` object (using
`pushCard` or `updateCard`) from an HTTP endpoint or Apps Script `onAppHome`
callback function.

For more information, see [Configure a homepage for Google
Chat](https://developers.google.com/workspace/add-ons/concepts/homepages#chat-homepages)
and [Receive and respond to user
interactions](https://developers.google.com/workspace/add-ons/chat/build).
**Google Docs API** v1 Feature **Generally Available:** You can now programmatically read, create, and manage
comments and suggestions in Google Docs with the Google Docs API. This includes:

- Reading comment threads and anchors by setting [`commentsViewMode`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents.md.txt#CommentsViewMode) in [`documents.get`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/get.md.txt).
- Creating comment threads and replying to comment or suggestion threads using [`InsertCommentRequest`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request.md.txt#InsertCommentRequest) and [`AddCommentReplyRequest`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request.md.txt#AddCommentReplyRequest).
- Modifying existing comment and reply posts using [`UpdateCommentPostRequest`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request.md.txt#UpdateCommentPostRequest).
- Deleting comments and replies using [`DeleteCommentRequest`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request.md.txt#DeleteCommentRequest) and [`DeleteCommentReplyRequest`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request.md.txt#DeleteCommentReplyRequest).
- Writing edits as suggestions by setting `writeControl.writeMode` to `SUGGEST` in [`documents.batchUpdate`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/batchUpdate.md.txt).
- Accepting, rejecting, or deleting suggestion threads using [`AcceptSuggestionRequest`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request.md.txt#AcceptSuggestionRequest), [`RejectSuggestionRequest`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request.md.txt#RejectSuggestionRequest), and [`DeleteSuggestionRequest`](https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request.md.txt#DeleteSuggestionRequest).

For more information, see [Work with comments and
suggestions](https://developers.google.com/workspace/docs/api/how-tos/suggestions).
**Google Sheets API** v4 Feature **Generally Available:** You can now programmatically read, create, and manage
comments in Google Sheets with the Google Sheets API. This includes:

- Reading comment threads and anchors by setting [`commentsViewMode`](https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets.md.txt#CommentsViewMode) in [`spreadsheets.get`](https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/get.md.txt) or [`spreadsheets.getByDataFilter`](https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/getByDataFilter.md.txt).
- Creating comment threads and replying to comment threads using [`InsertCommentRequest`](https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/request.md.txt#insertcommentrequest) and [`AddCommentReplyRequest`](https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/request.md.txt#addcommentreplyrequest).
- Modifying existing comment and reply posts using [`UpdateCommentPostRequest`](https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/request.md.txt#updatecommentpostrequest).
- Deleting comments and replies using [`DeleteCommentRequest`](https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/request.md.txt#deletecommentrequest) and [`DeleteCommentReplyRequest`](https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/request.md.txt#deletecommentreplyrequest).

For more information, see [Manage
comments](https://developers.google.com/workspace/sheets/api/guides/comments).
**Google Slides API** v1 Feature **Generally Available:** You can now programmatically read, create, and manage
comments in Google Slides with the Google Slides API. This includes:

- Reading comment threads and anchors by setting [`commentsViewMode`](https://developers.google.com/workspace/slides/api/reference/rest/v1/CommentsViewMode.md.txt) in [`presentations.get`](https://developers.google.com/workspace/slides/api/reference/rest/v1/presentations/get.md.txt) or [`presentations.pages.get`](https://developers.google.com/workspace/slides/api/reference/rest/v1/presentations.pages/get.md.txt).
- Creating comment threads and replying to comment threads using [`InsertCommentRequest`](https://developers.google.com/workspace/slides/api/reference/rest/v1/presentations/request.md.txt#insertcommentrequest) and [`AddCommentReplyRequest`](https://developers.google.com/workspace/slides/api/reference/rest/v1/presentations/request.md.txt#addcommentreplyrequest).
- Modifying existing comment and reply posts using [`UpdateCommentPostRequest`](https://developers.google.com/workspace/slides/api/reference/rest/v1/presentations/request.md.txt#updatecommentpostrequest).
- Deleting comments and replies using [`DeleteCommentRequest`](https://developers.google.com/workspace/slides/api/reference/rest/v1/presentations/request.md.txt#deletecommentrequest) and [`DeleteCommentReplyRequest`](https://developers.google.com/workspace/slides/api/reference/rest/v1/presentations/request.md.txt#deletecommentreplyrequest).

For more information, see [Manage
comments](https://developers.google.com/workspace/slides/api/guides/comments).
**Google Workspace add-ons** Feature **Generally Available:** Google Workspace Add-ons that extend Google Chat now
support **App Home** , letting you display a custom homepage card in the **Home**
tab of a 1:1 direct message with your Chat app. You can configure an App Home
trigger in the Google Cloud console and return a `RenderActions` object (using
`pushCard` or `updateCard`) from an HTTP endpoint or Apps Script `onAppHome`
callback function.

For more information, see [Configure a homepage for Google
Chat](https://developers.google.com/workspace/add-ons/concepts/homepages#chat-homepages)
and [Receive and respond to user
interactions](https://developers.google.com/workspace/add-ons/chat/build).

## September 23, 2026

**Chat API** v1 Feature **Generally Available:** You can now configure who can view the list of members
in a Google Chat space using the
`accessSettings.accessPermissionSettings.viewSpaceMembershipSetting` field
and the `permissionSettings.viewSpaceMembership` field on the `Space` resource
in the Google Chat API. These fields let you define which target audiences in
Google Workspace and which space roles can see the member list of a space.
Requests that modify who can view space membership must include both fields in
the `updateMask` and request body.

For more information, see [Make a space discoverable to specific users in a
Google Workspace organization](https://developers.google.com/workspace/chat/space-target-audience#make-space).

## September 21, 2026

**Google Workspace add-ons** Feature **Generally Available** :
[Extending Google Workspace Studio with add-ons](https://developers.google.com/workspace/add-ons/studio.md.txt)
is now generally available.

This release includes the following features and updates:

- **Custom starters (triggers)** : You can now build starters that allow your app or service to notify Google Workspace Studio when an event occurs and initiate workflow executions. In the API and add-on manifest, starters are defined as `workflowTriggers`. To learn more, see [Build a starter](https://developers.google.com/workspace/add-ons/studio/build-a-starter.md.txt).
- **Google Workspace Studio API** : The Google Workspace Studio API is now available, allowing third-party services and webhooks to notify Studio and fire triggers. For details, see the [REST API reference](https://developers.google.com/workspace/add-ons/studio/reference/rest.md.txt) and [RPC API reference](https://developers.google.com/workspace/add-ons/studio/reference/rpc.md.txt).

To learn more, see
[Automate workflows with custom starters and steps, third-party integrations, and webhooks in Workspace Studio](https://workspaceupdates.googleblog.com/2026/09/automate-workflows-with-custom-starters-and-steps-third-party-integrations-and-webhooks-in-Workspace-Studio.html)
on the Google Workspace Updates blog.

## September 18, 2026

**Chat API** v1 Feature **Generally Available:** The Google Chat API endpoints targeting message pins
are now Generally Available (GA) and are no longer restricted to the Developer
Preview Program. Developers can use the Chat API to programmatically pin
messages, unpin messages, and list all pinned messages within a Google Chat
space.

For more details, see [Pin or unpin messages in Google Chat
spaces](https://developers.google.com/workspace/chat/pin-messages) and the REST
reference documentation:

- [`spaces.messagePins.create`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messagePins/create.md.txt)
- [`spaces.messagePins.delete`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messagePins/delete.md.txt)
- [`spaces.messagePins.list`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messagePins/list.md.txt)

## September 15, 2026

**Google Workspace Marketplace API** v1 Feature **Generally Available** : The Google Workspace Marketplace SDK now prompts
developers to sync draft changes when host products are added or removed in a
deployment's manifest. New host products appear in the App Integrations section
of the App Configuration tab with a status of "Unsaved". After saving changes as
a draft, developers can submit the draft for review on the Store Listing tab
before publishing the new host product to their Google Workspace Marketplace
listing. Additionally, the App Configuration tab now displays the published
status (`Unsaved`, `Draft`, `Under review`, or `Published`) for each supported
host product. To learn more, see [Update your app listing with drafts](https://developers.google.com/workspace/marketplace/manage-app-listing.md.txt#draft-app-listing)
and [Identify how your app integrates with Google Workspace applications](https://developers.google.com/workspace/marketplace/enable-configure-sdk.md.txt#choose-ws-apps).

## September 14, 2026

**Google Apps Script** Feature **Generally Available:** Apps Script now supports [data
regions](https://support.google.com/a/answer/14310028) in Google Workspace, adhering to organizational data location policies
configured in the Google Admin console:

- **Data at rest:** Script project files, code definitions, manifest configurations, trigger metadata, and key-value storage (such as Property Service and Cache Service) are stored within the designated geographic region.
- **Data processing:** Script executions, container-bound automations, and associated runtime operations are processed within the selected region.

This feature is available for Google Workspace Enterprise Plus and
Frontline Plus editions (in-region storage and processing), and Education
Standard and Education Plus editions (in-region storage only). Scripts running
on the legacy Rhino runtime are not supported under strict data region
policies; projects must use the [V8
runtime](https://developers.google.com/apps-script/guides/v8-runtime/migration).
For details on covered data and managing non-regionalized services, see [What
data is covered by a data region
policy?](https://support.google.com/a/answer/14313033) and [Set up advanced
settings for data regions](https://support.google.com/a/answer/14316863).

## September 11, 2026

**Google Meet** Feature **Meet API**

**Generally Available** : The [`spaces.members`](https://developers.google.com/workspace/meet/api/reference/rest/v2/spaces.members.md.txt)
resource is now generally available. You can use the Meet API to manage meeting
space members and assign co-host roles before or during a meeting.

The following methods are available on the `spaces.members` resource:

- [`create`](https://developers.google.com/workspace/meet/api/reference/rest/v2/spaces.members/create.md.txt): Adds a member to a meeting space.
- [`delete`](https://developers.google.com/workspace/meet/api/reference/rest/v2/spaces.members/delete.md.txt): Removes a member from a meeting space.
- [`get`](https://developers.google.com/workspace/meet/api/reference/rest/v2/spaces.members/get.md.txt): Retrieves details about a member.
- [`list`](https://developers.google.com/workspace/meet/api/reference/rest/v2/spaces.members/list.md.txt): Lists members in a meeting space.
- [`patch`](https://developers.google.com/workspace/meet/api/reference/rest/v2/spaces.members/patch.md.txt): Updates a member's role.
- [`batchUpdate`](https://developers.google.com/workspace/meet/api/reference/rest/v2/spaces.members/batchUpdate.md.txt): Updates multiple members' roles in a single request.

For details, see [Manage meeting space
members](https://developers.google.com/workspace/meet/api/guides/meeting-space-members).

## September 02, 2026

**Google Drive API** v3 Feature **Generally Available** : The
[`copyComments`](https://developers.google.com/workspace/drive/api/reference/rest/v3/files/copy.md.txt#body.QUERY_PARAMETERS.copy_comments)
query parameter on the
[`files.copy`](https://developers.google.com/workspace/drive/api/reference/rest/v3/files/copy.md.txt)
method is now generally available.

This parameter allows you to copy open comments and suggestions when copying a
Google Docs, Sheets, or Slides file. For more information, see [Copy
comments](https://developers.google.com/workspace/drive/api/guides/create-file#copy-comments).

## August 31, 2026

**Google Slides API** v1 Feature **[Developer Preview](https://developers.google.com/workspace/preview.md.txt)**: The
Google Slides API now supports comments, letting you programmatically read,
create, reply to, update, and delete comments in presentations.

To get started, see the [Manage
comments](https://developers.google.com/workspace/slides/api/guides/comments)
guide.

## August 28, 2026

**Chat API** v1 Feature **Developer Preview:** The Google Chat Model Context Protocol (MCP) server now supports three new tools: `mark_as_read`, `mark_as_unread`, and `list_memberships`. These tools enable AI agents to update the read state of a space or thread and list memberships on the user's behalf. This feature is available as part of the [Developer Preview Program](https://developers.google.com/workspace/preview.md.txt).

To get started with the new tools, see the [Set up the Chat MCP server](https://developers.google.com/workspace/chat/api/guides/configure-mcp-server.md.txt) guide or view the full list of tools in the [Chat MCP tool reference](https://developers.google.com/workspace/chat/api/reference/mcp.md.txt).

## August 26, 2026

**Chat API** v1 Feature **Developer Preview:** You can now add citations and footer sources to Google Chat text messages. This feature is available as part of the [Developer Preview Program](https://developers.google.com/workspace/preview.md.txt).

You can provide sources in two ways:

- **Inline citations**: Interactive cards that appear when users hold the pointer over specific parts of your message text.
- **Footer sources**: A list of sources displayed at the bottom of the message as footer links.

Citations are supported when the message's `markupSyntax` is set to `MARKUP_SYNTAX_MARKDOWN` and when messages are created asynchronously using the Google Chat API.

For more information, see [Add citations to a text message](https://developers.google.com/workspace/chat/format-messages.md.txt#messages-citations).

## August 19, 2026

**Chat API** v1 Feature **Generally Available:** You can now configure and respond to **message actions** in Google Chat. Message actions let users invoke your Chat app from the message context menu. This feature is available for both [Google Chat apps](https://developers.google.com/workspace/chat/commands.md.txt#respond-message-action) and [Google Workspace Add-ons that extend Google Chat](https://developers.google.com/workspace/add-ons/chat/commands#respond-message-action).
**Google Workspace add-ons** Feature **Generally Available:** You can now configure and respond to **message actions** in Google Chat. Message actions let users invoke your Chat app from the message context menu. This feature is available for both [Google Chat apps](https://developers.google.com/workspace/chat/commands.md.txt#respond-message-action) and [Google Workspace Add-ons that extend Google Chat](https://developers.google.com/workspace/add-ons/chat/commands#respond-message-action).

## August 07, 2026

**Chat API** v1 Feature **Generally Available:** You can now format Google Chat messages using standard
Markdown syntax. By specifying the `markupSyntax` field as
`MARKUP_SYNTAX_MARKDOWN` when creating a message using the Chat API, the body
text is parsed using standard Markdown formatting.

For more information, see [Format your messages](https://developers.google.com/workspace/chat/format-messages.md.txt).

## August 04, 2026

**Chat API** v1 Feature **Generally Available:** You can now use the [`spaces.search`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search.md.txt)
method of the Chat API to manage and search for spaces that the calling user is
a member of without administrator privileges.

For more information, see [Search for
spaces](https://developers.google.com/workspace/chat/search-spaces).

## August 03, 2026

**Google Apps Script** Feature **Gemini Beta**: You can now use the Gemini side panel in the Apps Script editor to generate, modify, and debug code, and ask questions. Gemini uses context from your active script project and attached container (if available) to provide relevant Apps Script code and explanation.

> [!WARNING]
> **Gemini Beta program:** This feature is available only to customers enrolled in the [Gemini Beta program](https://knowledge.workspace.google.com/admin/generative-ai/workspace-with-gemini/turn-access-to-google-workspace-with-gemini-beta-on-or-off).

To learn more, see [Use the Gemini side panel in the Apps Script editor](https://developers.google.com/apps-script/guides/gemini.md.txt).

## July 30, 2026

**Chat API** v1 Feature **Generally Available:** You can now use the search method on the Message
Resource of the Chat API
([REST](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages/search.md.txt),
[RPC](https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1.md.txt#google.chat.v1.ChatService.SearchMessages))
to search for messages that the authenticated user has access to.

For more information, see
[Search messages](https://developers.google.com/workspace/chat/search-messages.md.txt).

## July 23, 2026

**Google Sheets API** v4 Feature **Developer Preview**: You can now programmatically create and manage comments
in Google Sheets with the Google Sheets API. This includes:

- Creating comment threads and replying to comment threads using the
  [`InsertCommentRequest`](https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/request.md.txt#insertcommentrequest)
  and
  [`AddCommentReplyRequest`](https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/request.md.txt#addcommentreplyrequest).

- Modifying existing comment and reply posts using
  [`UpdateCommentPostRequest`](https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/request.md.txt#updatecommentpostrequest).

- Deleting comments and replies using
  [`DeleteCommentRequest`](https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/request.md.txt#deletecommentrequest)
  and
  [`DeleteCommentReplyRequest`](https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/request.md.txt#deletecommentreplyrequest).

For more information, see [Manage
comments](https://developers.google.com/workspace/sheets/api/guides/comments).

## July 17, 2026

**Chat API** v1 Feature **Generally Available:** You no longer need to manually configure a Google
Chat app in the Google Cloud console for integrations that only use the
Chat API to read data (for example, `GetSpace`, `ListMessages`) on behalf
of a user using OAuth. For read-only actions, you only need to enable the
API and create an OAuth client.

For more information, see
[Configure the Google Chat API](https://developers.google.com/workspace/chat/configure-chat-api.md.txt).

## July 15, 2026

**Google Drive API** v3 Feature **Generally Available** : The [`fileContentChangeBehavior`](https://developers.google.com/workspace/drive/api/reference/rest/v3/approvals.md.txt#filecontentchangebehavior)
field on the
[`approvals`](https://developers.google.com/workspace/drive/api/reference/rest/v3/approvals.md.txt)
resource is now generally available.

This field allows you to determine the behavior of an approval when the file
content is changed while the approval status is `IN_PROGRESS`. You can set this
field through the
[`start`](https://developers.google.com/workspace/drive/api/reference/rest/v3/approvals.md.txt#start)
method on the `approvals` resource.
**Google Workspace Events API** v1beta Feature **Developer Preview:** Subscriptions to all Google Chat events in a Google Workspace organization (customer-level subscriptions) are now available as part of the [Developer Preview Program](https://developers.google.com/workspace/preview.md.txt).

Using customer-level subscriptions, Google Chat apps can monitor space and user events across an entire Google Workspace organization without the app being a member of every space.

Customer-level subscriptions support the following new authorization scopes (requiring service account configuration and administrator approval):

- `https://www.googleapis.com/auth/chat.app.all.spaces.readonly`: To see space metadata.
- `https://www.googleapis.com/auth/chat.app.all.memberships.readonly`: To see all space memberships.
- `https://www.googleapis.com/auth/chat.app.all.messages.readonly`: To see all messages and reactions.
- `https://www.googleapis.com/auth/chat.app.all.users.readstate.readonly`: To see read states of all users.

To learn more, see [Subscribe to all Google Chat events in a Workspace organization](https://developers.google.com/workspace/events/guides/create-subscription.md.txt#customer-subscription) and [Customer subscription limitations and delivery behaviors](https://developers.google.com/workspace/events/guides/events-chat.md.txt#customer-limitations).

## July 14, 2026

**Google Calendar API** v3 Feature **Generally Available:** You can now filter calendar list entries to show only calendars belonging to your organization using the new `showOwnOrganizationOnly` parameter in the `calendarList.list` endpoint.

To learn more, see the [`calendarList.list` documentation](https://developers.google.com/workspace/calendar/api/v3/reference/calendarList/list.md.txt).

## July 13, 2026

**Chat API** v1 Feature **Generally Available**: Subscriptions to user read state updates in Google Chat are now generally available.

You can use the Google Workspace Events API to subscribe to user read state updates in Google Chat. The following event types are supported:

- `google.workspace.chat.spaceReadState.v1.updated`: A user's space read state is updated.
- `google.workspace.chat.threadReadState.v1.updated`: A user's thread read state is updated.
- `google.workspace.chat.spaceReadState.v1.batchUpdated`: Multiple space read states are updated for the subscribed user.
- `google.workspace.chat.threadReadState.v1.batchUpdated`: Multiple thread read states are updated for the subscribed user.

This feature requires the `https://www.googleapis.com/auth/chat.users.readstate` or `https://www.googleapis.com/auth/chat.users.readstate.readonly` authorization scope.

To learn more, see [Subscribe to Google Chat events](https://developers.google.com/workspace/events/guides/events-chat.md.txt).
**Google Docs API** v1 Feature **[Developer Preview](https://developers.google.com/workspace/preview.md.txt)** : The [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server for Google Docs is now available in developer preview. MCP is an open protocol that enables seamless integration between AI applications and your documents. By configuring the Docs MCP server, you enable AI agents to securely interact with your documents and take actions, such as reading document content or updating text.

To get started with the Docs MCP server, see the following documentation:

- [Set up the Docs MCP server](https://developers.google.com/workspace/docs/api/guides/configure-mcp-server.md.txt)
- [Docs MCP tool reference](https://developers.google.com/workspace/docs/api/reference/mcp.md.txt)

To find more available MCP servers, see [Model Context Protocol (MCP) servers in Google Workspace](https://developers.google.com/workspace/guides/configure-mcp-servers.md.txt).
**Google Sheets API** v4 Feature **[Developer Preview](https://developers.google.com/workspace/preview.md.txt)** : The [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server for Google Sheets is now available in developer preview. MCP is an open protocol that enables seamless integration between AI applications and your spreadsheets. By configuring the Sheets MCP server, you enable AI agents to securely interact with your spreadsheets and take actions, such as reading cell values or updating formulas.

To get started with the Sheets MCP server, see the following documentation:

- [Set up the Sheets MCP server](https://developers.google.com/workspace/sheets/api/guides/configure-mcp-server.md.txt)
- [Sheets MCP tool reference](https://developers.google.com/workspace/sheets/api/reference/mcp.md.txt)

To find more available MCP servers, see [Model Context Protocol (MCP) servers in Google Workspace](https://developers.google.com/workspace/guides/configure-mcp-servers.md.txt).
**Google Slides API** v1 Feature **[Developer Preview](https://developers.google.com/workspace/preview.md.txt)** : The [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server for Google Slides is now available in developer preview. MCP is an open protocol that enables seamless integration between AI applications and your presentations. By configuring the Slides MCP server, you enable AI agents to securely interact with your presentations and take actions, such as reading slide content or updating layouts.

To get started with the Slides MCP server, see the following documentation:

- [Set up the Slides MCP server](https://developers.google.com/workspace/slides/api/guides/configure-mcp-server.md.txt)
- [Slides MCP tool reference](https://developers.google.com/workspace/slides/api/reference/mcp.md.txt)

To find more available MCP servers, see [Model Context Protocol (MCP) servers in Google Workspace](https://developers.google.com/workspace/guides/configure-mcp-servers.md.txt).
**Google Workspace Events API** v1 Feature **Generally Available**: Subscriptions to user read state updates in Google Chat are now generally available.

You can use the Google Workspace Events API to subscribe to user read state updates in Google Chat. The following event types are supported:

- `google.workspace.chat.spaceReadState.v1.updated`: A user's space read state is updated.
- `google.workspace.chat.threadReadState.v1.updated`: A user's thread read state is updated.
- `google.workspace.chat.spaceReadState.v1.batchUpdated`: Multiple space read states are updated for the subscribed user.
- `google.workspace.chat.threadReadState.v1.batchUpdated`: Multiple thread read states are updated for the subscribed user.

This feature requires the `https://www.googleapis.com/auth/chat.users.readstate` or `https://www.googleapis.com/auth/chat.users.readstate.readonly` authorization scope.

To learn more, see [Subscribe to Google Chat events](https://developers.google.com/workspace/events/guides/events-chat.md.txt).

## July 09, 2026

**Chat API** v1 Feature **Generally Available** : You can now configure separate, granular access
permissions for discovering and joining a space in the [Google Chat
API](https://developers.google.com/workspace/chat/api/reference). To specify who
can discover or join a space, include the
[`AccessSettings`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.md.txt#accesssettings)
object in the
[`spaces`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.md.txt)
resource, and use the
[`accessPermissionSettings`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.md.txt#accesspermissionsettings)
field to specify granular permissions.

For more information, see the [Target audience for the Spaces
resource](https://developers.google.com/workspace/chat/space-target-audience).

Learn more in this Google Workspace Updates blog post: [New discoverable space
setting in Google
Chat](https://workspaceupdates.googleblog.com/2026/06/discoverable-space-setting-chat.html).

## July 07, 2026

**Chat API** v1 Feature **Generally Available:** You can now use the Google Chat API to read and update a user's [availability in Google Chat](https://support.google.com/chat/answer/9093489). The following methods are supported on the [`users.availability`](https://developers.google.com/workspace/chat/api/reference/rest/v1/users.availability.md.txt) resource:

- [`get`](https://developers.google.com/workspace/chat/api/reference/rest/v1/users.availability/get.md.txt): Gets a user's availability, including their presence and custom status.
- [`patch`](https://developers.google.com/workspace/chat/api/reference/rest/v1/users.availability/patch.md.txt): Updates a user's custom status (with optional emoji and expiration time).
- [`markAsActive`](https://developers.google.com/workspace/chat/api/reference/rest/v1/users.availability/markAsActive.md.txt): Sets a user's presence state to active.
- [`markAsAway`](https://developers.google.com/workspace/chat/api/reference/rest/v1/users.availability/markAsAway.md.txt): Sets a user's presence state to away.
- [`markAsDoNotDisturb`](https://developers.google.com/workspace/chat/api/reference/rest/v1/users.availability/markAsDoNotDisturb.md.txt): Sets a user's presence state to do not disturb.

Additionally, Google Chat apps can subscribe to user availability updates using the Google Workspace Events API. The `google.workspace.chat.availability.v1.updated` event type is supported.

For more information, see [Manage user availability for Chat apps](https://developers.google.com/workspace/chat/manage-user-availability.md.txt).
**Google Calendar API** v3 Feature **Generally available:** We are introducing a new calendar access level: `writerWithoutPrivateAccess`. This new level permits read and write access to events that aren't private on a calendar, and shows private events as busy blocks. Users with this role cannot modify or see details for private events.

For more details, see the [ACL resource documentation](https://developers.google.com/workspace/calendar/api/v3/reference/acl.md.txt).
Change To ensure consistent visibility across recurring events, changing the visibility of a single instance in the Google Calendar API can affect all instances of the series:

- **More restrictive changes propagate:** If you change the visibility of one instance of a recurring event to a more restrictive setting (for example, from `public` to `private`), the change is propagated to all instances of the recurring event.
- **Less restrictive changes are ignored:** If you attempt to change the visibility of one instance of a recurring event to a less restrictive setting (for example, from `private` to `public`), the change is ignored and the visibility remains unchanged. To make a recurring event less restrictive, you must update the parent recurring event.

For more information, see [Share calendars and events](https://developers.google.com/workspace/calendar/api/concepts/sharing.md.txt) and the [`events` resource reference](https://developers.google.com/workspace/calendar/api/v3/reference/events.md.txt).
Feature **Generally Available:** The Google Calendar API now provides full support for custom labels and colors, allowing users to categorize events with a flexible palette beyond the previously fixed set of colors.

You can now list and modify labels on a calendar using the [`labelProperties`](https://developers.google.com/workspace/calendar/api/v3/reference/calendars.md.txt#labelProperties) on the `Calendars` resource.

Then, you can assign a label to an event by setting the ID of the label to [`eventLabelId`](https://developers.google.com/workspace/calendar/api/v3/reference/events.md.txt#eventLabelId) on the `Events` resource.

Note that, in order to enable the labels feature, you must set the `eventLabelVersion` request parameter to `1` on [`import`](https://developers.google.com/workspace/calendar/api/v3/reference/events/import.md.txt#eventLabelVersion), [`insert`](https://developers.google.com/workspace/calendar/api/v3/reference/events/insert.md.txt#eventLabelVersion), [`patch`](https://developers.google.com/workspace/calendar/api/v3/reference/events/patch.md.txt#eventLabelVersion) and [`update`](https://developers.google.com/workspace/calendar/api/v3/reference/events/update.md.txt#eventLabelVersion) operations on Events resources.

To learn more, see the [Manage custom labels and colors guide](https://developers.google.com/workspace/calendar/api/guides/labels.md.txt).
**Google Docs API** v1 Feature **Developer Preview**: You can now programmatically create and manage comments and suggestions in Google Docs with the Google Docs API. This includes:

- Creating comment threads and replying to comment or suggestion threads using `InsertCommentRequest` and `AddCommentReplyRequest`.
- Modifying existing reply posts using `UpdateCommentPostRequest`.
- Deleting comments and replies using `DeleteCommentRequest` and `DeleteCommentReplyRequest`.
- Writing edits as suggestions by setting `writeControl.writeMode` to `SUGGEST`.
- Accepting, rejecting, or deleting suggestion threads using `AcceptSuggestionRequest`, `RejectSuggestionRequest`, and `DeleteSuggestionRequest`.

For more information, see [Work with comments and suggestions](https://developers.google.com/workspace/docs/api/how-tos/suggestions.md.txt).

## June 24, 2026

**Gmail API** v1 Feature **Generally Available** : The [Gmail Postmaster Tools API
v2](https://developers.google.com/workspace/gmail/postmaster/reference/rest/v2)
has new features for domain and user management.

You can now create and manage
[`domains`](https://developers.google.com/workspace/gmail/postmaster/reference/rest/v2/domains.md.txt)
using these methods:

- [`domains.create`](https://developers.google.com/workspace/gmail/postmaster/reference/rest/v2/domains/create.md.txt)
- [`domains.delete`](https://developers.google.com/workspace/gmail/postmaster/reference/rest/v2/domains/delete.md.txt)
- [`domains.verify`](https://developers.google.com/workspace/gmail/postmaster/reference/rest/v2/domains/verify.md.txt)
- [`domains.getVerificationToken`](https://developers.google.com/workspace/gmail/postmaster/reference/rest/v2/domains/getVerificationToken.md.txt)

Owners and admins can now also manage [domain
users](https://developers.google.com/workspace/gmail/postmaster/reference/rest/v2/domains.users)
as well as update their permissions using these methods:

- [`domains.users.create`](https://developers.google.com/workspace/gmail/postmaster/reference/rest/v2/domains.users/create.md.txt)
- [`domains.users.delete`](https://developers.google.com/workspace/gmail/postmaster/reference/rest/v2/domains.users/delete.md.txt)
- [`domains.users.get`](https://developers.google.com/workspace/gmail/postmaster/reference/rest/v2/domains.users/get.md.txt)
- [`domains.users.list`](https://developers.google.com/workspace/gmail/postmaster/reference/rest/v2/domains.users/list.md.txt)
- [`domains.users.patch`](https://developers.google.com/workspace/gmail/postmaster/reference/rest/v2/domains.users/patch.md.txt)

Additionally, the
[`domains.getComplianceStatus`](https://developers.google.com/workspace/gmail/postmaster/reference/rest/v2/domains/getComplianceStatus.md.txt)
method now returns the deliverability status verdict.

For more information, see the [Gmail Postmaster Tools
API](https://developers.google.com/workspace/gmail/postmaster).

## June 22, 2026

**Google Apps Script** Announcement **Generally Available:** Apps Script is generally available as a core service in Google Workspace, giving it the enterprise-grade data protection, robust administrative controls, and standard technical support that safeguard other core services.

## June 18, 2026

**Google Calendar API** v3 Feature **Generally Available:** Workspace administrators can now use the Google Calendar API to programmatically transfer the ownership of secondary calendars between users within the same organization.

To learn more, see the [`Calendars.transferOwnership`](https://developers.google.com/workspace/calendar/api/v3/reference/calendars/transferOwnership.md.txt) method documentation.

## June 15, 2026

**Chat API** v1 Feature **Developer Preview:** You can now use the [`search`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search.md.txt) method of the Google Chat API to manage and search for spaces that the calling user is a member of without administrator privileges. This feature is available as part of the [Developer Preview Program](https://developers.google.com/workspace/preview.md.txt).

## June 12, 2026

**Chat API** v1 Feature **Generally Available:** You can now quote messages from other spaces, or quote message replies from different threads in the same space. To do this, set the `quoteType` (REST) or `quote_type` (gRPC) field to `FORWARD` in `QuotedMessageMetadata` when creating a message.

For more information, see [Quote a message](https://developers.google.com/workspace/chat/create-messages.md.txt#quote-a-message).

## June 01, 2026

**Google Calendar API** v3 Announcement **Generally available starting June 29, 2026:** We are introducing a new calendar access level: `writerWithoutPrivateAccess`. This new level permits read and write access to events that aren't private on a calendar, and shows private events as busy blocks. Users with this role cannot modify or see details for private events.

## May 28, 2026

**Chat API** v1 Feature **Developer Preview:** Subscriptions to user read state updates in Google Chat are now available as part of the [Developer Preview Program](https://developers.google.com/workspace/preview.md.txt).

Google Chat apps can now subscribe to user read state updates in Google Chat using the Google Workspace Events API. The following event types are supported:

- `google.workspace.chat.spaceReadState.v1.updated`: A user's space read state is updated.
- `google.workspace.chat.threadReadState.v1.updated`: A user's thread read state is updated.
- `google.workspace.chat.spaceReadState.v1.batchUpdated`: Multiple space read states are updated for the subscribed user.
- `google.workspace.chat.threadReadState.v1.batchUpdated`: Multiple thread read states are updated for the subscribed user.

This feature requires the `https://www.googleapis.com/auth/chat.users.readstate` or `https://www.googleapis.com/auth/chat.users.readstate.readonly` authorization scope.

To learn more, see [Subscribe to Google Chat events](https://developers.google.com/workspace/events/guides/events-chat.md.txt).
**Google Workspace Events API** v1beta Feature **Developer Preview:** Subscriptions to user read state updates in Google Chat are now available as part of the [Developer Preview Program](https://developers.google.com/workspace/preview.md.txt).

The Google Workspace Events API now supports subscriptions to Google Chat user read state updates. The API supports the following types of events:

- `google.workspace.chat.spaceReadState.v1.updated`: A user's space read state is updated.
- `google.workspace.chat.threadReadState.v1.updated`: A user's thread read state is updated.
- `google.workspace.chat.spaceReadState.v1.batchUpdated`: Multiple space read states are updated for the subscribed user.
- `google.workspace.chat.threadReadState.v1.batchUpdated`: Multiple thread read states are updated for the subscribed user.

This feature requires the `https://www.googleapis.com/auth/chat.users.readstate` or `https://www.googleapis.com/auth/chat.users.readstate.readonly` authorization scope.

To learn more, see [Subscribe to Google Chat events](https://developers.google.com/workspace/events/guides/events-chat.md.txt).

## May 21, 2026

**Google Drive API** v3 Feature **[Developer Preview](https://developers.google.com/workspace/preview.md.txt)** : The `copy_file` tool is now available for the Google Drive MCP server. AI agents or client applications can use this tool to copy an existing file in Google Drive, with options to specify a new title and redirect it to a specific parent directory.

To learn more about configuring and using the Drive MCP server, see the following pages:

- [Set up the Drive MCP server](https://developers.google.com/workspace/drive/api/guides/configure-mcp-server.md.txt)
- [Drive MCP tool reference](https://developers.google.com/workspace/drive/api/reference/mcp.md.txt)

## May 18, 2026

**Google Drive API** v3 Announcement **Generally Available**: Subscriptions are now generally available for Google Drive events.

For details, see [Subscribe to Google Drive events](https://developers.google.com/workspace/events/guides/events-drive.md.txt) in the Google Workspace Events API documentation. For information on how to receive Google Drive events from Google Cloud Pub/Sub, see [Work with events from Google Drive](https://developers.google.com/workspace/drive/api/guides/events-overview.md.txt).

## May 13, 2026

**Gmail API** v1 Feature **[Developer Preview](https://developers.google.com/workspace/preview.md.txt):** We're extending the [Gmail Postmaster Tools v2 API](https://developers.google.com/workspace/gmail/postmaster.md.txt) with new features for domain and user management. This update includes the ability to programmatically add, verify, and remove domains. Owners and admins can also add and remove users from domains and update their permissions. Additionally, the `GetDomainComplianceStatus` API now returns the deliverability status verdict. To learn how to use these new features, see the [Postmaster Tools API](https://developers.google.com/workspace/gmail/postmaster.md.txt) documentation.

## May 12, 2026

**Chat API** v1 Feature **Developer Preview** : Available as part of the [Developer Preview
Program](https://developers.google.com/workspace/preview), which grants early
access to certain features.

You can now use the
[`search`](https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1.md.txt#google.chat.v1.ChatService.SearchMessages)
method on the
[`Message`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages.md.txt)
resource to search for messages that the authenticated user has access to.

For details, see [Search
messages](https://developers.google.com/workspace/chat/search-messages).

## May 08, 2026

**Chat API** v1 Feature **Generally Available** : Chat apps using [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app.md.txt) can now send a forced notification when sending a message or send a message silently by setting the [`createMessageNotificationOptions`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages/create.md.txt#body.QUERY_PARAMETERS.create_message_notification_options) field in the `CreateMessage` request. You can use these options to notify users:

- **Forced notifications**: Overrides recipient notification settings and Do Not Disturb (DND) status to ensure the message is delivered as a push notification.
- **Silent messages**: Suppresses push notifications and prevents the message from bolding or bumping the space in the recipient's list.

For more information, see [Send forced notifications or silent messages](https://developers.google.com/workspace/chat/create-messages.md.txt#force-notify-silent).

## May 07, 2026

**Chat API** v1 Feature **Chat MCP**

**Developer Preview** : Available as part of the [Developer Preview Program](https://developers.google.com/workspace/preview.md.txt), which grants early access to certain features.

The Google Chat Model Context Protocol (MCP) server now supports two new tools: `search_messages` and `send_message`. These tools allow AI agents to search for messages across conversations and send messages behalf of the user.

To get started with the new tools, see the [Set up the Chat MCP server](https://developers.google.com/workspace/chat/api/guides/configure-mcp-server.md.txt) guide or view the full list of tools in the [Chat MCP tool reference](https://developers.google.com/workspace/chat/api/reference/mcp.md.txt).

## May 01, 2026

**Gmail API** v1 Announcement **Generally Available**: Updates to Gmail API usage quotas

A new tiering model with updates to API usage quotas will start to roll out. For
more information, see [Google Workspace standardized model for agent tools and
APIs](https://developers.google.com/workspace/tools-safety).
Announcement **Generally Available** : Quota units for `drafts.get`,
`messages.attachments.get`, `messages.get`, `messages.trash`, `threads.get`, and
`threads.trash` have changed.
**Google Calendar API** v3 Announcement **Generally Available**: Updates to Calendar API usage quotas

A new tiering model with updates to API usage quotas will start to roll out. For
more information, see [Google Workspace standardized model for agent tools and
APIs](https://developers.google.com/workspace/tools-safety).
**Google Drive API** v3 Announcement **Generally Available**: Updates to Drive API usage quotas

A new tiering model with updates to API usage quotas will start to roll out. For
more information, see [Google Workspace standardized model for agent tools and
APIs](https://developers.google.com/workspace/tools-safety).
Announcement **Generally Available** : To help align resource usage in the Google Drive API,
usage quotas will change to be measured in quota units instead of the number of
requests. Additionally, Google Workspace users can now only egress 1 TB per day.
For more information, see [Google Drive API usage
limits](https://developers.google.com/workspace/drive/api/guides/limits).

## April 22, 2026

**Chat API** v1 Feature **Developer Preview**
[Developer Preview Program](https://developers.google.com/workspace/preview.md.txt)

The [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server for Google Chat is now available in developer preview. MCP is an open protocol that enables seamless integration between AI applications and your Chat conversations. By configuring the Chat MCP server, you enable AI agents to securely list messages and take actions, such as sending messages in your spaces.

For example, you can ask your AI agent: *"What's the latest update in the 'Project X' space?"*

To get started with the Chat MCP server, see the following documentation:

- [Set up the Chat MCP server](https://developers.google.com/workspace/chat/api/guides/configure-mcp-server.md.txt)
- [Chat MCP tool reference](https://developers.google.com/workspace/chat/api/reference/mcp.md.txt)

To find more available MCP servers, see [Model Context Protocol (MCP) servers in Google Workspace](https://developers.google.com/workspace/guides/configure-mcp-servers.md.txt).
**Gmail API** v1 Feature **[Developer Preview](https://developers.google.com/workspace/preview.md.txt)** : The [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server for Gmail is now available in developer preview. MCP is an open protocol that enables seamless integration between AI applications and Gmail. By configuring the Gmail MCP server, you enable AI agents to securely read your emails and take actions, such as creating drafts and labeling messages.

For example, you can ask your AI agent: *"What did Ariel say in her last email about our marketing plan?"*

To get started with the Gmail MCP server, see the following documentation:

- [Set up the Gmail MCP server](https://developers.google.com/workspace/gmail/api/guides/configure-mcp-server.md.txt)
- [Gmail MCP tool reference](https://developers.google.com/workspace/gmail/api/reference/mcp.md.txt)

To find more available MCP servers, see [Model Context Protocol (MCP) servers in Google Workspace](https://developers.google.com/workspace/guides/configure-mcp-servers.md.txt).
**Google Calendar API** v3 Feature **[Developer Preview](https://developers.google.com/workspace/preview.md.txt)** : The [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server for Google Calendar is now available in developer preview. MCP is an open protocol that enables seamless integration between AI applications and your calendars. By configuring the Calendar MCP server, you enable AI agents to securely read your schedule and take actions, such as creating, updating, or deleting events.

For example, you can ask your AI agent: *"When is my next meeting with Ariel?"*

To get started with the Calendar MCP server, see the following documentation:

- [Set up the Calendar MCP server](https://developers.google.com/workspace/calendar/api/guides/configure-mcp-server.md.txt)
- [Calendar MCP tool reference](https://developers.google.com/workspace/calendar/api/v3/reference/mcp.md.txt)

To find more available MCP servers, see [Model Context Protocol (MCP) servers in Google Workspace](https://developers.google.com/workspace/guides/configure-mcp-servers.md.txt).
**Google Drive API** v3 Feature **[Developer Preview](https://developers.google.com/workspace/preview.md.txt)** : The [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server for Google Drive is now available in developer preview. MCP is an open protocol that enables seamless integration between AI applications and your Drive files. By configuring the Drive MCP server, you enable AI agents to securely search your files and take actions, such as reading content or creating files.

For example, you can ask your AI agent: *"Summarize the file 'Marketing Plan'."*

To get started with the Drive MCP server, see the following documentation:

- [Set up the Drive MCP server](https://developers.google.com/workspace/drive/api/guides/configure-mcp-server.md.txt)
- [Drive MCP tool reference](https://developers.google.com/workspace/drive/api/reference/mcp.md.txt)

To find more available MCP servers, see [Model Context Protocol (MCP) servers in Google Workspace](https://developers.google.com/workspace/guides/configure-mcp-servers.md.txt).

## April 21, 2026

**Google Drive API** v3 Feature **Generally Available** : The Google Drive API now lets you start and manage
approvals on Drive files through the
[`approvals`](https://developers.google.com/workspace/drive/api/reference/rest/v3/approvals.md.txt)
resource. The following API methods have been added:

- [`approvals.start`](https://developers.google.com/workspace/drive/api/reference/rest/v3/approvals/start.md.txt)
- [`approvals.approve`](https://developers.google.com/workspace/drive/api/reference/rest/v3/approvals/approve.md.txt)
- [`approvals.decline`](https://developers.google.com/workspace/drive/api/reference/rest/v3/approvals/decline.md.txt)
- [`approvals.reassign`](https://developers.google.com/workspace/drive/api/reference/rest/v3/approvals/reassign.md.txt)
- [`approvals.cancel`](https://developers.google.com/workspace/drive/api/reference/rest/v3/approvals/cancel.md.txt)
- [`approvals.comment`](https://developers.google.com/workspace/drive/api/reference/rest/v3/approvals/comment.md.txt)

You can still retrieve and list the status of your approvals using either the
[`approvals.get`](https://developers.google.com/workspace/drive/api/reference/rest/v3/approvals/get.md.txt)
or the
[`approvals.list`](https://developers.google.com/workspace/drive/api/reference/rest/v3/approvals/list.md.txt)
method.

For details, see [Manage
approvals](https://developers.google.com/workspace/drive/api/guides/approvals).

## April 16, 2026

**Google Meet** Announcement **Meet API**

**Generally Available** : The [`phoneAccess`](https://developers.google.com/workspace/meet/api/reference/rest/v2/spaces.md.txt#Space.FIELDS.phone_access)
and
[`gatewaySipAccess`](https://developers.google.com/workspace/meet/api/reference/rest/v2/spaces.md.txt#Space.FIELDS.gateway_sip_access)
fields on the
[`spaces`](https://developers.google.com/workspace/meet/api/reference/rest/v2/spaces.md.txt)
resource can now be used to identify and join a meeting space.

For details, see [How Meet identifies a meeting
space](https://developers.google.com/workspace/meet/api/guides/meeting-spaces-overview#identify-meeting-space).

## April 15, 2026

**Chat API** v1 Feature **Generally Available** : Chat apps can find existing group conversations with specific members using the [`FindGroupChats`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/findGroupChats.md.txt) method. For more information, see [Find a group chat](https://developers.google.com/workspace/chat/find-group-chats.md.txt).

## April 10, 2026

**Chat API** v1 Feature **Developer Preview** : You can now configure and respond to **message actions** in Google Chat. Message actions let users invoke your Chat app from the message context menu. This feature is available for both [Google Chat apps](https://developers.google.com/workspace/chat/commands.md.txt#respond-message-action) and [Google Workspace Add-ons that extend Google Chat](https://developers.google.com/workspace/add-ons/chat/commands#respond-message-action) through the [Developer Preview Program](https://developers.google.com/workspace/preview.md.txt).
**Google Workspace add-ons** Feature **Developer Preview** : You can now configure and respond to **message actions** in Google Chat. Message actions let users invoke your Chat app from the message context menu. This feature is available for both [Google Chat apps](https://developers.google.com/workspace/chat/commands.md.txt#respond-message-action) and [Google Workspace Add-ons that extend Google Chat](https://developers.google.com/workspace/add-ons/chat/commands#respond-message-action) through the [Developer Preview Program](https://developers.google.com/workspace/preview.md.txt).

## April 02, 2026

**Google Meet** Announcement **Meet API**

**Generally Available** : The [`get`](https://developers.google.com/workspace/meet/api/reference/rest/v2/conferenceRecords.smartNotes/get.md.txt)
and
[`list`](https://developers.google.com/workspace/meet/api/reference/rest/v2/conferenceRecords.smartNotes/list.md.txt)
methods on the
[`smartNotes`](https://developers.google.com/workspace/meet/api/reference/rest/v2/conferenceRecords.smartNotes.md.txt)
resource can now retrieve smart notes files in a conference record. For details,
see [Work with
artifacts](https://developers.google.com/workspace/meet/api/guides/artifacts#smart-notes).

Additionally, subscriptions are now generally available for the following
`smartNotes` events:

- `google.workspace.meet.smartNote.v2.started`
- `google.workspace.meet.smartNote.v2.ended`
- `google.workspace.meet.smartNote.v2.fileGenerated`

For details, see [Subscribe to Google Meet
events](https://developers.google.com/workspace/events/guides/events-meet) and
[Respond to events from Google
Meet](https://developers.google.com/workspace/meet/api/guides/events-overview).

## April 01, 2026

**Chat API** v1 Feature **Generally Available:** Generally available - You can now call the Chat API to create and manage custom sections and organize conversations into a personalized view.

For more information, see the following guides:

- [Create a custom section](https://developers.google.com/workspace/chat/create-section.md.txt)
- [Delete a custom section](https://developers.google.com/workspace/chat/delete-section.md.txt)
- [List custom sections](https://developers.google.com/workspace/chat/list-sections.md.txt)
- [Update a custom section](https://developers.google.com/workspace/chat/update-section.md.txt)
- [Position a custom section](https://developers.google.com/workspace/chat/position-section.md.txt)
- [List custom section items](https://developers.google.com/workspace/chat/list-section-items.md.txt)
- [Move a custom section item](https://developers.google.com/workspace/chat/move-section-item.md.txt)

## March 31, 2026

**Chat API** v1 Feature **Generally available** : The following Chat API methods support [app authentication with administrator approval](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app.md.txt):

- [Get a message](https://developers.google.com/workspace/chat/get-messages.md.txt#get-message-app-auth)
- [List messages](https://developers.google.com/workspace/chat/list-messages.md.txt#list-messages-app-auth)
- [Get a space event](https://developers.google.com/workspace/chat/get-space-event.md.txt#get-space-event-app-auth)
- [List space events](https://developers.google.com/workspace/chat/list-space-events.md.txt#list-space-events-app-auth)

Additionally, Chat apps can now call the following methods in the Google Workspace Events API using [app authentication with administrator approval](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app.md.txt):

- [Subscribe to Chat space events](https://developers.google.com/workspace/events/guides/create-subscription.md.txt#app-auth)
- [Update or renew a subscription](https://developers.google.com/workspace/events/guides/update-subscription.md.txt#update-app-auth)
- [Reactivate a subscription](https://developers.google.com/workspace/events/guides/reactivate-subscription.md.txt#reactivate-app-auth)

## March 19, 2026

**Chat API** v1 Feature **Generally available** : Chat apps can now format text with block quotes. For details, see [Format your messages](https://developers.google.com/workspace/chat/format-messages.md.txt#format-texts).

## March 12, 2026

**Google Apps Script** Feature **Generally Available:** The [`AddOnsResponseService`](https://developers.google.com/apps-script/reference/add-ons-response-service.md.txt) and its associated classes in Apps Script are now generally available. This service allows developers to create and manage interactive responses for Google Workspace Add-ons that extend Google Chat.
**Google Workspace add-ons** Feature **Generally Available:** The Dialogflow integrations for Google Workspace Add-ons that extend Google Chat is now generally available. These integrations let add-ons use Dialogflow CX or Dialogflow ES to understand and respond to user queries in natural language. For more information, see [Build a Dialogflow CX Chat app](https://developers.google.com/workspace/add-ons/chat/quickstart-dialogflow-cx) or [Build a Dialogflow ES Chat app](https://developers.google.com/workspace/add-ons/chat/quickstart-dialogflow-es).
Feature **Generally Available:** The Google Cloud Pub/Sub integration for Google Workspace Add-ons that extend Google Chat is now generally available. This integration allows add-ons to receive and respond to events from Google Chat using Pub/Sub. For more information, see [Build a Chat app that uses Pub/Sub](https://developers.google.com/workspace/add-ons/chat/quickstart-pubsub).

## March 10, 2026

**Chat API** v1 Feature **Developer Preview** : Chat apps can now create messages containing [cards](https://developers.google.com/workspace/chat/api/reference/rest/v1/cards) on behalf of users with [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user.md.txt). Additionally, apps can asynchronously update the cards in these messages without requiring user interaction. For more information, see [Create and update interactive cards](https://developers.google.com/workspace/chat/create-update-interactive-cards.md.txt).

## March 05, 2026

**Google Apps Script** Deprecated **Deprecated:** The method [`setAuthentication(clientId, signingKey)`](https://developers.google.com/apps-script/reference/maps/maps.md.txt#setAuthentication(String,String)) has been deprecated and is scheduled for sunset in June 2026. This change is because Maps platform [client IDs were deprecated](https://developers.google.com/maps/premium/migrate-client-id.md.txt#overview) on May 26, 2025, and can't be used after May 31, 2026. Instead, use [`setAuthenticationByKey(apiKey)`](https://developers.google.com/apps-script/reference/maps/maps.md.txt#setauthenticationbyapikeyapikey) or [`setAuthenticationByKey(apiKey, signingKey)`](https://developers.google.com/apps-script/reference/maps/maps.md.txt#setauthenticationbyapikeyapikey,-signingkey). To get an API key, refer to the [Client ID Migration Guide](https://developers.google.com/maps/premium/migrate-client-id.md.txt).
Feature **Generally Available:** To authenticate to the Maps service, you can now use an API key with the new methods [`setAuthenticationByKey(apiKey)`](https://developers.google.com/apps-script/reference/maps/maps.md.txt#setauthenticationbyapikeyapikey) and [`setAuthenticationByKey(apiKey, signingKey)`](https://developers.google.com/apps-script/reference/maps/maps.md.txt#setauthenticationbyapikeyapikey,-signingkey). To reset authentication to the default mode, use [`resetAuthenticationApiKey()`](https://developers.google.com/apps-script/reference/maps/maps.md.txt#resetauthenticationapikey).

## February 25, 2026

**Google Drive API** v3 Deprecated **Generally Available** : The `enforceExpansiveAccess` query parameter is now deprecated for all methods in the [`permissions`](https://developers.google.com/workspace/drive/api/reference/rest/v3/permissions.md.txt) resource (v2 and v3). To restrict item access, use the [folders with limited access](https://developers.google.com/workspace/drive/api/guides/limited-expansive-access.md.txt) setting instead.

## February 17, 2026

**Google Calendar API** v3 Announcement We have updated the guidance for using Google Meet conferences on Google
Calendar events.

Reusing Google Meet codes across different events can cause access issues, and
can expose meeting details to unintended users. We recommend that you generate a
new conference using the `createRequest` field for every new event.

For more information about using events with the Calendar API, [see the documentation for the `events` resource](https://developers.google.com/workspace/calendar/api/v3/reference/events.md.txt#conferenceData).

## February 13, 2026

**Chat API** v1 Feature **Generally Available:** You can now dynamically populate dropdown menus in Google Chat apps from Google Workspace or external data sources, with an autocomplete functionality. To learn how, see [Design interactive cards and dialogs](https://developers.google.com/workspace/chat/design-interactive-card-dialog.md.txt#dynamic-dropdown-menu).

## February 09, 2026

**Chat API** v1 Feature **Generally Available:** When [sending a message with app authentication](https://developers.google.com/workspace/chat/create-messages.md.txt#send-message-app), Google Chat API now supports mentioning users who haven't joined a Chat space or are members of a [space that is in import mode](https://developers.google.com/workspace/chat/import-data.md.txt). Previously, only [sending a message with user authentication](https://developers.google.com/workspace/chat/create-messages.md.txt#send-message-user) was supported. To learn how, see [Mention users in a text message](https://developers.google.com/workspace/chat/format-messages.md.txt#messages-@mention).

## February 03, 2026

**Chat API** v1 Feature **Developer Preview** : You can now build Google Chat apps as Google Workspace add-ons that use [Cloud Pub/Sub](https://cloud.google.com/pubsub/docs/) to receive messages. This architecture is useful if your Chat app is behind a firewall. For details, see [Build a Chat app that uses Pub/Sub](https://developers.google.com/workspace/add-ons/chat/quickstart-pubsub).
**Gmail API** v1 Feature **Generally Available** : The [Gmail Postmaster Tools API](https://developers.google.com/workspace/gmail/postmaster.md.txt) v2 is now generally available. The API provides access to the full Postmaster Tools dataset---including compliance status data---and includes enhancements like flexible querying with `queryDomainStats` and support for batch operations. For details on how to use the v2 API, see the updated [Postmaster Tools API documentation](https://developers.google.com/workspace/gmail/postmaster.md.txt).

## January 14, 2026

**Chat API** v1 Feature **Generally Available**: You can now convert your interactive event-driven Chat apps to Google Workspace Add-ons that extends Chat.

By converting, your Google Chat app can use the Google Workspace Add-ons framework, opening up new possibilities for integration and features within Google Chat and across Google Workspace. For example, instead of two distributions --- one Google Chat app and one Google Workspace add-on --- you can distribute a single Google Workspace add-on through Google Workspace Marketplace that extends Chat apps alongside other Google Workspace host applications, like Gmail, Calendar, and Docs.

To learn more, see [Convert an interactive Google Chat app to a Google Workspace add-on](https://developers.google.com/workspace/add-ons/chat/convert).

## January 12, 2026

**Google Apps Script** Feature **Generally Available:** Use Apps Script's Vertex AI advanced
service to call the Vertex AI API and prompt AI models to generate text, images,
and more.

For details, see the
[Vertex AI advanced service](https://developers.google.com/apps-script/advanced/vertex-ai.md.txt) reference documentation.

## January 08, 2026

**Google Workspace Marketplace API** v1 Deprecated The `licenseNotification` resource and the `licenseNotification.list` method are now deprecated. The `licenseNotification.list` method previously retrieved a list of licensing notifications for a given app.

There is no alternative resource or method within the Google Workspace Marketplace API. However, user-initiated install events can be tracked through [Google Analytics](https://developers.google.com/workspace/marketplace/use-analytics.md.txt#app-metrics).

## January 07, 2026

**Chat API** v1 Other The
[Google Chat platform samples gallery](https://developers.google.com/chat/samples)
now lets you find samples by products, language, and sample type. The gallery
also features the following new samples for building Chat apps:

- [Agent2Agent agents](https://developers.google.com/workspace/add-ons/chat/quickstart-a2a-agent)
- [ADK AI agents](https://developers.google.com/workspace/add-ons/chat/quickstart-adk-agent)
- [Dialogflow ES](https://developers.google.com/workspace/add-ons/chat/quickstart-dialogflow-es)
- [Dialogflow CX](https://developers.google.com/workspace/add-ons/chat/quickstart-dialogflow-cx)
**Google Apps Script** Other The
[Apps Script samples gallery](https://developers.google.com/apps-script/samples.md.txt)
now lets you find samples by use case, products, and sample type. The gallery
also features the following new samples:

- [Build a Google Chat app with an ADK AI agent](https://developers.google.com/workspace/add-ons/chat/quickstart-adk-agent)
- [Build a Chat app with an Agent2Agent agent](https://developers.google.com/workspace/add-ons/chat/quickstart-a2a-agent)
- [Analyze and label Gmail messages with Gemini and Vertex AI](https://developers.google.com/workspace/add-ons/samples/gmail-sentiment-analysis-ai.md.txt)
**Google Workspace add-ons** Feature **Developer Preview** : You can now build Chat apps that extend Google Workspace add-ons using Apps Script's AddOnsResponseService. For details, see [AddOns Response Service](https://developers.google.com/apps-script/reference/add-ons-response-service.md.txt).
Other The
[Add-ons samples gallery](https://developers.google.com/add-ons/samples)
now lets you find samples by products, languages, sample type, and add-on type.
The gallery also features the following new samples:

- Build Chat apps using [Agent2Agent
  agents](https://developers.google.com/workspace/add-ons/chat/quickstart-a2a-agent), [ADK AI
  agents](https://developers.google.com/workspace/add-ons/chat/quickstart-adk-agent), [Dialogflow
  ES](https://developers.google.com/workspace/add-ons/chat/quickstart-dialogflow-es), and [Dialogflow
  CX](https://developers.google.com/workspace/add-ons/chat/quickstart-dialogflow-cx)
- [Plan travels with an AI agent accessible across Google Workspace](https://developers.google.com/workspace/add-ons/samples/travel-concierge.md.txt)
- [Analyze and label Gmail messages with Gemini and Vertex AI](https://developers.google.com/workspace/add-ons/samples/gmail-sentiment-analysis-ai.md.txt)

## December 30, 2025

**Google Workspace Admin SDK** Change **License Manager API** : The SKU name "Gemini Education" has been renamed to "Google AI Pro for Education." For details, see the [Google Product and SKU IDs](https://developers.google.com/workspace/admin/licensing/v1/how-tos/products.md.txt) documentation and [announcement](https://workspaceupdates.googleblog.com/2025/09/google-ai-pro-for-education.html).

## December 17, 2025

**Google Drive API** v3 Feature **Generally Available** : The Google Drive API now supports the reading of content approvals on Drive files through the [`approvals`](https://developers.google.com/workspace/drive/api/reference/rest/v3/approvals.md.txt) resource. To retrieve approvals on a file, you can use either the [`get`](https://developers.google.com/workspace/drive/api/reference/rest/v3/approvals/get.md.txt) or [`list`](https://developers.google.com/workspace/drive/api/reference/rest/v3/approvals/list.md.txt) method.

For details, see [Manage approvals](https://developers.google.com/workspace/drive/api/guides/approvals.md.txt).
Feature **(Developer Preview)** : You can now get [`approval`](https://developers.google.com/workspace/drive/api/reference/rest/v3/approvals.md.txt) events in Google Drive. The following event types are supported:

- An approval is created, cancelled, reset, or completed on a file.
- An approval reviewer is changed on a file.
- An approval reviewer responded to an approval on a file.

For details, see [Subscribe to Google Drive events](https://developers.google.com/workspace/events/guides/events-drive.md.txt) in the Google Workspace Events API documentation. For information on how to receive Google Drive events from Google Cloud Pub/Sub, see [Work with events from Google Drive](https://developers.google.com/workspace/drive/api/guides/events-overview.md.txt).
**Google Meet** Feature **Meet API**

**Developer Preview** : Subscriptions are now available for the following `smartNotes` events:

- `google.workspace.meet.smartNote.v2.started`
- `google.workspace.meet.smartNote.v2.ended`
- `google.workspace.meet.smartNote.v2.fileGenerated`

For details, see [Subscribe to Google Meet events](https://developers.google.com/workspace/events/guides/events-meet.md.txt) in the Google Workspace Events API documentation.

For information on how to receive Google Meet events from Google Cloud Pub/Sub, see [Respond to events from Google Meet](https://developers.google.com/workspace/meet/api/guides/events-overview.md.txt).

## December 15, 2025

**Google Meet** Feature **Meet API**

**Developer Preview** : Available as part of the [Developer Preview Program](https://developers.google.com/workspace/preview.md.txt), which grants early access to certain features.

You can now retrieve smart notes files in a conference record using the `get` and `list` methods on the `smartNotes` resource.

For details, see [Work with artifacts](https://developers.google.com/workspace/meet/api/guides/artifacts.md.txt#smart-notes).

## December 14, 2025

**Chat API** v1 Feature **Developer Preview** : You can now dynamically populate drop-down menus in
Google Chat apps with data from Google Workspace or external data sources,
with an autocomplete functionality. To learn more, see
[Add interactive UI elements to cards](https://developers.google.com/workspace/chat/design-interactive-card-dialog.md.txt#dynamic-dropdown-menu).

## December 11, 2025

**Chat API** v1 Feature **Developer Preview** : You can now call the Chat API to create and manage [custom sections](https://support.google.com/chat/answer/16059854) and organize conversations in a personalized view:

- Create section ([RPC](https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1.md.txt#createsectionrequest), [REST](https://developers.google.com/workspace/chat/api/reference/rest/v1/users.sections/create.md.txt))
- Delete section ([RPC](https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1.md.txt#deletesectionrequest), [REST](https://developers.google.com/workspace/chat/api/reference/rest/v1/users.sections/delete.md.txt))
- List sections ([RPC](https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1.md.txt#listsectionsrequest), [REST](https://developers.google.com/workspace/chat/api/reference/rest/v1/users.sections/list.md.txt))
- Update section ([RPC](https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1.md.txt#updatesectionrequest), [REST](https://developers.google.com/workspace/chat/api/reference/rest/v1/users.sections/patch.md.txt))
- Position section ([RPC](https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1.md.txt#positionsectionrequest), [REST](https://developers.google.com/workspace/chat/api/reference/rest/v1/users.sections/position.md.txt))
- List section items ([RPC](https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1.md.txt#listsectionitemsrequest), [REST](https://developers.google.com/workspace/chat/api/reference/rest/v1/users.sections.items/list.md.txt))
- Move section items ([RPC](https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1.md.txt#movesectionitemrequest), [REST](https://developers.google.com/workspace/chat/api/reference/rest/v1/users.sections.items/move.md.txt))

To learn more, see `Section` ([RPC](https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1.md.txt#google.chat.v1.Section), [REST](https://developers.google.com/workspace/chat/api/reference/rest/v1/users.sections.md.txt)) and `SectionItem` ([RPC](https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1.md.txt#google.chat.v1.SectionItem), [REST](https://developers.google.com/workspace/chat/api/reference/rest/v1/SectionItem.md.txt)) in the Chat API documentation.
**Google Workspace add-ons** Other **Limited Preview** : [Extending Google Workspace Studio with add-ons](https://developers.google.com/workspace/add-ons/studio.md.txt) is in limited preview.

## December 09, 2025

**Chat API** v1 Announcement **Generally available** : The Chat API now supports reading rich links to Gmail threads in Chat messages that appear as chips. To learn more, see [`RichLinkType`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages.md.txt#richlinktype) in the Chat API reference documentation.
**Google Workspace add-ons** Feature **Developer Preview** : You can now build
[Dialogflow CX](https://developers.google.com/workspace/add-ons/chat/quickstart-dialogflow-cx)
and [Dialogflow ES](https://developers.google.com/workspace/add-ons/chat/quickstart-dialogflow-es)
Chat apps as Google Workspace add-ons.

## December 03, 2025

**Google Workspace add-ons** Feature **Generally Available** : You can now build add-ons that extend Google Workspace Studio (previously known as Google Workspace Flows). For details, see [Extend Google Workspace Studio](https://developers.google.com/workspace/add-ons/studio.md.txt).

For ideas about what you can build, see [Introducing Google Workspace Studio: Automate everyday work with AI agents](https://workspace.google.com/blog/product-announcements/introducing-google-workspace-studio-agents-for-everyday-work) in the Google Workspace blog.

## December 02, 2025

**Gmail API** v1 Feature **Developer Preview**: You can now access data in Gmail Postmaster Tools v2
using the v2beta API. The new API provides access to the full Postmaster Tools
dataset, including compliance status data.

The v2beta API also includes enhancements such as the `queryDomainStats` method for
flexible querying, and adds support for batch operations.

To learn how to use the API, see the [Postmaster Tools API documentation](https://developers.google.com/workspace/gmail/postmaster.md.txt).

## November 20, 2025

**Google Meet** Feature **Meet API**

**Developer Preview** : Available as part of the [Developer Preview Program](https://developers.google.com/workspace/preview.md.txt), which grants early access to certain features.

You can now identify and join a meeting space using the `phoneAccess` and `gatewaySipAccess` fields on the `spaces` resource.

For details, see [How Meet identifies a meeting space](https://developers.google.com/workspace/meet/api/guides/meeting-spaces-overview.md.txt#identify-meeting-space).

## November 12, 2025

**Google Meet** Feature **Meet API**

**Generally Available** : Calendar invitees can now receive `google.workspace.meet.conference.v2.started` and `google.workspace.meet.transcript.v2.fileGenerated` events.

For details, see [Subscribe to Google Meet events](https://developers.google.com/workspace/events/guides/events-meet.md.txt) in the Google Workspace Events API documentation.

For information on how to receive Google Meet events from Google Cloud Pub/Sub, see [Respond to events from Google Meet](https://developers.google.com/workspace/meet/api/guides/events-overview.md.txt).

## November 11, 2025

**Google Drive API** v3 Feature **(Developer Preview)** : You can now get `comment` and `reply` events in Google Drive. The following event types are supported:

- A user posts a comment in a Google Docs, Sheets, or Slides file.
- A user replies to a comment.

For details, see [Subscribe to Google Drive events](https://developers.google.com/workspace/events/guides/events-drive.md.txt) in the Google Workspace Events API documentation. For information on how to receive Google Drive events from Google Cloud Pub/Sub, see [Work with events from Google Drive](https://developers.google.com/workspace/drive/api/guides/events-overview.md.txt).

## October 30, 2025

**Chat API** v1 Feature **Developer Preview** : Chat apps can find existing group conversations with specific members using [`FindGroupChats`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/findGroupChats.md.txt).

## October 27, 2025

**Google Calendar API** v3 Feature **Generally available starting November 10, 2025**:

Secondary calendars will now have a single data owner. This applies to both existing and newly created calendars. In the Calendar API, the data owner's email address will be in the read-only `dataOwner` field in the `Calendars` and `CalendarList` resources.

To prevent unintended actions and undesired states, the following new restrictions apply:

- Only the data owner can delete secondary calendars.
- The data owner's access level cannot be changed from the default `owner` access.
- The data owner cannot remove an owned calendar from their calendar list. They can hide it from their UI.

When a new secondary calendar is created, the authenticated user that makes the request is the data owner. We recommend that you use user authentication to create secondary calendars. Data ownership can be transferred in the Google Calendar UI.

For more details, see the documentation for [`Calendars`](https://developers.google.com/workspace/calendar/api/v3/reference/calendars.md.txt) and [`CalendarList`](https://developers.google.com/workspace/calendar/api/v3/reference/calendarList.md.txt) closer to November 10.
**Google Workspace add-ons** Feature **Gemini Alpha** : As part of the [Gemini Alpha program](https://support.google.com/a/answer/14170809), you can now build add-ons that extend Google Workspace Flows. For details, see [Extend Google Workspace Flows](https://developers.google.com/workspace/add-ons/workflows).

## October 22, 2025

**Chat API** v1 Announcement **Generally available** : When sending [private messages](https://developers.google.com/workspace/chat/create-messages.md.txt#private), Chat apps can now include interactive [accessory widgets](https://developers.google.com/workspace/chat/create-messages.md.txt#add-accessory-widgets).
Feature **Generally available**: We're enhancing membership roles in Chat spaces by introducing a new membership role type. In the Chat UI, existing space managers are now owners and a new manager role is added.

Previously, there were three membership role types in Chat API. `MEMBERSHIP_ROLE_UNSPECIFIED`, which meant a user wasn't a member but could be invited. `ROLE_MEMBER`, which meant a user was a member of the space. And `ROLE_MANAGER`, which meant a user was a space manager.

Now, in the Chat UI, `ROLE_MANAGER` users are called owners; this is a cosmetic change so permissions and the API enum remain the same. To help space owners administer spaces, we're introducing `ROLE_ASSISTANT_MANAGER` which is called manager in the UI. Possible membership roles include:

- `MEMBERSHIP_ROLE_UNSPECIFIED`: Default value. For users: they aren't a member of the space, but can be invited. For Google Groups: they're always assigned this role.
- `ROLE_MEMBER`: A member of the space. In the Chat UI, this role is called **Member**. Members have basic permissions, like reading messages in a space. Managers and Owners can grant them additional permissions, like adding or removing members, editing space details, and turning history on and off.
- `ROLE_ASSISTANT_MANAGER`: A space manager. In the Chat UI, this role is called **Manager**. By default, managers have permission to make other members managers, delete messages, and change space permissions.
- `ROLE_MANAGER`: A space owner. In the Chat UI, this role is called **Owner**. Owners have the broadest set of permissions, including permission to make other members owners or delete the space.

To learn more, see [Update a user's membership in a Google Chat space](https://developers.google.com/workspace/chat/update-members.md.txt) and [`MembershipRole`](https://developers.google.com//workspace/chat/api/reference/rest/v1/spaces.members#membershiprole) in the Chat API reference documentation.

## October 02, 2025

**Google Docs API** v1 Deprecated After October 14, 2025, calling [Gemini Code Assist `@googledocs` tool](https://developers.google.com/workspace/docs/api/how-tos/read-docs-gemini-tool) using the @ operator with the tool name won't
work. Gemini Code Assist tools are replaced by
[agent mode](https://developers.google.com/gemini-code-assist/docs/agent-mode).

## September 22, 2025

**Chat API** v1 Announcement **Generally available** : You can now [format text with Markdown](https://developers.google.com/workspace/chat/format-messages.md.txt#markdown), including lists and code blocks, in your Chat apps.

## September 18, 2025

**Chat API** v1 Feature **Developer Preview** : The following Chat API methods support [app authentication with administrator approval](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app.md.txt) when called with `chat.app.*` authorization scopes:

- [Get a Chat space event](https://developers.google.com/workspace/chat/get-space-event.md.txt#get-space-event-app-auth).
- [List Chat space events](https://developers.google.com/workspace/chat/list-space-events.md.txt#list-space-events-app-auth).

Additionally, Chat apps can now call the following methods in the Google Workspace Events API using [app authentication with administrator approval](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app.md.txt) with `chat.app.*` authorization scopes:

- [Subscribe to Chat space events](https://developers.google.com/workspace/events/guides/create-subscription.md.txt#app-auth)
- [Update or renew a subscription](https://developers.google.com/workspace/events/guides/update-subscription.md.txt#update-app-auth)
- [Reactivate a subscription](https://developers.google.com/workspace/events/guides/reactivate-subscription.md.txt#reactivate-app-auth)

## September 16, 2025

**Google Workspace Admin SDK** Feature **Reports API** : You can now get Google Drive activity events when applications
prefetch the content of a Drive item. For details, see
[the `prefetch_item_content` event](https://developers.google.com/workspace/admin/reports/v1/appendix/activity/drive.md.txt#prefetch_item_content).

## September 12, 2025

**Chat API** v1 Feature **Generally available**: Increased per-space quota limits for writing messages and reactions with the Chat API:

- When [importing data to Google Chat](https://developers.google.com/workspace/chat/import-data.md.txt), the per-space quota limit for writing messages with `spaces.messages.create` increases from 60 to 600 per minute.
- When writing reactions with `spaces.messages.reactions.create`, the per-space quota limit increases from 60 to 300 per minute.

To learn more, see the Chat API's [per-space quotas](https://developers.google.com/workspace/chat/limits.md.txt#space-quotas).

## September 10, 2025

**Chat API** v1 Feature **Generally available** : You can now design your Chat app to include a carousel, which is a layout that rotates and displays a list of cards in a slideshow format, with buttons navigating to the previous or next carousel card. For details, see [Carousel](https://developers.google.com/workspace/chat/api/reference/rest/v1/cards#carousel).
**Gmail API** v1 Feature You can now use annotations to create Deal Cards in the Promotions tab.
To get started, see the [overview of Deal Cards](https://developers.google.com/workspace/gmail/promotab/overview.md.txt#deal-card).

## August 20, 2025

**Google Workspace Admin SDK** Feature **Reports API** : You can now retrieve activity events for Gmail. These events provide insights into how users in your organization are using Gmail. To retrieve these events, use the `activities.list` method with `applicationName=gmail`. For details, see the [reference documentation](https://developers.google.com/workspace/admin/reports/v1/appendix/activity/gmail.md.txt).

## August 18, 2025

**Chat API** v1 Feature **Developer Preview** : The following Chat API methods support [app authentication with administrator approval](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app.md.txt):

- [Get a message as a Chat app with administrator approval using `chat.app.messages.readonly` scope](https://developers.google.com/workspace/chat/get-messages.md.txt#get-message-app-auth).
- [List messages with a Chat app with administrator approval using `chat.app.messages.readonly` scope](https://developers.google.com/workspace/chat/list-messages.md.txt#list-messages-app-auth).

## August 12, 2025

**Chat API** v1 Feature **Generally available** : You can now call the Chat API to create messages that quote other messages, or to update messages to remove quotes. To learn more, see [Quote a message](https://developers.google.com/workspace/chat/create-messages.md.txt#quote-a-message).

## July 25, 2025

**Chat API** v1 Feature **Generally Available** : The following Chat API methods support [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app.md.txt) using a new type of authentication scope, `https://www.googleapis.com/auth/chat.app.*`:

- [Create a named space as a Chat app](https://developers.google.com/workspace/chat/create-spaces.md.txt#create-named-app-auth) with `https://www.googleapis.com/auth/chat.app.spaces` or `https://www.googleapis.com/auth/chat.app.spaces.create`.
- [Update a space as a Chat app](https://developers.google.com/workspace/chat/update-spaces.md.txt#update-space-app-auth) with `https://www.googleapis.com/auth/chat.app.spaces`.
- [Delete a named space as a Chat app](https://developers.google.com/workspace/chat/delete-spaces.md.txt#delete-named-app-auth) with `https://www.googleapis.com/auth/chat.app.delete`.
- [Get details about a space as a Chat app](https://developers.google.com/workspace/chat/get-spaces.md.txt#get-space) with `https://www.googleapis.com/auth/chat.app.spaces`.
- [Invite or add a user to a space as a Chat app](https://developers.google.com/workspace/chat/create-members.md.txt#create-user-membership-app-auth) with `https://www.googleapis.com/auth/chat.app.memberships`.
- [Update a membership as a Chat app](https://developers.google.com/workspace/chat/update-members.md.txt#update-membership) with `https://www.googleapis.com/auth/chat.app.memberships`.
- [Remove a member from a space](https://developers.google.com/workspace/chat/delete-members.md.txt#delete-membership-app-auth) with `https://www.googleapis.com/auth/chat.app.memberships`.

To learn more, see [Types of required authentication](https://developers.google.com/workspace/chat/authenticate-authorize.md.txt#types-required) and [Authenticate as a Chat app](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app.md.txt).
Feature **Generally Available** : Chat apps can now create ([RPC](https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1.md.txt#google.chat.v1.ChatService.CreateSpace), [REST](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/create.md.txt)), update ([RPC](https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1.md.txt#google.chat.v1.ChatService.UpdateSpace), [REST](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/patch.md.txt)), and get details about ([RPC](https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1.md.txt#google.chat.v1.ChatService.GetSpace), [REST](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/get.md.txt)) Chat space [permission settings](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.md.txt#Space.PredefinedPermissionSettings) by calling the corresponding method in Chat API using app authentication with the `https://www.googleapis.com/auth/chat.app.spaces` or `https://www.googleapis.com/auth/chat.app.spaces.create` authentication scope, including creating announcement spaces.

## July 22, 2025

**Chat API** v1 Feature You can now read the metadata for Meet, Huddle, and Calendar chips using message annotations. Use the [`RichLinkMetadata`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages.md.txt) object to read information about the chip.

## July 16, 2025

**Google Drive API** v3 Change The Drive API has changed how download, print, and copy restrictions are applied.

Users with the role of `owner` or `organizer` can apply restrictions to other users with `writer` roles, in addition to `reader` roles. Users can directly apply restrictions on files using the `itemDownloadRestriction` field within the [`DownloadRestrictionsMetadata`](https://developers.google.com/workspace/drive/api/reference/rest/v3/files.md.txt#downloadrestrictionsmetadata) object. Determination of whether file restrictions can be changed is controlled by the new `capabilities.canChangeItemDownloadRestriction` field.

Similarly, users with the role of shared drive `organizer` can directly apply restrictions on shared drives using the `downloadRestriction` field within the [`Restrictions`](https://developers.google.com/workspace/drive/api/reference/rest/v3/drives.md.txt#Drive.FIELDS.restrictions) object. Determination of whether shared drive restrictions can be changed is also controlled by the `capabilities.canChangeDownloadRestriction` field.

While the previous field (`copyRequiresWriterPermission`) that controlled download, print, and copy restrictions is still available, the functionality is different for both reading from and writing to the field. We recommend that you use the new `DownloadRestriction` object to enforce how users can download, print, and copy files.

For more information about how download, print, and copy restrictions are now applied for My Drive and shared drive files, see:

- [Protect file content](https://developers.google.com/workspace/drive/api/guides/content-restrictions.md.txt#download-print-copy)
- [Manage shared drives](https://developers.google.com/workspace/drive/api/guides/manage-shareddrives.md.txt#download-print-copy)

## July 09, 2025

**Chat API** v1 Feature **Generally available** : You can now build Google Chat apps as Google Workspace add-ons. For details, see [Extend Google Chat](https://developers.google.com/workspace/add-ons/chat).
**Google Workspace add-ons** Feature **Generally available** : You can now build Google Chat apps as Google Workspace add-ons. For details, see [Extend Google Chat](https://developers.google.com/workspace/add-ons/chat).

## July 07, 2025

**Google Drive API** v3 Feature **(Developer Preview)**: You can now subscribe to events in Google Drive. The following event types are supported:

- A file is added to a folder or shared drive.
- A file is moved to a folder or shared drive.
- A file is edited or a new revision is uploaded.
- A file is trashed or removed from the trash.
- An access proposal is created or resolved on a file.

For details, see [Subscribe to Google Drive events](https://developers.google.com/workspace/events/guides/events-drive.md.txt) in the Google Workspace Events API documentation. For information on how to receive Google Drive events from Google Cloud Pub/Sub, see [Work with events from Google Drive](https://developers.google.com/workspace/drive/api/guides/events-overview.md.txt).
**Google Workspace Events API** v1beta Feature **(Developer Preview)**: The Google Workspace Events API now supports subscriptions to Google Drive. The API supports the following types of events:

- A file is added to a folder or shared drive.
- A file is moved to a folder or shared drive.
- A file is edited or a new revision is uploaded.
- A file is trashed or removed from the trash.
- An access proposal is created or resolved on a file.

For details, see [Subscribe to Google Drive events](https://developers.google.com/workspace/events/guides/events-drive.md.txt).
**Google Workspace Marketplace API** v1 Announcement **Generally Available** : Google Workspace Marketplace has updated the app publishing process. For published apps, certain changes to your draft---such as adding new app integrations or modifying the app name or description---will now trigger a manual review before being published. You can now also cancel an app listing that has been submitted for review, which reverts the app to its draft state. To learn more, see [Update your app listing with drafts](https://developers.google.com/workspace/marketplace/manage-app-listing.md.txt#draft-app-listing).

## July 01, 2025

**Google Workspace Admin SDK** Feature **Reports API** : You can now retrieve activity events for Gemini in Workspace Apps. These events provide insights into how users in your organization are using Gemini. To retrieve these events, use the `activities.list` method with `applicationName=gemini_in_workspace_apps`. For details, see the [reference documentation](https://developers.google.com/workspace/admin/reports/v1/appendix/activity/gemini-in-workspace-apps.md.txt).

## June 17, 2025

**Google Sheets API** v4 Feature **Generally available** : Create, update, and read Google Drive and People chips in Google Sheets API. To learn more, see [Smart chips](https://developers.google.com/workspace/sheets/api/guides/chips.md.txt) in the Sheets API documentation.

## June 10, 2025

**Chat API** v1 Feature **[Developer Preview](https://developers.google.com/workspace/preview.md.txt)** : Chat apps can now [format text with markdown](https://developers.google.com/workspace/chat/format-messages.md.txt#format-texts), including lists and code blocks.

## June 04, 2025

**Google Apps Script** Deprecated [Google Analytics 4 has replaced Universal Analytics](https://support.google.com/analytics/answer/11583528), which means the Apps Script Advanced Service for Google Analytics Management API and Reporting API is deprecated. Use the [Google Analytics Data API Advanced Service](https://developers.google.com/apps-script/advanced/analyticsdata.md.txt) instead.
**Google Workspace add-ons** Breaking **Developer Preview:** Starting on June 16, 2025, the following default Apps Script function names for [Google Chat app triggers](https://developers.google.com/workspace/add-ons/chat/build#triggers) will change:

- For **Added to space** triggers, the default function name will change from `onAddToSpace` to `onAddedToSpace`.
- For **Removed from space** triggers, the default function name will change from `onRemoveFromSpace` to `onRemovedFromSpace`.

If your Chat app responds to being added or removed from Chat spaces, you can address this breaking change and avoid any potential errors by doing one of the following:

- In your Apps Script project, update the name of your functions to `onAddedToSpace` and `onRemovedFromSpace`. If required, [create another versioned deployment](https://developers.google.com/apps-script/guides/versions.md.txt) of your Apps Script project and save the new deployment ID in the **Chat API Configuration** page in the Google Cloud console.
- In the Google Cloud console, open the **Chat API Configuration page** and in the **Triggers** section, update the function name for the **Added to space** and **Removed from space** triggers so that they use the function name that you're currently using in your Apps Script project.

To learn how to update your Chat app configuration in the Google Cloud console, see [Configure a Google Chat app](https://developers.google.com/workspace/add-ons/chat/configure).

## June 02, 2025

**Google Workspace Events API** v1 Feature The following app-specific fields on the `space.message` resource are now populated when the `created` and `updated` Google Chat events are sent:

- `threadKey`
- `clientAssignedMessageId`
- `slashCommand`
- `MatchedUrl`

[See the `space.message` resource](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages.md.txt).

[See the list of Google Chat event types](https://developers.google.com/workspace/events/guides/events-chat.md.txt#event-types).

## May 20, 2025

**Gmail API** v1 Feature For Google Workspace organizations that use hardware key encryption, the Gmail API supports using smart cards for client-side encryption (CSE). For details, see the reference documentation for [`CseIdentity`](https://developers.google.com/gmail/api/reference/rest/v1/users.settings.cse.identities) and [`CseKeyPair`](https://developers.google.com/workspace/gmail/api/reference/rest/v1/users.settings.cse.keypairs.md.txt) resources.

## May 12, 2025

**Google Workspace add-ons** Deprecated For Google Workspace add-ons that extend Google Chat, the `invoked_function` field is no longer part of the [Common event object](https://developers.google.com/workspace/add-ons/concepts/event-objects.md.txt#common_event_object). Use the `parameters` field to determine and handle user interactions.

If your application doesn't depend on the `invoked_function` field, no action is needed.

If your application used the `invoked_function` field, [see to the documentation](https://developers.google.com/workspace/add-ons/chat/collect-information#transfer) for an example that uses the `parameters` field to create interactive widgets.

## May 05, 2025

**Google Workspace add-ons** Feature **Generally Available**: Granular OAuth permissions are now supported for HTTP Google Workspace add-ons. The granular OAuth consent screen lets users specify which individual OAuth scopes they want to authorize.

Keep the following dates in mind when you're building or modifying add-ons:

- HTTP Google Workspace add-ons built after May 27, 2025 must support granular consent.
- Existing add-ons have until December 1, 2025 to add support for granular consent.
- After December 1, 2025, all HTTP Google Workspace add-ons must support granular consent.

For more information about how to add support for granular consent, refer to [Build a Google Workspace add-on using HTTP endpoints](https://developers.google.com/workspace/add-ons/guides/alternate-runtimes.md.txt#manage-granular).

## April 30, 2025

**Chat API** v1 Announcement **Generally available**: You can now call the Chat API to create, delete, and view custom emoji in organizations where creating custom emoji is enabled. You can now include or react with custom emoji in messages.

- [Learn about including custom emoji in Chat messages](https://developers.google.com/workspace/chat/format-messages.md.txt#messages-emoji)
- [Learn more about enabling custom emoji](https://support.google.com/chat/answer/12800149)

## April 29, 2025

**Google Meet** Announcement **Meet API**

**Generally Available**: You can now programmatically configure the moderation settings and the permissions users receive when they join a meeting space. Additionally, you can also pre-configure auto-recording, auto-transcripts, and "take notes for me" in meeting spaces.

For more information, see [Configure meeting spaces and members](https://developers.google.com/workspace/meet/api/guides/meeting-spaces-configuration.md.txt).
**Google Sheets API** v4 Announcement You can now create and modify tables, and take basic actions on tables using the Sheets API.

- [Learn more about creating tables using the Sheets API](https://developers.google.com/workspace/sheets/api/guides/tables.md.txt)
- [Learn about the `Table` object in the Sheets API](https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets.md.txt#table)
**Google Workspace add-ons** Fixed For Google Workspace add-ons that extend Google Chat, `event_time` timestamps are serialized and match the serialization of legacy Google Chat apps. You can now use the same timestamp-handling logic in both legacy Chat apps, and in your Workspace add-ons that extend Google Chat.

Previously, timestamps were serialized in the following format:

    "eventTime": {
     "seconds": 1.742601948E9
     "nanos": 7.01868E8
    }

After this fix, timestamps are serialized in the following format that shows the date and time:

    "eventTime": "2025-03-24T16:31:21.165203Z"

[See the `Event` object in the Google Chat API](https://developers.google.com/workspace/chat/api/reference/rest/v1/Event.md.txt).

## April 23, 2025

**Google Apps Script** Fixed Between approximately September 2024 and March 2025, for Google Sheets modifications made by time-based Apps Script triggers, a bug caused incorrect OAuth App IDs and App Names to be logged in the Google Admin console.

This logging issue did not impact the functionality of Apps Script or Google Sheets. A fix was deployed on March 27, 2025, preventing future incorrect logging. Historical logs will not be corrected.

To learn more about Apps Script and audit logs, see [Monitor and control Apps Script use in your Google Workspace organization](https://developers.google.com/apps-script/guides/admin/monitor-use.md.txt).

## April 09, 2025

**Google Docs API** v1 Announcement [**Preview**](https://cloud.google.com/products#product-launch-stages): Use the `@googledocs` command to read, summarize, and list your Google Docs assets like documents and folders directly from your IDE by installing Gemini Code Assist. To learn more, see [Read documents while coding with Gemini Code Assist](https://developers.google.com/workspace/docs/api/how-tos/read-docs-gemini-tool).

## April 08, 2025

**Google Apps Script** Feature You can now use the [Forms Service](https://developers.google.com/apps-script/reference/forms.md.txt) to publish forms, and to have granular control over who can respond to forms.

[Learn about the `setPublished` method to publish forms](https://developers.google.com/apps-script/reference/forms/form.md.txt#setPublished(Boolean)).
**Google Forms API** v1 Feature You can now use the Forms API to publish forms, and use the Drive API to have granular control over who can respond to forms.

- [Learn about publishing and adding responders](https://developers.google.com/workspace/forms/api/guides/publish-form.md.txt).
- [Learn about the `setPublishSettings` method in the Forms API](https://developers.google.com/workspace/forms/api/reference/rest/v1/forms/setPublishSettings.md.txt).
- [Learn about the `permissions.create` method in the Drive API](https://developers.google.com/drive/api/reference/rest/v3/permissions/create).

## March 17, 2025

**Google Workspace Admin SDK** Change **Reports API** : User Logs Events now have logs for additional challenge types, such as `Passkey`, `Device Prompt`, `SAML` and more.

[Learn more about Login Audit Activity Events](https://developers.google.com/admin-sdk/reports/v1/appendix/activity/login). You can get these events using the [`activities.list`](https://developers.google.com/admin-sdk/reports/reference/rest/v1/activities/list) method.

## March 13, 2025

**Chat API** v1 Announcement The Google Workspace Events API `v1beta` endpoint will be decommissioned for Google Chat and Google Meet events on April 30, 2025. To subscribe to Chat or Meet events, use the generally available [`v1` endpoint](https://developers.google.com/workspace/events/reference/rest/v1.md.txt).
**Google Meet** Announcement The Google Workspace Events API `v1beta` endpoint will be decommissioned for Google Chat and Google Meet events on April 30, 2025. To subscribe to Chat or Meet events, use the generally available [`v1` endpoint](https://developers.google.com/workspace/events/reference/rest/v1.md.txt).
**Google Workspace Events API** v1beta Announcement The Google Workspace Events API `v1beta` endpoint will be decommissioned for Google Chat and Google Meet events on April 30, 2025. To subscribe to Chat or Meet events, use the generally available [`v1` endpoint](https://developers.google.com/workspace/events/reference/rest/v1.md.txt).

## March 07, 2025

**Chat API** v1 Feature **Generally Available:** You can now call the Chat API to get or update a user's notification settings for a Chat space. For details, see the following guides:

- [Get a user's space notification settings](https://developers.google.com/workspace/chat/get-space-notification-setting.md.txt)
- [Update a user's space notification settings](https://developers.google.com/workspace/chat/update-space-notification-setting.md.txt)

## March 05, 2025

**Chat API** v1 Feature **Generally available** : Chat apps can respond to quick commands. To use quick commands, users select the command from the message reply area in a Chat space. To learn more, see [Respond to Google Chat app commands](https://developers.google.com/workspace/chat/commands.md.txt).
**Google Workspace add-ons** Feature **Generally available** : Chat apps can respond to quick commands. To use quick commands, users select the command from the message reply area in a Chat space. To learn more, see [Respond to Google Chat app commands](https://developers.google.com/workspace/add-ons/chat/commands).

## March 03, 2025

**Chat API** v1 Feature Google Chat API now supports mentioning users who haven't joined a Chat space or are members of a [space that is in import mode](https://developers.google.com/workspace/chat/import-data.md.txt) when [sending a message with user authentication](https://developers.google.com/workspace/chat/create-messages.md.txt#send-message-user). To learn how, see [Mention users in a text message](https://developers.google.com/workspace/chat/format-messages.md.txt#messages-@mention).

## February 24, 2025

**Google Meet** Announcement **Meet Media API**

**Developer Preview** : The [Google Meet Media API](https://developers.google.com/meet/media-api/guides/overview) is now available as part of the [Developer Preview Program](https://developers.google.com/workspace/preview.md.txt). The Meet Media API lets you access real-time media from Google Meet conferences.

## February 20, 2025

**Google Apps Script** Announcement 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](https://developers.google.com/apps-script/guides/v8-runtime/migration.md.txt).

## February 19, 2025

**Google Drive API** v3 Feature **Generally Available**: The Google Drive API now supports folders with limited access which allow you to restrict folders to specific users. Folders with limited access broadens the expansive access model from shared drives to My Drive.

To limit access to a folder, developers can set the boolean `inheritedPermissionsDisabled` field on the [`files`](https://developers.google.com/drive/api/reference/rest/v3/files) resource to `true`. Developers can also opt in to expansive access API behavior in My Drive ahead of any future mandatory enforcement by setting the `enforceExpansiveAccess` request parameter to `true` on the [`permissions.delete()`](https://developers.google.com/drive/api/reference/rest/v3/permissions/delete) and [`permissions.update()`](https://developers.google.com/drive/api/reference/rest/v3/permissions/update) methods.

To learn more, see [Manage folders with limited and expansive access](https://developers.google.com/drive/api/guides/limited-expansive-access).

## February 18, 2025

**Chat API** v1 Change **Generally available:** When a user deletes a message sent by a Chat app, the [`DeletionType`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages.md.txt#deletiontype) of the Chat API `Message` resource is set to `SPACE_MEMBER`. Previously, the `DeletionType` was set to `CREATOR`.

## February 14, 2025

**Google Workspace Admin SDK** Change **Reports API** : Google Chat now supports the [`customerUsageReports.get()`](https://developers.google.com/admin-sdk/reports/reference/rest/v1/customerUsageReports/get) and [`userUsageReports.get()`](https://developers.google.com/admin-sdk/reports/reference/rest/v1/userUsageReport/get) methods. Forty eight new metrics have been added to [`customerUsageReports`](https://developers.google.com/admin-sdk/reports/v1/appendix/usage/customer/chat) and four new metrics have been added to [`userUsageReports`](https://developers.google.com/admin-sdk/reports/v1/appendix/usage/user/chat).
Change **Reports API** : A new event type `conversation_read` has been added to Google Chat along with four new event parameters to [`activities.list`](https://developers.google.com/admin-sdk/reports/reference/rest/v1/activities/list), and [`activities.watch`](https://developers.google.com/admin-sdk/reports/reference/rest/v1/activities/watch):

- `conversation_ownership`
- `conversation_type`
- `message_type`
- `attachment_status`

The full list of events and parameters supported in Chat audit activities can be found on the [Chat Audit Activity Events](https://developers.google.com/admin-sdk/reports/v1/appendix/activity/chat) page.

## February 07, 2025

**Google Meet** Announcement **Meet API**

**Developer Preview** : You can now pre-configure auto-recording, auto-transcripts, and "take notes for me" within a meeting space. For details, see [Manage auto artifacts](https://developers.google.com/meet/api/guides/beta/configuration-beta#auto-artifacts).

**Generally Available** : You can now use a new non-sensitive scope (`https://www.googleapis.com/auth/meetings.space.settings`) to set up auto-artifacts for meetings created by other apps including Google Calendar. For details, see [OAuth scopes for settings](https://developers.google.com/meet/api/guides/beta/configuration-beta#oauth-scopes).
Feature **Meet API**

**Generally Available** : All meeting participants can now query for certain conference data including the [conference records](https://developers.google.com/meet/api/guides/conferences), the [conference artifacts](https://developers.google.com/meet/api/guides/artifacts), and the [participant records](https://developers.google.com/meet/api/guides/participants).

## January 30, 2025

**Google Meet** Change **Meet Add-ons SDK**

**Early Access Preview** : Meet add-ons on Android now contains a new meeting status, `MEETING_WITH_START_COACTIVITY_PERMISSION_DISABLED`, which lets you set a status when the user doesn't have permission to start a co-activity session during a meeting.

## January 08, 2025

**Google Apps Script** Feature **Generally Available**: Granular OAuth permissions are now supported for users executing scripts in the Apps Script IDE. The granular OAuth consent screen lets users specify which individual OAuth scopes they would like to authorize. The granular consent screen will gradually launch to the remaining Apps Script surfaces, such as add-ons and trigger executions, in the future.

For more information, refer to the Workspace Updates blog post: [Granular OAuth consent in Google Apps Script IDE executions](https://workspaceupdates.googleblog.com/2025/01/granular-oauth-consent-in-google-apps-script.html).
Feature **Generally Available** : To complement the release of the granular consent flow in Apps Script IDE executions, the following methods have been added to the `ScriptApp` and `AuthorizationInfo` classes to let Apps Script developers programmatically interact with the scopes granted for a script.

[`ScriptApp` class](https://developers.google.com/apps-script/reference/script/script-app.md.txt):

- [`requireScopes(authMode, oAuthScopes)`](https://developers.google.com/apps-script/reference/script/script-app.md.txt#requirescopesauthmode,-oauthscopes)
- [`requireAllScopes(authMode)`](https://developers.google.com/apps-script/reference/script/script-app.md.txt#requireallscopesauthmode)
- [`getAuthorizationInfo(authMode, oAuthScopes)`](https://developers.google.com/apps-script/reference/script/script-app.md.txt#getauthorizationinfoauthmode,-oauthscopes)

[`AuthorizationInfo` class](https://developers.google.com/apps-script/reference/script/authorization-info.md.txt):

- [`getAuthorizedScopes()`](https://developers.google.com/apps-script/reference/script/authorization-info.md.txt#getauthorizedscopes)

For more information, refer to [Handle granular OAuth permissions](https://developers.google.com/apps-script/concepts/scopes.md.txt#handle-granular).

## December 27, 2024

**Google Workspace add-ons** Announcement When building Google Workspace Add-on user interfaces, the following functionality is now available:

- [`TextInput` Format Validation](https://developers.google.com/apps-script/reference/card-service/text-input.md.txt#setvalidationvalidation).
- Required inputs submission validation for `TextInput`, `DateTimePicker`, dropdown selector, and multiselect widgets. To learn more, see [`addRequiredWifget`](https://developers.google.com/apps-script/reference/card-service/action.md.txt#addrequiredwidgetrequiredwidget) and [`setAllWidgetsAreRequired`](https://developers.google.com/apps-script/reference/card-service/action.md.txt#setallwidgetsarerequiredallwidgetsarerequired).

## December 18, 2024

**Chat API** v1 Feature **Developer Preview:** Quick commands are a new way for users to invoke and interact with a Chat app directly without typing a slash command. For details, see [Respond to quick commands as a Google Chat app](https://developers.google.com/workspace/chat/quick-commands).
**Google Workspace add-ons** Breaking **Developer Preview** : To respond to slash commands, Chat apps must now use the [`AppCommandPayload`](https://developers.google.com/workspace/add-ons/chat/build#appcommandpayload) instead of a [`MessagePayload`](https://developers.google.com/workspace/add-ons/chat/build#messagepayload). To learn more, see [Respond to slash commands](https://developers.google.com/workspace/add-ons/chat/slash-commands#respond).
Feature **Developer Preview:** Quick commands are a new way for users to invoke and interact with a Chat app directly without typing a slash command. For details, see [Respond to quick commands in Google Chat](https://developers.google.com/workspace/add-ons/chat/quick-commands).

## December 16, 2024

**Chat API** v1 Feature **Developer Preview:** You can now design your Chat app to include a carousel, which is a layout that rotates and displays a list of cards in a slideshow format, with buttons navigating to the previous or next carousel card. For details, see [Carousel](https://developers.google.com/workspace/chat/api/reference/rest/v1/cards#carousel).
Feature **Developer Preview** : Chat apps can now create ([RPC](https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1.md.txt#google.chat.v1.ChatService.CreateSpace), [REST](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/create.md.txt)), update ([RPC](https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1.md.txt#google.chat.v1.ChatService.UpdateSpace), [REST](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/patch.md.txt)), and get details about ([RPC](https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1.md.txt#google.chat.v1.ChatService.GetSpace), [REST](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/get.md.txt)) Chat space [permission settings](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.md.txt#Space.PredefinedPermissionSettings) by calling the corresponding method in Chat API using app authentication with the `https://www.googleapis.com/auth/chat.app.spaces` or `https://www.googleapis.com/auth/chat.app.spaces.create` authentication scope, including creating announcement spaces.

To learn more about Chat app authentication, see [Types of required authentication](https://developers.google.com/workspace/chat/authenticate-authorize.md.txt#types-required) and [Authenticate as a Chat app](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app.md.txt).

## December 13, 2024

**Google Workspace add-ons** Announcement **Developer Preview**: You can now use the following widgets when building user interfaces for Add-ons:

- [Chip](https://developers.google.com/apps-script/reference/card-service/chip-list.md.txt)
- [Overflow menu](https://developers.google.com/apps-script/reference/card-service/overflow-menu.md.txt)
- [Material buttons](https://developers.google.com/apps-script/reference/card-service/text-button.md.txt#settextbuttonstyletextbuttonstyle)
- [Collapsible text paragraph](https://developers.google.com/apps-script/reference/card-service/text-paragraph.md.txt#setmaxlinesmaxlines)
- [Customizable control button of a collapsible section](https://developers.google.com/apps-script/reference/card-service/card-section.md.txt#setcollapsecontrolcollapsecontrol)

## December 09, 2024

**Google Apps Script** Deprecated The `getUrl()` method for the `CellImage`, `CellImageBuilder`, and `OverGridImage` classes of the [Spreadsheet service](https://developers.google.com/apps-script/reference/spreadsheet.md.txt) has been deprecated. An image's source URL isn't available regardless of how the image is inserted into a spreadsheet.
Feature **Generally available** : The [`getSheetById()`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#getsheetbyidid) 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.
Feature **Generally available**: You can now get and set the transparency of a calendar event, meaning whether the event shows as "Busy" or "Available" in Google Calendar. For more information, refer to the following documentation:

- [Enum `EventTransparency`](https://developers.google.com/apps-script/reference/calendar/event-transparency.md.txt)
- [Class `CalendarEvent`](https://developers.google.com/apps-script/reference/calendar/calendar-event.md.txt)
- [Class `CalendarEventSeries`](https://developers.google.com/apps-script/reference/calendar/calendar-event-series.md.txt)

## December 05, 2024

**Chat API** v1 Announcement **Developer Preview** : You can now build Google Chat apps as Google Workspace Add-ons. For details, see [Extend Google Chat](https://developers.google.com/workspace/add-ons/chat).
**Google Workspace Marketplace API** v1 Announcement **Developer Preview** : You can now build Google Chat apps as Google Workspace Add-ons. For details, see [Extend Google Chat](https://developers.google.com/workspace/add-ons/chat).
**Google Workspace add-ons** Announcement **Developer Preview** : You can now build Google Chat apps as Google Workspace Add-ons. For details, see [Extend Google Chat](https://developers.google.com/workspace/add-ons/chat).

## December 03, 2024

**Chat API** v1 Change Chat apps now have 90 days to complete the import of data. Previously, Chat apps had 30 days. To learn more, see
[Import data to Google Chat](https://developers.google.com/workspace/chat/import-data.md.txt).

## November 27, 2024

**Google Apps Script** Feature The Calendar service now has a `getEventType()` method that lets developers differentiate regular events from other types of events like out-of-office and working location events. For more information, see the following documentation:

- [`getEventType()` for events](https://developers.google.com/apps-script/reference/calendar/calendar-event.md.txt#getEventType())
- [`getEventType()` for event series](https://developers.google.com/apps-script/reference/calendar/calendar-event-series.md.txt#getEventType())
- [`EventType` enum](https://developers.google.com/apps-script/reference/calendar/event-type.md.txt)

## November 19, 2024

**Google Calendar API** v3 Feature You can now access birthday and other special events that are automatically created from Google Contacts using the Calendar API.

Birthday events now have [`birthdayProperties`](https://developers.google.com/calendar/api/v3/reference/events#birthdayProperties) that show birthday-specific event data, such as the type of the special event, whether it's a birthday, an anniversary, or another significant date, and the contact that the event is linked to. You can use the [contact](https://developers.google.com/calendar/api/v3/reference/events#birthdayProperties.contact) as a resource name in the [People API](https://developers.google.com/people.md.txt) to fetch contact details.

To learn more, see the [developer guide for the birthday event type](https://developers.google.com/calendar/api/guides/event-types#birthday).

## November 05, 2024

**Chat API** v1 Feature **Generally Available** : If you're migrating to Google Chat from other messaging platforms, you can now create a group chat in [import mode](https://developers.google.com/workspace/chat/import-data.md.txt#create-space) using the [`spaces.create`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/create.md.txt) method.

## November 04, 2024

**Chat API** v1 Feature **Developer Preview** : You can now use a read-only scope (`https://www.googleapis.com/auth/chat.customemojis.readonly`) to [`get`](https://developers.google.com/workspace/chat/api/reference/rest/v1/customEmojis/get.md.txt) or [`list`](https://developers.google.com/workspace/chat/api/reference/rest/v1/customEmojis/list.md.txt) custom emoji.

## October 30, 2024

**Chat API** v1 Feature **Developer Preview** : You can now call the Chat API to get or update a user's space notification settings. To learn more, see the [`spaceNotificationSetting` reference documentation](https://developers.google.com/workspace/chat/api/reference/rest/v1/users.spaces.spaceNotificationSetting.md.txt).

## October 24, 2024

**Chat API** v1 Feature **Generally Available**: The following widgets are now available for building card-based user interfaces:

- [Chip](https://developers.google.com/workspace/chat/api/reference/rest/v1/cards#Message.ChipList)
- [Overflow Menu](https://developers.google.com/workspace/chat/api/reference/rest/v1/cards#Message.OverflowMenu)
- [Material Buttons](https://developers.google.com/workspace/chat/api/reference/rest/v1/cards#Message.Type)
- [Collapsible Text paragraph](https://developers.google.com/workspace/chat/api/reference/rest/v1/cards#textparagraph)
- [Customizable control button of collapsible Section](https://developers.google.com/workspace/chat/api/reference/rest/v1/cards#Message.Section_1)

Chat apps can use these widgets in card messages, homepages, and dialogs. For examples, see [Design an interactive card or dialog](https://developers.google.com/workspace/chat/design-interactive-card-dialog.md.txt).

## October 10, 2024

**Chat API** v1 Feature **Developer Preview** : When [creating custom emoji is turned on](https://support.google.com/chat/answer/12800149) for a Workspace organization, you can now call Chat API to manage custom emoji:

- Create custom emoji ([RPC](https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1.md.txt#google.chat.v1.ChatService.CreateCustomEmoji), [REST](https://developers.google.com/workspace/chat/api/reference/rest/v1/customEmojis/create.md.txt))
- Delete custom emoji ([RPC](https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1.md.txt#google.chat.v1.ChatService.DeleteCustomEmoji), [REST](https://developers.google.com/workspace/chat/api/reference/rest/v1/customEmojis/delete.md.txt))
- Get custom emoji ([RPC](https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1.md.txt#google.chat.v1.ChatService.GetCustomEmoji), [REST](https://developers.google.com/workspace/chat/api/reference/rest/v1/customEmojis/get.md.txt))
- List custom emoji ([RPC](https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1.md.txt#google.chat.v1.ChatService.ListCustomEmojis), [REST](https://developers.google.com/workspace/chat/api/reference/rest/v1/customEmojis/list.md.txt))

To learn more, see `CustomEmoji` ([RPC](https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1.md.txt#google.chat.v1.CustomEmoji), [REST](https://developers.google.com/workspace/chat/api/reference/rest/v1/customEmojis.md.txt)) in the Chat API documentation.

## October 08, 2024

**Google Workspace add-ons** Feature **Generally Available** : Google Sheets now supports smart chips for link previews to third-party resources. To learn more, see
[Preview links with smart chips](https://developers.google.com/workspace/add-ons/guides/preview-links-smart-chips.md.txt).

## October 07, 2024

**Google Meet** Change **Meet Add-ons SDK**

**Generally Available** : You can now retrieve the `meetingCode` property of an ongoing meeting. This is applicable in version 1.1.0.

## October 02, 2024

**Chat API** v1 Feature **Generally available:** You can now call the Chat API to create [announcement spaces](https://support.google.com/chat/answer/7659784), and read and update the [permission settings](https://support.google.com/chat/answer/13340792) of a space. For more information, see the following reference documentation:

- [`PredefinedPermmissionSettings`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.md.txt#predefinedpermissionsettings) field for the `Spaces` resource
- [`PermissionSettings`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.md.txt#permissionsettings) field for the `Spaces` resource
**Google Apps Script** Announcement Apps Script has rescheduled the shutdown date of the Contacts service to January 31, 2025. Refer to the [Apps Script sunset schedule](https://developers.google.com/apps-script/guides/support/sunset.md.txt).

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](https://developers.google.com/apps-script/migration/contacts-people.md.txt).

## September 30, 2024

**Chat API** v1 Feature **Developer Preview** : The following Chat API methods support app authentication using a new type of authentication scope, `https://www.googleapis.com/auth/chat.app.*`:

- [Create a named space as a Chat app](https://developers.google.com/workspace/chat/create-spaces.md.txt#create-named-app-auth) with `https://www.googleapis.com/auth/chat.app.spaces` or `https://www.googleapis.com/auth/chat.app.spaces.create`.
- [Update a space as a Chat app](https://developers.google.com/workspace/chat/update-spaces.md.txt#update-space-app-auth) with `https://www.googleapis.com/auth/chat.app.spaces`.
- [Delete a named space as a Chat app](https://developers.google.com/workspace/chat/delete-spaces.md.txt#delete-named-app-auth) with `https://www.googleapis.com/auth/chat.app.delete`.
- [Get details about a space as a Chat app](https://developers.google.com/workspace/chat/get-spaces.md.txt#get-space) with `https://www.googleapis.com/auth/chat.app.spaces`.
- [Invite or add a user to a space as a Chat app](https://developers.google.com/workspace/chat/create-members.md.txt#create-user-membership-app-auth) with `https://www.googleapis.com/auth/chat.app.memberships`.
- [Update a membership as a Chat app](https://developers.google.com/workspace/chat/update-members.md.txt#update-membership) with `https://www.googleapis.com/auth/chat.app.memberships`.
- [Remove a member from a space](https://developers.google.com/workspace/chat/delete-members.md.txt#delete-membership-app-auth) with `https://www.googleapis.com/auth/chat.app.memberships`.

To learn more, see [Types of required authentication](https://developers.google.com/workspace/chat/authenticate-authorize.md.txt#types-required) and [Authenticate as a Chat app](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app.md.txt).

## September 17, 2024

**Google Workspace Events API** v1 Feature **(Generally available)** - For event subscriptions, you can now use the `eventTypes` field in the `updateMask` parameter of the [`subscriptions.patch`](https://developers.google.com/workspace/events/reference/rest/v1/subscriptions/patch.md.txt) method to change the event types to receive for the target resource.

## September 13, 2024

**Google Drive API** v3 Feature The Google Drive API returns a long-running operation (LRO) every time you call the [`files.download`](https://developers.google.com/drive/api/reference/rest/v3/files/download) method to download blob file content or export Google Workspace document content either through the Drive API or its client libraries.

The `files.download` method returns an [`Operation`](https://cloud.google.com/service-infrastructure/docs/service-management/reference/rpc/google.longrunning#operation) resource to the client. You can use the `Operation` interface to asynchronously retrieve the status of the API method by polling the operation through the [`GetOperationRequest`](https://cloud.google.com/service-infrastructure/docs/service-management/reference/rpc/google.longrunning#getoperationrequest) method.

The `files.download` method is the only way to download Google Vids files in MP4 format and is typically best suited to downloading most video files.

To learn more, see [Manage long-running operations](https://developers.google.com/drive/api/guides/long-running-operations).

## September 12, 2024

**Google Workspace Marketplace API** v1 Change **Generally Available** : Google Workspace Marketplace supports draft app listings. With a draft listing, you can make changes to your app listing and then preview and test the changes before publishing them. While your draft changes are in testing, the original app listing remains available on the Google Workspace Marketplace. To learn more, see [Update your app listing with drafts](https://developers.google.com/workspace/marketplace/manage-app-listing.md.txt#draft-app-listing).

## September 11, 2024

**Chat API** v1 Feature **Generally Available** : The `chatSpaceLinkData` object has been added to the `RichLinkMetaData` field of the [`spaces.messages`](https://developers.google.com//workspace/chat/api/reference/rest/v1/spaces.messages) resource. This lets you add a smart chip to your message that points to a Chat space in any field that supports formatted text.
Feature **Generally Available:** Google Workspace administrators can now call the Google Chat API to manage and search Google Chat spaces across their organization. This functionality lets them manage spaces at scale and automate common or repeatable tasks, such as the following:

- [Search](https://developers.google.com/workspace/chat/search-manage-admin.md.txt) spaces based on specified criteria
- [List members](https://developers.google.com/workspace/chat/list-members.md.txt) of a space
- [Add members](https://developers.google.com/workspace/chat/create-members.md.txt) to and [remove members](https://developers.google.com/workspace/chat/delete-members.md.txt) from a space
- Get details about a [member](https://developers.google.com/workspace/chat/get-members.md.txt) and a [space](https://developers.google.com/workspace/chat/get-spaces.md.txt)
- [Update](https://developers.google.com/workspace/chat/update-spaces.md.txt) or [delete](https://developers.google.com/workspace/chat/delete-spaces.md.txt) a space
- [Update a user's membership](https://developers.google.com/workspace/chat/update-members.md.txt)

For more information about managing spaces, read the documentation at [Manage Google Chat spaces as a Google Workspace administrator](https://developers.google.com/workspace/chat/admin-overview.md.txt).

For more information about searching spaces, read the documentation at [Search for and manage Google Chat spaces for your Google Workspace organization](https://developers.google.com/workspace/chat/search-manage-admin.md.txt).

## September 10, 2024

**Chat API** v1 Feature **Developer Preview** : If you're migrating to Google Chat from other messaging platforms, you can now create a group chat in [import mode](https://developers.google.com/workspace/chat/import-data.md.txt#create-space) using the [`spaces.create`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/create.md.txt) method.

## September 09, 2024

**Google Meet** Announcement **Meet Add-ons SDK**

**Generally Available** : The [Google Meet Add-ons SDK](https://developers.google.com/meet/add-ons/guides/overview) is now generally available.

The Meet Add-ons SDK lets you embed your app into Google Meet as a Google Workspace Add-on where users can discover, share, and collaborate, plus sync content state across devices, without leaving Meet.

For more information, see the [guides](https://developers.google.com/meet/add-ons/guides/overview) and [reference documentation](https://developers.google.com/meet/add-ons/reference/websdk/addon_sdk).

## September 03, 2024

**Google Apps Script** Feature **Generally available** : You can now use Looker in [Connected Sheets](https://developers.google.com/apps-script/guides/sheets/connected-sheets.md.txt) from Apps Script. This update lets you create a new or access existing Looker data source connections, connect a sheet to them, create pivot tables, and more.

The following updates have been made to the [`Spreadsheet` service](https://developers.google.com/apps-script/reference/spreadsheet.md.txt) to support Looker in Connected Sheets from Apps Script.

- The following new data source type has been added:
  - [`LOOKER`](https://developers.google.com/apps-script/reference/spreadsheet/data-source-type.md.txt)
- The following new classes have been added:
  - [`LookerDataSourceSpec`](https://developers.google.com/apps-script/reference/spreadsheet/looker-data-source-spec.md.txt)
  - [`LookerDataSourceSpecBuilder`](https://developers.google.com/apps-script/reference/spreadsheet/looker-data-source-spec-builder.md.txt)
- The following new methods have been added to existing classes:
  - [`DataSourceSpec.asLooker()`](https://developers.google.com/apps-script/reference/spreadsheet/data-source-spec.md.txt#aslooker)
  - [`DataSourceSpecBuilder.asLooker()`](https://developers.google.com/apps-script/reference/spreadsheet/data-source-spec-builder.md.txt#aslooker)

## August 16, 2024

**Chat API** v1 Libraries **Generally Available**: You can now call Chat API using Cloud Client Libraries in addition to the already available Google API Client Libraries.

Benefits of Cloud Client Libraries include:

- Idiomatic code that follows your preferred language's natural conventions and styles.
- Consistent style across client libraries.
- Handling the low-level details of server communication, including authentication, pagination, long-running operations, streams, and retries.
- Installable using package management tools like `npm` and `pip`.
- Improved performance in some cases, thanks to gRPC.

Additionally, our Chat API reference documentation now features a [RPC reference](https://developers.google.com/workspace/chat/api/reference/rpc.md.txt) arranged by services and their methods in addition to our existing [REST reference](https://developers.google.com/workspace/chat/api/reference/rest.md.txt) arranged by resource hierarchies and their methods.

To learn more, see [Install client libraries](https://developers.google.com/workspace/chat/libraries.md.txt).

## August 15, 2024

**Google Apps Script** Feature **Generally Available** : You can now create and organize tabs in Google Docs documents using Apps Script's Document service. For more information, refer to [Work with tabs](https://developers.google.com/apps-script/guides/docs/tabs.md.txt).

## August 08, 2024

**Google Meet** Change **Meet Add-ons SDK**

[Developer Preview](https://developers.google.com/workspace/preview.md.txt): Add-ons can now programmatically end a collaboration by calling the [`endCollaboration`](https://developers.google.com/meet/add-ons/reference/websdk/addon_sdk.meetaddonclient.endcollaboration.md) method for the `MeetMainStageClient` or the `MeetSidePanelClient`. This is applicable in version `0.9.0` or later.

## August 07, 2024

**Chat API** v1 Feature **Developer Preview**: The following widgets are now available for building card-based user interfaces:

- [Chip](https://developers.google.com/workspace/chat/api/reference/rest/v1/cards#Message.ChipList)
- [Overflow Menu](https://developers.google.com/workspace/chat/api/reference/rest/v1/cards#Message.OverflowMenu)
- [Material Buttons](https://developers.google.com/workspace/chat/api/reference/rest/v1/cards#Message.Type)
- [Collapsible Text paragraph](https://developers.google.com/workspace/chat/api/reference/rest/v1/cards#textparagraph)
- [Customizable control button of collapsible Section](https://developers.google.com/workspace/chat/api/reference/rest/v1/cards#Message.Section_1)

Chat apps can use these widgets in card messages, homepages, and dialogs. For examples, see [Design an interactive card or dialog](https://developers.google.com/workspace/chat/design-interactive-card-dialog.md.txt).
**Google Apps Script** Change Google Workspace administrators can now turn on an allowlist in the admin console to control which external domains users can access through Apps Script's [URL Fetch service](https://developers.google.com/apps-script/reference/url-fetch.md.txt).

- If you're using a script or add-on that accesses external domains, work with your administrator to add those URLs to the admin allowlist.
- If you've published an add-on on the Google Workspace Marketplace, it might be helpful to list the URLs that admins should add to their allowlist on your Marketplace listing.

For more information, refer to the Google Workspace Admin Help article: [Allow only certain external connections for Apps Script and Sheets](https://knowledge.workspace.google.com/admin/drive/allow-only-certain-external-connections-for-apps-script-and-sheets).
**Google Workspace add-ons** Change Google Workspace administrators can now turn on an allowlist in the admin console to control which external domains users can access through Apps Script's [URL Fetch service](https://developers.google.com/apps-script/reference/url-fetch.md.txt).

- If you're using a script or add-on that accesses external domains, work with your administrator to add those URLs to the admin allowlist.
- If you've published an add-on on the Google Workspace Marketplace, it might be helpful to list the URLs that admins should add to their allowlist on your Marketplace listing.

For more information, refer to the Google Workspace Admin Help article: [Allow only certain external connections for Apps Script and Sheets](https://support.google.com/a/answer/13686736).

## August 05, 2024

**Google Calendar API** v3 Feature **Generally available starting September 17, 2024:** Create and manage birthdays directly within Google Calendar. Birthdays are exposed in the Calendar API as a new [`eventType`](https://developers.google.com/calendar/api/v3/reference/events#eventType) called `"birthday"` which distinguishes special all-day events with an annual recurrence. Birthday events support a limited set of event properties.

You can filter by the birthday event type using the [`events.list()`](https://developers.google.com/calendar/api/v3/reference/events/list) and [`events.watch()`](https://developers.google.com/calendar/api/v3/reference/events/watch) methods. If no type filters are specified, all event types including birthdays are returned.

To learn more, see our [developer guide about working with the birthday event type](https://developers.google.com/calendar/api/guides/event-types#birthday).

## July 29, 2024

**Google Docs API** v1 Feature **Generally available** : You can now create and organize documents with tabs using the Google Docs API. For more information, see [Work with tabs](https://developers.google.com/docs/api/how-tos/tabs).

## July 25, 2024

**Google Apps Script** Feature (**Generally Available**): Multiselect menus are now generally available for Add-ons.

For more information refer to the following:

- [`SelectionInput` for Apps Script](https://developers.google.com/apps-script/reference/card-service/selection-input.md.txt)
- [`SelectionInput` for HTTP runtimes](https://developers.google.com/workspace/add-ons/reference/rpc/google.apps.card.v1.md.txt#selectioninput)
Feature (**Generally Available**): Columns are now generally available for Add-ons.

For more information refer to the following:

- [`Columns` for Apps Script](https://developers.google.com/apps-script/reference/card-service/columns.md.txt)
- [`Columns` for HTTP runtimes](https://developers.google.com/workspace/add-ons/reference/rpc/google.apps.card.v1.md.txt#columns)
**Google Workspace add-ons** Feature (**Generally Available**): Multiselect menus are now generally available for Add-ons.

For more information refer to the following:

- [`SelectionInput` for Apps Script](https://developers.google.com/apps-script/reference/card-service/selection-input.md.txt)
- [`SelectionInput` for HTTP runtimes](https://developers.google.com/workspace/add-ons/reference/rpc/google.apps.card.v1.md.txt#selectioninput)
Feature (**Generally Available**): Columns are now generally available for Add-ons.

For more information refer to the following:

- [`Columns` for Apps Script](https://developers.google.com/apps-script/reference/card-service/columns.md.txt)
- [`Columns` for HTTP runtimes](https://developers.google.com/workspace/add-ons/reference/rpc/google.apps.card.v1.md.txt#columns)

## July 23, 2024

**Google Tasks API** v1 Feature **Generally Available** : You can now get, edit, and delete tasks assigned from Google Docs documents or Chat spaces using the Tasks API. For more information, refer to the [tasks reference documentation](https://developers.google.com/tasks/reference/rest/v1/tasks.md.txt).

## July 11, 2024

**Google Drive API** v3 Feature The Google Drive API now supports the `drive.meet.readonly` scope. This restricted scope lets you view Drive files created or edited by Google Meet.

For details, see [Choose Google Drive API scopes](https://developers.google.com/drive/api/guides/api-specific-auth).

## July 08, 2024

**Chat API** v1 Feature **Generally Available:** You can now import a space from other messaging platforms, and allow external users to join that Chat space. For more information, see the [`externalUserAllowed` option](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.md.txt#Space.FIELDS.external_user_allowed).
Feature **Generally Available** : When building Chat apps using Google Cloud Functions, Cloud Run, or any system that supports authentication via ID tokens, you can now [Authenticate requests using Cloud Functions or Cloud Run](https://developers.google.com/workspace/chat/verify-requests-from-chat.md.txt#verify-cloud-function) or [Authenticate requests with an App URL ID Token](https://developers.google.com/workspace/chat/verify-requests-from-chat.md.txt#verify-app-url) to verify that the requests to your app came from Google Chat.

## July 03, 2024

**Chat API** v1 Feature **Generally Available** : You can now call the Chat API to [Make a Google Chat space discoverable to specific users in a Google Workspace organization](https://developers.google.com/workspace/chat/space-target-audience.md.txt) using the [`accessSettings`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.md.txt#Space.FIELDS.access_settings) field on the `Space` resource. You can read the URI of the space using the [`spaceUri`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.md.txt#Space.FIELDS.space_uri) field.

## June 28, 2024

**Chat API** v1 Feature **(Generally Available)** : [Dialogflow CX Chat apps](https://developers.google.com/workspace/chat/build-dialogflow-chat-app-natural-language.md.txt) can open dialogs and receive data inputted by users in card messages and dialogs.

## June 26, 2024

**Chat API** v1 Feature **(Developer Preview)** : You can now use the Chat API to create announcement spaces, plus read and update the permission settings of a space. For more information, see the [`PredefinedPermissionSettings`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.md.txt#Space.FIELDS.predefined_permission_settings) and [`PermissionSettings`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.md.txt#Space.PermissionSettings) fields.
**Google Workspace Marketplace API** v1 Change **Developer Preview** : Google Workspace Marketplace now supports draft app listings. With a draft listing, you can make changes to your app listing and then preview and test the changes before publishing them. While your draft changes are in testing, the original app listing remains available on the Google Workspace Marketplace. To learn more, see [Update your app listing with drafts](https://developers.google.com/workspace/marketplace/manage-app-listing.md.txt#update_your_app_listing_with_drafts).

## June 25, 2024

**Chat API** v1 Feature **(Generally Available):** You can now add a Google Group to a Chat space using the [`spaces.members.create`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.members/create.md.txt) method or the [`spaces.setup`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/setup.md.txt) method. You can remove a Google Group from a space using the [`spaces.members.delete`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.members/delete.md.txt) method.

## June 24, 2024

**Chat API** v1 Feature Google Chat apps can now create a subscription to receive events for all Chat spaces where the user is a member. To target all spaces for a user, set the subscription's `targetResource` field to `//chat.googleapis.com/spaces/-`. To learn more, see [Subscribe to Google Chat events](https://developers.google.com/workspace/events/guides/events-chat.md.txt#supported_target_resources).
**Google Workspace Events API** v1 Feature Google Chat apps can now create a subscription to receive events for all Chat spaces where the user is a member. To target all spaces for a user, set the subscription's `targetResource` field to `//chat.googleapis.com/spaces/-`. To learn more, see [Subscribe to Google Chat events](https://developers.google.com/workspace/events/guides/events-chat.md.txt#supported_target_resources).

## June 18, 2024

**Chat API** v1 Feature **(Developer Preview)** : If you're a domain administrator or a delegated administrator, you can now include the `useAdminAccess` parameter when you call the Chat API with your administrator privileges with the following methods to manage Chat spaces and memberships in your Workspace organization:

- [Get a space](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/get.md.txt)
- [Update a space](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/patch.md.txt)
- [Get a member](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.members/get.md.txt)
- [Update a member](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.members/patch.md.txt)

To learn more, see [Authenticate and authorize using administrator privileges](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user.md.txt#admin-privileges).

## June 13, 2024

**Google Meet** Announcement **Meet API**

[Developer Preview](https://developers.google.com/workspace/preview.md.txt): The Meet API now lets you pre-configure a meeting space and manage the members who join a meeting.

For more information, see [Configure meeting spaces and members](https://developers.google.com/meet/api/guides/beta/configuration-beta).
Change **Meet Add-ons SDK**

**Early Access Preview**: For Meet add-ons on Android, you can now view and reference specific error codes from add-on exception errors.

## June 03, 2024

**Google Meet** Change **Meet Add-ons SDK**

[Developer Preview](https://developers.google.com/workspace/preview.md.txt): Google Meet Add-ons SDK supports two usability improvements that aren't backwards compatible and require developer action.

1. The introduction of an add-on loading screen. Make sure to call `createAddonSession` on both the main stage and side panel once your add-on has finished loading. This signals Meet to dismiss the loading screen.

2. The removal of the `startActivity` button in the Meet side panel. Instead, the add-on now starts the activity through a call to `startCollaboration`. Make sure to call `startCollaboration` in your add-on once the user has completed content selection and is ready to start the collaboration.

## May 29, 2024

**Google Meet** Change **Meet Add-ons SDK**

- Added the connection exception `addonexception.ADDON_NOT_INSTALLED`. To fix this error, display a message to the user that they must install the add-on and provide a link to the Google Workspace Marketplace page containing the add-on.

## May 22, 2024

**Chat API** v1 Feature **(Developer Preview)** : If you're a domain administrator or a delegated administrator, you can now include the `useAdminAccess` parameter when you call the Chat API with your administrator privileges to manage Chat spaces and memberships in your organization. The following API methods are supported:

- [Search spaces](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search.md.txt)
- [Delete spaces](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/delete.md.txt)
- [List memberships](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.members/list.md.txt)
- [Create memberships](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.members/create.md.txt)
- [Delete memberships](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.members/delete.md.txt)

To learn more, see [Authenticate and authorize using administrator privileges](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user.md.txt#admin-privileges).
**Google Calendar API** v3 Change The following changes to [events from Gmail](https://support.google.com/calendar/answer/6084018) take effect on **May 30, 2024**:

- Events from Gmail use `fromGmail` instead `default` as the value for the [`eventType`](https://developers.google.com/calendar/api/v3/reference/events/watch#eventTypes) field. You can filter by this new event type using the [`events.list()`](https://developers.google.com/calendar/api/v3/reference/events/list) and [`events.watch()`](https://developers.google.com/calendar/api/v3/reference/events/watch) methods.
- Events from Gmail use the email address of the email recipient as the event organizer instead of `unknownorganizer@calendar.google.com`.
- You can only update the event [properties](https://developers.google.com/calendar/api/v3/reference/events/update#request-body), such as reminders, color ID, visibility, status, and extended properties of `Event` resources with the event type `fromGmail`.

For details, see the Calendar API [`Events` reference documentation](https://developers.google.com/calendar/api/v3/reference/events).

## May 21, 2024

**Chat API** v1 Change **(Developer Preview)** : [Dialogflow CX Chat apps](https://developers.google.com/workspace/chat/build-dialogflow-chat-app-natural-language.md.txt) can open dialogs and receive data inputted by users in card messages and dialogs.

## May 17, 2024

**Google Calendar API** v3 Change The following change takes effect on **June 3, 2024**:

For [batch operations](https://developers.google.com/calendar/api/guides/batch) on [`Event`](https://developers.google.com/calendar/api/v3/reference/events) resources, a batched item returns an HTTP `409 Conflict` status code if the batch operation can't successfully execute this item due to conflicts with other requested batched items.

**Suggested action:** Exclude all successfully finished and failed batched items and retry remaining items in a different batch operation or by using single event operations.

For more information, see [Handle API errors](https://developers.google.com/calendar/api/guides/errors#409_conflict).

## May 09, 2024

**Google Meet** Change **Live Sharing SDK**

- Added the `withCoWatching` and `withCoDoing` methods to allow both first party and third party apps to include the initial state of the add-on session.

- Added a new `AddonException` of `OPERATION_UNSUPPORTED`. The exception occurs when requesting an unsupported operation on Meet.

## May 02, 2024

**Google Apps Script** Feature To subscribe to events using Apps Script, you can now use the Advanced Google Workspace Events service. For details, see the [Apps Script reference documentation](https://developers.google.com/apps-script/advanced/events.md.txt).
**Google Workspace Events API** v1 Announcement To subscribe to events using Apps Script, you can now use the Advanced Google Workspace Events service. For details, see the [Apps Script reference documentation](https://developers.google.com/apps-script/advanced/events.md.txt).

## April 30, 2024

**Google Apps Script** Feature The `cancelDataRefresh()` method has been added to the following classes of the Spreadsheet service:

- [`DataSourceChart`](https://developers.google.com/apps-script/reference/spreadsheet/data-source-chart.md.txt#canceldatarefresh)
- [`DataSourceFormula`](https://developers.google.com/apps-script/reference/spreadsheet/data-source-formula.md.txt#canceldatarefresh)
- [`DataSourcePivotTable`](https://developers.google.com/apps-script/reference/spreadsheet/data-source-pivot-table.md.txt#canceldatarefresh)
- [`DataSourceSheet`](https://developers.google.com/apps-script/reference/spreadsheet/data-source-sheet.md.txt#canceldatarefresh)
- [`DataSourceTable`](https://developers.google.com/apps-script/reference/spreadsheet/data-source-table.md.txt#canceldatarefresh)

The `cancelDataRefresh()` method cancels the data refresh associated with the object it's called on if the refresh is currently running.

The [`cancelAllLinkedDataSourceObjectRefreshes()`](https://developers.google.com/apps-script/reference/spreadsheet/data-source.md.txt#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.

## April 25, 2024

**Chat API** v1 Feature **(Generally available):** You can now get and update a user's read state in a space, and get a user's read state in a message thread. User read states are singleton resources that represent details about a specified user's last read message.

The [`users.spaces` resource](https://developers.google.com/workspace/chat/api/reference/rest/v1/users.spaces.md.txt) represents a user's read state in a space. The [`users.spaces.threads` resource](https://developers.google.com/workspace/chat/api/reference/rest/v1/users.spaces.threads.md.txt) represents a user's read state in a message thread.

User read states support the following methods:

- [Get space read state](https://developers.google.com/workspace/chat/get-space-read-state.md.txt) to return details about a user's read state within a space.

- [Update space read state](https://developers.google.com/workspace/chat/update-space-read-state.md.txt) to update a user's read state within a space.

- [Get thread read state](https://developers.google.com/workspace/chat/get-thread-read-state.md.txt) to return details about a user's read state within a thread.

## April 24, 2024

**Chat API** v1 Feature **(Generally Available):** Build a Chat app that understands and responds with natural language using a direct integration between Dialogflow CX and Google Chat API. To learn how, see [Build a Dialogflow CX Google Chat app](https://developers.google.com/workspace/chat/build-dialogflow-chat-app-natural-language.md.txt).

## April 23, 2024

**Chat API** v1 Feature **(Generally available)**: Your Chat app can now send an app home card message to a user. This message is a customizable card message that a Chat app sends to a user when they open a direct message with the Chat app.

For details, see [Send an app home card message for a Google Chat app](https://developers.google.com/workspace/chat/send-app-home-card-message.md.txt).

## April 22, 2024

**Chat API** v1 Feature **(Generally Available)** : 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](https://developers.google.com/apps-script/reference/card-service.md.txt).
**Google Apps Script** Feature **(Generally Available)** : 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](https://developers.google.com/apps-script/reference/card-service.md.txt).

## April 18, 2024

**Chat API** v1 Feature **(Generally available)** : You can now update a human user's membership in a Chat space to change their role between regular member and space manager using the [`spaces.members.patch`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.members/patch.md.txt) method. To learn more, see [Update a user's membership in a Google Chat space](https://developers.google.com/workspace/chat/update-members.md.txt).

## April 08, 2024

**Chat API** v1 Feature (**Developer Preview** ): You can now import a space from other messaging platforms, and allow external users to join that space. For more information, see the [`externalUserAllowed` option](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.md.txt#Space.FIELDS.external_user_allowed).

## March 28, 2024

**Chat API** v1 Announcement **(Generally available)**: Google Chat apps can get, list, and subscribe to events. To receive events, you can do the following:

- Use the `get()` and `list()` methods on the `spaces.spaceEvents` resource of the Google Chat API.
- Create subscriptions to events about users and spaces using Google Workspace Events API.

To learn more, see [Work with events from Google Chat](https://developers.google.com/workspace/chat/events-overview.md.txt).
Announcement Events about deleted messages are now supported (Event type: `google.workspace.chat.message.v1.deleted`).
**Google Workspace Events API** v1 Announcement **(Generally available)** : Subscriptions to Google Chat spaces and users are now generally available. To learn more, see [Subscribe to Google Chat events](https://developers.google.com/workspace/events/guides/events-chat.md.txt).
Announcement Events about deleted messages are now supported (Event type: `google.workspace.chat.message.v1.deleted`).

## March 20, 2024

**Chat API** v1 Feature **(Generally available)** : Google Chat apps can now use accessory widgets, which are interactive widgets that appear at the bottom of a message. For details, see [Send a message](https://developers.google.com/workspace/chat/create-messages.md.txt#add-accessory-widgets).

## March 15, 2024

**Google Apps Script** Change The default property for the [`TextButtonStyle` enum](https://developers.google.com/apps-script/reference/card-service/text-button-style.md.txt) in the Apps Script [Card Service](https://developers.google.com/apps-script/reference/card-service/card-service.md.txt) has been renamed from `TEXT` to `OUTLINED` to align with the [Google Material 3 design system](https://m3.material.io/components/buttons/guidelines#3742b09f-c224-43e0-a83e-541bd29d0f05). Existing scripts that use the original default, `TEXT`, render the same as the new default, `OUTLINED`.
**Google Workspace add-ons** Change The default property for the [`TextButtonStyle` enum](https://developers.google.com/apps-script/reference/card-service/text-button-style.md.txt) in the Apps Script [Card Service](https://developers.google.com/apps-script/reference/card-service/card-service.md.txt) has been renamed from `TEXT` to `OUTLINED` to align with the [Google Material 3 design system](https://m3.material.io/components/buttons/guidelines#3742b09f-c224-43e0-a83e-541bd29d0f05). Existing scripts that use the original default, `TEXT`, render the same as the new default, `OUTLINED`.

## March 13, 2024

**Chat API** v1 Feature **(Developer Preview)** : You can now `get` or `list` events about a Google Chat space. For example, you can track periodic resource changes, such as monthly reports of new or changed members in a space, or fetch events that are missing from subscriptions using the Google Workspace Events API.

The following types of space events are supported:

- A message is created or updated.
- A member is added, updated, or removed.
- The space is updated.

For more information, see the following:

- [Work with events from Google Chat](https://developers.google.com/workspace/chat/events-overview.md.txt).
- [Get details about an event in a space](https://developers.google.com/workspace/chat/get-space-event.md.txt).
- [List events from a space](https://developers.google.com/workspace/chat/list-space-events.md.txt).

## March 07, 2024

**Google Apps Script** Feature **(Generally Available)** : You can now delete multiple unused versions at the same time from the Project History page. Refer to [Delete multiple versions](https://developers.google.com/apps-script/guides/versions.md.txt#bulk-delete).

## March 05, 2024

**Chat API** v1 Feature **(Developer Preview)** : Build a Chat app that understands and responds with natural language using a direct integration between Dialogflow CX and Google Chat API. To learn how, see [Build a Dialogflow CX Google Chat app](https://developers.google.com/workspace/chat/build-dialogflow-chat-app-natural-language.md.txt).
**Google Apps Script** Feature **(Generally Available)** : The [`LinkPreview`](https://developers.google.com/apps-script/reference/card-service/link-preview.md.txt) 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.
**Google Workspace add-ons** Feature **(Generally Available)** : The [`LinkPreview`](https://developers.google.com/apps-script/reference/card-service/link-preview.md.txt) 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.

## March 04, 2024

**Chat API** v1 Feature **(Generally available)** : The `formattedText` field on the [`Message`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages.md.txt) resource includes the markup syntax for bulleted list text formatting. For more information, see [Format a text message](https://developers.google.com/workspace/chat/format-messages.md.txt#format-texts).

## February 29, 2024

**Google Apps Script** Announcement The 200 version limit, first announced for new scripts on [December 6, 2023](https://developers.google.com/apps-script/docs/release-notes#December_06_2023), has been extended to all script projects. If your existing script project already has more than 200 versions, after June 1, 2024 you won't be able to add a new version. To delete unused versions, refer to [Delete a version](https://developers.google.com/apps-script/guides/versions.md.txt#delete-version).

## February 21, 2024

**Google Apps Script** Feature (**Developer Preview**): Multiselect menus are now in Developer Preview for Add-ons.

For more information refer to the following:

- [`SelectionInput` for Apps Script](https://developers.google.com/apps-script/reference/card-service/selection-input.md.txt)
- [`SelectionInput` for other runtimes](https://developers.google.com/workspace/add-ons/reference/rpc/google.apps.card.v1.md.txt#selectioninput)
Feature (**Developer Preview**): Columns are now in Developer Preview for Add-ons.

For more information refer to the following:

- [`Columns` for Apps Script](https://developers.google.com/apps-script/reference/card-service/columns.md.txt)
- [`Columns` for other runtimes](https://developers.google.com/workspace/add-ons/reference/rpc/google.apps.card.v1.md.txt#columns)
**Google Workspace add-ons** Feature (**Developer Preview**): Multiselect menus are now in Developer Preview for Add-ons.

For more information refer to the following:

- [`SelectionInput` for Apps Script](https://developers.google.com/apps-script/reference/card-service/selection-input.md.txt)
- [`SelectionInput` for other runtimes](https://developers.google.com/workspace/add-ons/reference/rpc/google.apps.card.v1.md.txt#selectioninput)
Feature (**Developer Preview**): Columns are now in Developer Preview for Add-ons.

For more information refer to the following:

- [`Columns` for Apps Script](https://developers.google.com/apps-script/reference/card-service/columns.md.txt)
- [`Columns` for other runtimes](https://developers.google.com/workspace/add-ons/reference/rpc/google.apps.card.v1.md.txt#columns)

## February 20, 2024

**Chat API** v1 Feature **(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](https://developers.google.com/apps-script/reference/card-service.md.txt).
**Google Apps Script** Feature **(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](https://developers.google.com/apps-script/reference/card-service.md.txt).

## February 15, 2024

**Google Meet** Announcement **Meet API**

**Generally available** : v2 of the [Google Meet API](https://developers.google.com/meet/api/guides/overview) is now generally available. For more information, see the [v2 reference documentation](https://developers.google.com/meet/api/reference/rest/v2).
Announcement **Generally available** : Google Meet events are now generally available using the Google Workspace Events API. To learn more, see [Subscribe to Google Meet events](https://developers.google.com/workspace/events/guides/events-meet.md.txt).
**Google Workspace Events API** v1 Announcement **(Generally available)** : The Google Workspace Events API is now generally available and supports subscriptions to Google Meet events. To learn more, see [Subscribe to Google Meet events](https://developers.google.com/workspace/events/guides/events-meet.md.txt) and the [`v1` reference documentation](https://developers.google.com/workspace/events/reference/rest/v1.md.txt).

## February 12, 2024

**Google Meet** Deprecated **Meet Add-ons SDK**

[**Developer Preview**](https://developers.google.com/workspace/preview.md.txt): The `getCurrentMeetingRecordingStatus()` method has been deprecated. There isn't a replacement method to get this data.

## February 07, 2024

**Google Calendar API** v3 Change The following changes will take effect on **March 11, 2024**:

- The use of [event type](https://developers.google.com/calendar/api/v3/reference/events/watch#eventTypes) filters will be considered when reviewing quota increase requests. Before you request a quota increase, make sure you specify the event types you need as a parameter for your application.
- Both [`events.list`](https://developers.google.com/calendar/api/v3/reference/events/list) and [`events.watch`](https://developers.google.com/calendar/api/v3/reference/events/watch) will use the same default event type filter.
- To help with error handling, improved error messages will be returned when unsupported operations are attempted on special event types, such as working location, out-of-office, and focus time events.

For more information, refer to the following:

- [Manage focus time, out of office, and working location events](https://developers.google.com/calendar/api/guides/calendar-status#watch-calendar-status)
- [Manage quotas](https://developers.google.com/calendar/api/guides/quota#use_push_notifications)

## February 06, 2024

**Google Calendar API** v3 Announcement **Generally available** : The `events.watch()` method now supports the `eventTypes` field as a query parameter so that you can subscribe to changes about specific Calendar events, such as working location, out-of-office, or focus time events. For details, see the [reference documentation](https://developers.google.com/calendar/api/v3/reference/events/watch).
**Google Meet** Change **Meet API**

- **[Developer Preview](https://developers.google.com/workspace/preview.md.txt)** : A change announced by email on December 21, 2023 to members of the developer preview program, specifying [`spaces/{spaceId}`](https://developers.google.com/meet/api/reference/rest/v2beta/spaces) changed from the previous version, has now gone into effect. Requests using meeting space resource names with the old meeting space IDs are now rejected. Note that a meeting code can also be used as an alias when calling [`spaces.get`](https://developers.google.com/meet/api/reference/rest/v2beta/spaces/get), such as `spaces/abc-mnop-xyz`. When provided with a meeting code, `spaces.get` returns the canonical resource identifier for the meeting space.

## January 29, 2024

**Google Workspace Admin SDK** Change **Reports API** : The event returned in the [`activities.watch`](https://developers.google.com/admin-sdk/reports/reference/rest/v1/activities/watch) method payload is now filtered to the event name set in the filter. Before this change, multiple events were returned in the payload even if the customer filtered to a specific event.

## January 26, 2024

**Google Drive API** v3 Change You can now get a list of the user's installed apps in v3, with information about each app's supported MIME types, file extensions, and other details.

The [`apps`](https://developers.google.com/drive/api/reference/rest/v3/apps) resource represents a user's list of installed apps and it supports the following methods:

- [Get](https://developers.google.com/drive/api/reference/rest/v3/apps/get) a specific installed app.

- [List](https://developers.google.com/drive/api/reference/rest/v3/apps/list) all the installed apps.

## January 24, 2024

**Google Apps Script** Feature (**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](https://developers.google.com/apps-script/add-ons/editors/gsao/create-insert-resource-smart-chip).
**Google Drive API** v3 Change Each user can have up to [500 million items](https://developers.google.com/drive/api/guides/folder#user-limit) that were created by that account, no matter where those items reside. Previously, users could create an unlimited number of items in Drive.
**Google Workspace add-ons** Feature (**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](https://developers.google.com/workspace/add-ons/guides/create-insert-resource-smart-chip.md.txt).

## January 22, 2024

**Google Workspace Events API** v1beta Feature **(Developer Preview)** : The Google Workspace Events API supports the [`get()` method](https://developers.google.com/workspace/events/reference/rest/v1beta/operations/get.md.txt) on the `Operations` resource.

## January 19, 2024

**Google Workspace Events API** v1beta Feature **(Developer Preview):** The Google Workspace Events API now sends lifecycle events when subscriptions expire. For details, see [Subscription expired events](https://developers.google.com/workspace/events/guides/events-lifecycle.md.txt#expired).

## January 18, 2024

**Google Apps Script** Feature (**Generally available** ): Google Workspace Add-ons now support link previews in Google Sheets and Slides. To learn more, see [Preview links with smart chips](https://developers.google.com/apps-script/add-ons/editors/gsao/preview-links).
**Google Workspace add-ons** Feature (**Generally available** ): Google Workspace Add-ons now support link previews in Google Sheets and Slides. To learn more, see [Preview links with smart chips](https://developers.google.com/workspace/add-ons/guides/preview-links-smart-chips.md.txt).

## January 17, 2024

**Chat API** v1 Feature **(Developer Preview):** Chat apps can now subscribe to events about users. The following event types are supported:

- New memberships
- Updated memberships
- Deleted memberships
- Multiple memberships have changed

For details, see [Subscribe to Google Chat events](https://developers.google.com/workspace/events/guides/events-chat.md.txt) in the Google Workspace Events API documentation.
Feature **(Developer Preview)** : You can [make a Chat space discoverable to a target audience](https://developers.google.com/chat/api/guides/v1/spaces/space-target-audience) instead of inviting users individually.
**Google Workspace Events API** v1beta Feature **(Developer Preview)**: The Google Workspace Events API now supports subscriptions to Google Chat users. Subscriptions to Chat users support the following event types:

- New memberships
- Updated memberships
- Deleted memberships
- Multiple memberships have changed

For details, see [Subscribe to Google Chat events](https://developers.google.com/workspace/events/guides/events-chat.md.txt).

## January 10, 2024

**Chat API** v1 Feature **(Generally available)** : [Import data from your other messaging platforms into Google Chat](https://developers.google.com/chat/api/guides/import-data-overview). You can import existing messages, attachments, reactions, memberships, and space entities from your other messaging platforms to corresponding Chat API resources. You can import this data by creating Chat spaces in import mode and importing data into those spaces.
Feature **(Generally available)**: You can now migrate historical memberships when you import data into Google Chat.

## January 08, 2024

**Chat API** v1 Feature **(Developer Preview)** : Chat apps can now add interactive buttons to the bottom of messages. For details, see the [reference documentation](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages#Message.FIELDS.accessory_widgets).

## January 05, 2024

**Chat API** v1 Feature Chat apps can now send messages privately in spaces with multiple people. For details, see [Send private messages to Google Chat users](https://developers.google.com/chat/api/guides/v1/messages/private).

## January 04, 2024

**Google Meet** Announcement **Meet Add-ons SDK**

- Google Chrome and other browsers have begun phasing out third-party cookies to better protect user privacy. Chrome has restricted third-party cookies for 1% of users from January 4th, 2024. For more details on how to prepare, provide feedback, and report potential site issues, refer to the following:
  - [Prepare for third-party cookie restrictions](https://developers.google.com/privacy-sandbox/3pcd?db=cloud-cx)
  - [The next step toward phasing out third-party cookies in Chrome](https://blog.google/products/chrome/privacy-sandbox-tracking-protection/?db=cloud-cx)

## December 27, 2023

**Google Workspace Admin SDK** Feature **Directory API**

**(Generally available)** : You can now change the device status of ChromeOS devices in batch. For more information, refer to [Deprovisioning or disabling Chrome devices](https://developers.google.com/admin-sdk/directory/v1/guides/manage-chrome-devices#take_action_chrome_device).
Deprecated **Directory API** : The [`action`](https://developers.google.com/admin-sdk/directory/reference/rest/v1/chromeosdevices/action) method of the `chromeosdevices` resource is deprecated. Instead, use the [`batchChangeStatus`](https://developers.google.com/admin-sdk/directory/reference/rest/v1/customer.devices.chromeos/batchChangeStatus) method in the `customer.devices.chromeos` resource.

## December 15, 2023

**Google Meet** Change **Meet API**

- **[Developer Preview](https://developers.google.com/workspace/preview.md.txt)** : Added the `startTime` and `endTime` fields to the [`conferenceRecords.recordings`](https://developers.google.com//meet/api/reference/rest/v2beta/conferenceRecords.recordings) resource and [`conferenceRecords.transcripts`](https://developers.google.com//meet/api/reference/rest/v2beta/conferenceRecords.transcripts) resource.

## December 14, 2023

**Chat API** v1 Announcement We've published a comprehensive tutorial and code sample showing how to build a Chat app using generative AI and a database, [Manage projects with Google Chat, Vertex AI, and Firestore](https://developers.google.com/chat/tutorial-project-management).

## December 13, 2023

**Chat API** v1 Feature (**Generally available** ): The [Card Builder Tool](https://addons.gsuite.google.com/uikit/builder) is now available to help you [design and preview card messages](https://developers.google.com/chat/api/guides/v1/messages/create#create) in Google Chat apps.
**Google Apps Script** Feature (**Generally available** ): The [`setPersistValues(persistValues)`](https://developers.google.com/apps-script/reference/card-service/action.md.txt#setpersistvaluespersistvalues) method has been added to the `Action` class of the [Card service](https://developers.google.com/apps-script/reference/card-service.md.txt). 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

**Google Apps Script** Feature (**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](https://developers.google.com/apps-script/advanced/drive.md.txt).

## December 08, 2023

**Chat API** v1 Change The Google Chat API [`spaces.list()` method](https://developers.google.com/chat/api/reference/rest/v1/spaces/list) now supports app authentication for query filters.

## December 07, 2023

**Google Apps Script** Fixed To fix a bug that prevented events of `eventType != 'default'` from importing, we updated the code sample in [Populate a team vacation calendar](https://developers.google.com/apps-script/samples/automations/vacation-calendar.md.txt), the popular Apps Script + Calendar API solution. Review the code change in [GitHub](https://github.com/googleworkspace/apps-script-samples/pull/434/files).
**Google Calendar API** v3 Fixed To fix a bug that prevented events of `eventType != 'default'` from importing, we updated the code sample in [Populate a team vacation calendar](https://developers.google.com/apps-script/samples/automations/vacation-calendar.md.txt), the popular Apps Script + Calendar API solution. Review the code change in [GitHub](https://github.com/googleworkspace/apps-script-samples/pull/434/files).
**Google Meet** Feature **Meet Add-ons SDK**

- **Developer Preview** : The [Google Meet Add-ons SDK](https://developers.google.com/meet/add-ons/guides/overview) is now available as part of the [Developer Preview Program](https://developers.google.com/workspace/preview.md.txt). The Meet Add-ons SDK lets you embed your app into Google Meet as an add-on where users can discover, share, and collaborate in the app without leaving Meet.

## December 06, 2023

**Chat API** v1 Feature [Developer Preview](https://developers.google.com/workspace/preview.md.txt): You can now get and update a user's read state in a space, and get a user's read state in a message thread. User read states are singleton resources that represent details about a specified user's last read message.

The [`users.spaces` resource](https://developers.google.com/chat/api/reference/rest/v1/users.spaces) represents a user's read state in a space. The [`users.spaces.threads` resource](https://developers.google.com/chat/api/reference/rest/v1/users.spaces.threads) represents a user's read state in a message thread.

User read states support the following methods:

- [Get space read state](https://developers.google.com/chat/api/reference/rest/v1/users.spaces/getSpaceReadState) to return details about a user's read state within a space.

- [Update space read state](https://developers.google.com/chat/api/reference/rest/v1/users.spaces/updateSpaceReadState) to update a user's read state within a space.

- [Get thread read state](https://developers.google.com/chat/api/reference/rest/v1/users.spaces.threads/getThreadReadState) to return details about a user's read state within a thread.

**Google Apps Script** Feature (**Generally available**): You can now delete versions in your Apps Script project from the project history page in the Apps Script IDE.

Script projects created after December 10, 2023 can have up to 200 versions. If your script reaches the versions limit, or you want to clean up your script project, delete undeployed versions that you no longer need.

To learn more, see [Delete a version](https://developers.google.com/apps-script/guides/versions.md.txt#delete-version).

## November 30, 2023

**Chat API** v1 Feature **(Generally available)** : You can now retrieve Google Groups that are members of a Google Chat space using `ListMemberships` (with the `showGroups` option) and `GetMembership`. If you try to [add a member](https://developers.google.com/chat/api/reference/rest/v1/spaces.members/create) to a Chat space while this member is already part of a Google Group in the same space, it triggers an `already exists` error (HTTP status code `409`).

## November 28, 2023

**Chat API** v1 Feature **(Developer Preview):** Your Chat app can now send an [app home card message](https://developers.google.com/chat/send-app-home-card-message) to a user. This message is a customizable card message that a Chat app sends to a user when they open a direct message with the Chat app.

## November 21, 2023

**Google Drive API** v3 Change A user's My Drive can't contain more than [100 levels of nested folders](https://developers.google.com/drive/api/guides/folder#depth-limit). Previously, folders in My Drive could be at an unlimited depth.

## November 15, 2023

**Chat API** v1 Change **(Generally available)** : [Google Material Design 3 styles](https://m3.material.io/styles), including [icons](https://fonts.google.com/icons), are available for cards in Chat apps.
**Google Apps Script** Feature **([Developer Preview](https://developers.google.com/workspace/preview.md.txt))** : 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](https://developers.google.com/apps-script/add-ons/editors/gsao/create-insert-resource-smart-chip).
**Google Workspace add-ons** Feature **([Developer Preview](https://developers.google.com/workspace/preview.md.txt))** : 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](https://developers.google.com/workspace/add-ons/guides/create-insert-resource-smart-chip.md.txt).

## November 13, 2023

**Google Apps Script** Feature **(Developer Preview)** : Available as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview.md.txt), which grants early access to certain features.

Google Workspace Add-ons now support link previews in Google Sheets and Slides. To learn more, see [Preview links with smart chips](https://developers.google.com/apps-script/add-ons/editors/gsao/preview-links).
**Google Workspace add-ons** Feature **(Developer Preview)** : Available as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview.md.txt), which grants early access to certain features.

Google Workspace Add-ons now support link previews in Google Sheets and Slides. To learn more, see [Preview links with smart chips](https://developers.google.com/workspace/add-ons/guides/preview-links-smart-chips.md.txt).

## November 06, 2023

**Chat API** v1 Feature **(Generally available)** : You can now call the Chat API from Apps Script with the Advanced Chat Service. To learn how, see [Advanced Chat Service](https://developers.google.com/apps-script/advanced/chat.md.txt) in the Apps Script reference documentation.

We've also updated the Apps Script code samples to use the Advanced Chat Service in the following Chat API developer guides:

- [Authenticate as an app](https://developers.google.com/chat/api/guides/auth/service-accounts)
- [Authenticate as a user](https://developers.google.com/chat/api/guides/auth/users)
- [Try it - Respond to Incidents](https://developers.google.com/chat/tutorial-incident-response)
**Google Apps Script** Feature **(Generally available)** : You can now call the Chat API from Apps Script with the Advanced Chat Service. To learn how, see [Advanced Chat Service](https://developers.google.com/apps-script/advanced/chat.md.txt) in the Apps Script reference documentation.

We've also updated the Apps Script code samples to use the Advanced Chat Service in the following Chat API developer guides:

- [Authenticate as an app](https://developers.google.com/chat/api/guides/auth/service-accounts)
- [Authenticate as a user](https://developers.google.com/chat/api/guides/auth/users)
- [Try it - Respond to Incidents](https://developers.google.com/chat/tutorial-incident-response)

## November 03, 2023

**Chat API** v1 Announcement Users can now install Google Chat apps from app listing pages on the Google Workspace Marketplace. For details, see [Publish Google Chat apps](https://developers.google.com/chat/how-tos/apps-publish#use-install-apps).
**Google Workspace Marketplace API** v1 Announcement Users can now install Google Chat apps from app listing pages on the Google Workspace Marketplace. For details, see [Publish Google Chat apps](https://developers.google.com/chat/how-tos/apps-publish#use-install-apps).

## November 02, 2023

**Google Meet** Feature **Meet API**

- **Developer Preview** : [Google Meet API](https://developers.google.com/meet/api/guides/overview) is now available as part of the [Developer Preview Program](https://developers.google.com/workspace/preview.md.txt). Meet API lets you create and manage meetings for Google Meet and offers entry points to your users directly from your app.
**Google Workspace Events API** v1beta Announcement **(Developer Preview)**: The Google Workspace Events API now supports subscriptions to Google Meet meeting spaces and users. The API supports the following types of events:

- A conference starts or ends.
- A participant joins or leaves a conference.
- A recording is generated.
- A transcript is generated.

To learn more, see [Subscribe to Google Meet events](https://developers.google.com/workspace/events/guides/events-meet.md.txt).

## October 30, 2023

**Chat API** v1 Feature **(Developer Preview)**: Google Chat apps can now subscribe to the following types of events about message reactions:

- New reactions
- Removed reactions
- Multiple reactions have changed.

For details, see [Subscribe to Google Chat events](https://developers.google.com/workspace/events/guides/events-chat.md.txt).
**Google Workspace Events API** v1beta Feature **(Developer Preview)**: Subscriptions to Google Chat spaces now support the following event types:

- New reactions
- Removed reactions
- Multiple reactions have changed.

For details, see [Subscribe to Google Chat events](https://developers.google.com/workspace/events/guides/events-chat.md.txt).

## October 24, 2023

**Chat API** v1 Feature **(Developer Preview):** You can now migrate historical memberships when you [import data into Google Chat](https://developers.google.com/chat/api/guides/import-data#historical_memberships).

## October 17, 2023

**Chat API** v1 Feature **(Generally available)** : Multiselect menus for cards and dialogs are now generally available. Multiselect menus let users select Google Workspace users and spaces, or select items from external data sources. For details, see [Selection input](https://developers.google.com/chat/ui/widgets/selection-input#multiselect-menu).

## October 16, 2023

**Google Meet** Feature **Live Sharing SDK**

- Added a `RecordingInfo` field to the `AddonMeetingInfo` resource that indicates if the current Google Meet call is being recorded.
- Added the `verifyRecordingInfo` method to the `AddonSession.Builder` resource to specify if the Meet Add-ons SDK should make sure that the add-on application has the correct recording status. If this method is called and there's a discrepancy between the add-on and Meet in regards to the recording status, then Meet severs the add-on connection and the session is terminated.

       addonClient.newSessionBuilder(appContext, new MyAddonSessionDelegate())
             .withParticipantMetadata(new MyMetadataDelegate(), initialMetadata)
             .withCoWatching(new MyCoWatchingHandler())
             .withCoDoing(new MyCoDoingHandler())
             .verifyRecordingInfo() // Newly added method
             .begin();

- Artifact released: `com.google.android.meet:meet-addons:2.0.0-alpha04`.

## October 03, 2023

**Chat API** v1 Announcement **(Developer Preview):** Google Chat apps can now monitor and receive events about Google Chat spaces. The following event types are supported:

- New messages
- Updated messages
- New members
- Updated members
- Removed members
- Updated space
- Deleted space

To receive events, Chat apps create subscriptions using the Google Workspace Events API. To learn more, see the [Google Workspace Events API overview](https://developers.google.com/workspace/events/guides).
**Google Workspace Events API** v1beta Announcement **(Developer Preview):** The Google Workspace Events API is now available to members of the Developer Preview Program. The API supports subscribing to Google Chat spaces for the following types of events:

- New messages
- Updated messages
- New members
- Updated members
- Removed members
- Updated space
- Deleted space

To learn more, see the [Google Workspace Events API overview](https://developers.google.com/workspace/events/guides).

## September 28, 2023

**Chat API** v1 Feature You can now use the `formattedText` field to [view the text formatting sent in a message](https://developers.google.com/chat/format-messages#view_text_formatting_sent_in_a_message).

## September 26, 2023

**Google Apps Script** Change The email address that sends notifications about [errors in triggers](https://developers.google.com/apps-script/guides/triggers/installable.md.txt#errors_in_triggers) has been updated from `apps-scripts-notifications@google.com` to `noreply-apps-scripts-notifications@google.com`.

## September 19, 2023

**Google Apps Script** Deprecated The classic Google Sites service has been deprecated due to the [transition from classic Sites to new Sites](https://support.google.com/a/answer/9958187#zippy=%2Cwhat-are-the-differences-between-classic-sites-and-new-sites%2Cwhat-happens-to-my-classic-site-after-migration). There isn't a way to connect to new Sites with Apps Script.

## September 15, 2023

**Chat API** v1 Feature **[Developer Preview](https://developers.google.com/workspace/preview.md.txt)** : You can now update a human user's membership in a Chat space. For example, you can use the [`spaces.members.patch` method](https://developers.google.com/chat/api/reference/rest/v1/spaces.members/patch) to update membership roles from `member` to `manager` and from `manager` to `member`.

## August 23, 2023

**Google Apps Script** Feature You can now view previously deployed script versions and compare them to the current script version in the Apps Script IDE. Anyone who has edit permission on an Apps Script project can access the project history page. To learn more, refer to the following:

- **Google Workspace Updates blog** : [View \& compare script versions with Apps Script project history](https://workspaceupdates.googleblog.com/2023/08/apps-script-project-history.html)

- **Developer documentation** : [Versions](https://developers.google.com/apps-script/guides/versions.md.txt)

## August 17, 2023

**Google Calendar API** v3 Feature **Generally available** : Reading and updating working locations using the Google Calendar API is now generally available. For details, see [Manage working locations for Google Calendar users](https://developers.google.com/calendar/api/guides/working-hours-and-location).

## August 15, 2023

**Google Workspace add-ons** Announcement The user interface (UI) of Google Workspace Add-ons has been upgraded to better reflect [Material 3 guidelines (GM3)](https://m3.material.io/). The updated interface is generally available on web for Gmail, Calendar, Drive, Docs, Sheets, and Slides. New and existing Google Workspace Add-ons automatically reflect the new interface.

## August 11, 2023

**Google Meet** Change **Embed SDK Web**

- You no longer have to add a domain to an allowlist. Any domain can embed Meet.
- You no longer have to provide an `accessToken` when building the `MeetApp`. Previously, the `accessToken` indicated user consent of having Google Meet in an embedded website. Meet now shows its own consent dialog to the user before they can join a meeting. Consent is cached for 24 hours.
- Anonymous users can now join a meeting and are only required to enter a name to represent them during the meeting. Previously, users had to be signed in to a Google Account.
- Documentation changes:
  - The "Configure OAuth consent" and "Set up authentication \& authorization" pages were removed.
  - The [Set up your Google Cloud project](https://developers.google.com/meet/embed/guides/start-developing#setup-project) section was added.

## August 08, 2023

**Chat API** v1 Announcement Google Chat users outside of Google Workspace organizations can now install and use public Google Chat apps. To learn about how users discover and use Chat apps, see [Publish Google Chat apps](https://developers.google.com/chat/how-tos/apps-publish).

## July 31, 2023

**Google Workspace Marketplace API** v1 Announcement The Google Workspace Marketplace now offers independent security verification badges that appear in search results and on app listing pages. To receive the badge, your app must undergo an independent security assessment. To learn about the requirements for the badge, see the [documentation](https://developers.google.com/workspace/marketplace/get-featured.md.txt#security).

## July 28, 2023

**Chat API** v1 Feature Google Chat apps that [authenticate as a user](https://developers.google.com/chat/api/guides/auth/users) can now reference users with their email address. The following Chat API methods support using email addresses to reference users:

- [Set up a space](https://developers.google.com/chat/api/reference/rest/v1/spaces/setup)
- [Find a direct message](https://developers.google.com/chat/api/reference/rest/v1/spaces/findDirectMessage)
- [Create a membership](https://developers.google.com/chat/api/reference/rest/v1/spaces.members/create)
- [Get a membership](https://developers.google.com/chat/api/reference/rest/v1/spaces.members/get)
- [Delete a membership](https://developers.google.com/chat/api/reference/rest/v1/spaces.members/delete)

Chat apps can also use email addresses to @mention users. To learn more, see [Mention users in a message](https://developers.google.com/chat/format-messages#messages-@mention).

## July 24, 2023

**Google Drive API** v3 Feature A new content restriction parameter that only the file owner can modify (`ownerRestricted`) was added.

In addition, three capabilities were added:

- `capabilities.canModifyEditorContentRestriction`
- `capabilities.canModifyOwnerContentRestriction`
- `capabilities.canRemoveContentRestriction`

For details, see [Protect file content](https://developers.google.com/drive/api/guides/content-restrictions).
Deprecated The `capabilities.canModifyContentRestriction` parameter was deprecated.

## July 13, 2023

**Chat API** v1 Feature You can now specify [no divider between card sections](https://developers.google.com/chat/api/reference/rest/v1/cards#dividerstyle).
**Google Workspace add-ons** Feature You can now specify [no divider between card sections](https://developers..google.com/workspace/add-ons/reference/rpc/google.apps.card.v1#dividerstyle).

## July 10, 2023

**Chat API** v1 Feature Multiselect menus are now available in [Developer Preview](https://developers.google.com/workspace/preview.md.txt). Multiselect menus help users input static and dynamic data for Google Chat apps. To learn more, see the [Selection input widget documentation](https://developers.google.com/chat/ui/widgets/selection-input#multiselect-menu).

## June 12, 2023

**Google Apps Script** Feature Third-party smart chips and link previews are now generally available. To build a Google Workspace Add-on that uses this feature, see [Preview links with smart chips](https://developers.google.com/apps-script/add-ons/editors/gsao/preview-links).
**Google Workspace add-ons** Feature Third-party smart chips and link previews are now generally available. To build a Google Workspace Add-on that uses this feature, see [Preview links with smart chips](https://developers.google.com/workspace/add-ons/guides/preview-links-smart-chips.md.txt).

## June 07, 2023

**Chat API** v1 Feature **Developer Preview** : Available as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview.md.txt), which grants early access to certain features.

[Import data from your other messaging platforms](https://developers.google.com/chat/api/guides/import-data-overview) into Google Chat. You can import existing messages, attachments, reactions, memberships, and space entities from your other messaging platforms to corresponding Chat API resources. You can import this data by creating Chat spaces in import mode and importing data into those spaces.
**Google Meet** Change **Live Sharing SDK**

- Renamed SDK artifact and namespace:
  - Maven artifact changed to `com.google.android.meet:meet-addons`.
  - Java namespace changed to `com.google.android.meet.addons`.
- Removed deprecated `queryMeeting()` method. Use `registerMeetingStatusListener()` instead.
- Removed `liveSharingApplicationName` parameter from the session builder.
- The `cloudProjectNumber` parameter on `AddonClientFactory#getClient` is now required. This value is acquired by [registering a Meet add-on](https://developers.google.com/meet/add-ons/guides/build-add-on).
- Artifact released: `com.google.android.meet:meet-addons:2.0.0-alpha03`.

## May 25, 2023

**Chat API** v1 Announcement You can [authenticate and authorize users' credentials](https://developers.google.com/chat/api/guides/auth/users) to access the Chat API by using OAuth 2.0. Authenticating and authorizing with user credentials lets Chat apps access user data and perform operations on the authenticated user's behalf. When an app performs an action with user authentication (such as creating a space), Google Chat might display an attribution message that tells users the name of the app that performed the action for the user who authorized it.

[Oauth 2.0 scopes](https://developers.google.com/chat/api/guides/auth#scopes) are available for you to request and your users to consent to.

[Quotas and limits](https://developers.google.com/chat/api/guides/limits) are applied to the Chat API.

The following methods are available:

- [Create a message](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages/create)
- [Delete a message](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages/delete)
- [Get a message](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages/get)
- [Update a message](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages/update)
- [List messages](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages/list)
- [Create a reaction](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages.reactions/create)
- [Delete a reaction](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages.reactions/delete)
- [List reactions](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages.reactions/list)
- [Create a membership](https://developers.google.com/chat/api/reference/rest/v1/spaces.members/create)
- [Delete a membership](https://developers.google.com/chat/api/reference/rest/v1/spaces.members/delete)
- [Get a membership](https://developers.google.com/chat/api/reference/rest/v1/spaces.members/get)
- [List memberships](https://developers.google.com/chat/api/reference/rest/v1/spaces.members/list)
- [Create a space](https://developers.google.com/chat/api/reference/rest/v1/spaces/create)
- [Delete a space](https://developers.google.com/chat/api/reference/rest/v1/spaces/delete)
- [Get a space](https://developers.google.com/chat/api/reference/rest/v1/spaces/get)
- [Find a direct message](https://developers.google.com/chat/api/reference/rest/v1/spaces/findDirectMessage)
- [List spaces](https://developers.google.com/chat/api/reference/rest/v1/spaces/list)
- [Update a space](https://developers.google.com/chat/api/reference/rest/v1/spaces/patch)
- [Set up a space](https://developers.google.com/chat/api/reference/rest/v1/spaces/setup) (create and populate)
- [Download media](https://developers.google.com/chat/api/reference/rest/v1/media/download)
- [Upload media](https://developers.google.com/chat/api/reference/rest/v1/media/upload)

## May 23, 2023

**Google Meet** Feature **Live Sharing SDK**

Added `onParticipantPrivilegeChanged` callback to `AddonSessionHandler`. Artifact released: `com.google.android.livesharing:livesharing:2.0.0-alpha02`.
Change **Live Sharing SDK**

Renamed the following symbols:

    +   `LiveSharing*` → `Addon*`
    +   `*Delegate` → `*Handler`
    +   `CoWatchingSession` → `CoWatchingClient`
    +   `CoDoingSession` → `CoDoingClient`

## May 15, 2023

**Google Workspace Marketplace API** v1 Announcement The Google Workspace Marketplace launches a new category called [Intelligent Apps](https://workspace.google.com/marketplace/category/intelligent-apps), where users can discover AI-powered productivity apps that let organizations work faster by automating their Google Workspace workflows. To learn more about Marketplace categories, see the [documentation](https://developers.google.com/workspace/marketplace/get-featured.md.txt#editors-choice).

## March 23, 2023

**Google Meet** Announcement **Live Sharing SDK**

Alpha version of a new SDK major release. While the internals of this SDK are production-ready, the API surface of this alpha is subject to additional breaking changes---such as new features---before a final 2.0.0 release is published. The following changes are part of this release:

- `Co-Doing`:
  - `CoDoingSession`: Renamed `broadcastStateUpdate()` to `setGlobalState()`.
  - `CoDoingSessionDelegate`:
    - `Eliminated onCoDoingStateQuery()`. If initial state must be set upon connecting to live sharing, call `CoDoingSession#setGlobalState()` explicitly instead.
    - Renamed `onCoDoingStateChanged()` to `onGlobalStateChanged()`.
- `Co-Watching`:
  - `CoWatchingSession`: Removed previously-deprecated `notifyPlayoutRate()` overload.
  - `CoWatchingSessionDelegate`:
    - Renamed `onCoWatchingStateQuery()` to `onStateQuery()`.
    - `onStateQuery()` now returns a `QueriedCoWatchingState`, which is a subset of `CoWatchingState`. Update the return type and either:
      - Continue building and returning a `CoWatchingState`...
      - Or, simplify the implementation by constructing a simpler `QueriedCoWatchingState` instance.
- `LiveSharingClient`:
  - Replaced the following methods with a builder pattern:
    - `connectMeeting()` / `disconnectMeeting()`
    - `beginCoDoing()` / `endCoDoing()`
    - `beginCoWatching()` / `endCoWatching()`
- Instead of calling `connectMeeting()` followed by `beginCoDoing()`(or co-watching), call `newSessionBuilder().withCoDoing().begin()`.
- `begin()` returns a new `LiveSharingSession` instance:
  - To end the session, call `endSession()`.
  - To set participant metadata after the session has started, call `setParticipantMetadata()`.
  - To access the co-doing/co-watching session, call `getCoDoing()`/`getCoWatching()`.
  - To access information about the current meeting, call `getMeetingInfo()`.
- To set up participant metadata and register a delegate, call `withParticipantMetadata()` as part of the session builder chain.
- Added `registerMeetingStatusListener()`/`unregisterMeetingStatusListener()`and deprecated \`queryMeeting().
- Artifacts released: `com.google.android.livesharing:livesharing:2.0.0-alpha01`.

## March 06, 2023

**Chat API** v1 Feature You can now design your Chat app to include checkboxes, radio buttons, switches, or a dropdown menu in your Chat app. For more information, see [`SelectionInput` widget](https://developers.google.com/chat/ui/widgets/selection-input).

## February 22, 2023

**Google Meet** Feature **Live Sharing SDK**

Added `LiveSharingSessionDelegate` to the API. Artifact released: `com.google.android.livesharing:livesharing:1.2.0`.
Deprecated **Live Sharing SDK**

Marked `MeetingDisconnectHandler` as deprecated; developers should migrate to `LiveSharingSessionDelegate` instead.

## January 18, 2023

**Chat API** v1 Feature Chat apps can now receive and respond to user-submitted information in cards and dialogs. For more information, see [Process information inputted by users](https://developers.google.com/chat/ui/read-form-data).

## January 17, 2023

**Chat API** v1 Change [Buttons](https://developers.google.com/chat/api/reference/rest/v1/cards#button) can now include text and an icon. Previously, only an icon or only text was allowed in buttons.

## January 03, 2023

**Google Meet** Feature **Live Sharing SDK**

- Added `notifyLiveSharingFailureEvent` method to API for failure reporting.
- Artifact released: `com.google.android.livesharing:livesharing:1.1.0`.
Fixed **Live Sharing SDK**

Fixed some issues.
Change **Live Sharing SDK**

Maximum size of `co-doing` state increased from 1650 bytes to 16 KB.

## December 16, 2022

**Google Apps Script** Deprecated Apps Script has deprecated the [Contacts service](https://developers.google.com/apps-script/reference/contacts.md.txt). Instead, use the [People API advanced service](https://developers.google.com/apps-script/advanced/people.md.txt). Refer to [Migrate from Contacts service to People API advanced service](https://developers.google.com/apps-script/migration/contacts-people.md.txt).

The Contacts service shutdown has been rescheduled from April 2023 to January 2025. Refer to the [Apps Script sunset schedule](https://developers.google.com/apps-script/guides/support/sunset.md.txt).

## December 07, 2022

**Google Workspace add-ons** Feature **Developer Preview** : Available as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview.md.txt), which grants early access to certain features.

You can now build third-party smart chips for Google Workspace Add-ons. To use this feature, see [Preview links with smart chips](https://developers.google.com/workspace/add-ons/guides/preview-links-smart-chips.md.txt).

## November 03, 2022

**Google Apps Script** Feature Apps Script added a new method to the [Utilities class](https://developers.google.com/apps-script/reference/utilities/utilities.md.txt). [`parseDate(date, timeZone, format`)](https://developers.google.com/apps-script/reference/utilities/utilities.md.txt#parsedatedate,-timezone,-format) parses a provided string date according to the specification described in the [Java Standard Edition SimpleDateFormat class](https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html).

## November 01, 2022

**Google Apps Script** Deprecated Apps Script has sunset the following methods:

- [`getChatThreads()`](https://developers.google.com/apps-script/reference/gmail/gmail-app.md.txt#getChatThreads())
- [`getChatThreads(start, max)`](https://developers.google.com/apps-script/reference/gmail/gmail-app.md.txt#getChatThreads(Integer,Integer))

There isn't a replacement method to get this data with Apps Script.

[Learn about the switch from Classic Hangouts to Chat](https://support.google.com/chat/answer/9854901).

## October 27, 2022

**Google Meet** Change **Live Sharing SDK**:

- Updated external dependencies.
- Artifact released `com.google.android.livesharing:livesharing:1.0.5`.
Fixed **Live Sharing SDK**: Fixed potential issues in bundled Proguard configuration in previous release.

## October 03, 2022

**Google Meet** Change **Live Sharing SDK**:

- Improved bundled Proguard configuration.
- Updated `MAX_CODOING_BLOB_BYTES` to correctly represent the current maximum.
- Artifact released: `com.google.android.livesharing:livesharing:1.0.4`.

## September 28, 2022

**Google Meet** Change **Live Sharing SDK**:

- The SDK size was significantly reduced.
- Artifact released: `com.google.android.livesharing:livesharing:1.0.3`
Fixed **Live Sharing SDK**: Fixed some issues.

## September 27, 2022

**Google Apps Script** Deprecated 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:

- [Updated Apps Script integrated development environment will replace the legacy experience by Q4 2022](https://workspaceupdates.googleblog.com/2022/09/apps-script-ide-update.html).
- [Additional functionality for the Apps Script Integrated Development Environment (IDE) Script Editor](https://workspaceupdates.googleblog.com/2022/04/apps-script-integrated-development-enviornment-improvements.html).
- [Use the new Apps Script Integrated Development Environment (IDE) Script Editor](https://workspaceupdates.googleblog.com/2020/12/google-apps-script-ide-better-code-editing.html).
**Google Meet** Fixed **Live Sharing SDK**:

- Fixed some issues.
- Javadoc improvements.
- Artifact released: `com.google.android.livesharing:livesharing:1.0.2`.

## September 06, 2022

**Google Workspace Admin SDK** Change **Reseller API**: The maximum queries per day (QPD) of 10,000 no longer applies.

## August 29, 2022

**Google Meet** Fixed **Live Sharing SDK** : Fixed some issues. Artifact released: `com.google.android.livesharing:livesharing:1.0.1`.

## August 24, 2022

**Google Meet** Fixed **Live Sharing SDK** : Fixed some issues. Artifact released: `com.google.android.livesharing:livesharing:1.0.0`.

## August 22, 2022

**Google Calendar API** v3 Feature **[Developer Preview](https://developers.google.com/workspace/preview.md.txt)** : The Google Calendar API now supports reading and updating working locations. For details, see [Manage working locations for Google Calendar users](https://developers.google.com/calendar/api/guides/working-hours-and-location).

## August 18, 2022

**Google Meet** Fixed **Live Sharing SDK** : Fixed some issues. Artifact released `com.google.android.livesharing:livesharing:1.0.0-eap08`.

## July 26, 2022

**Google Meet** Change **Live Sharing SDK**:

- Executors passed to `LiveSharingClientFactory#getClient` are now respected by the SDK.
- Updated `LiveSharingException`:
  - `MEET_VERSION_UNSUPPORTED`: Consumers can now query `LiveSharingExceptionMetadata#packageName()`to redirect the user to install an appropriate app.
  - `SDK_VERSION_UNSUPPORTED`: New error code for phasing out old SDK versions if necessary in the future.
  - `PARTICIPANT_INELIGIBLE`: New error code indicating that the current user is not eligible to participate.
- The SDK no longer requires the full `com.google.guava:guava` target as a dependency; only `com.google.guava:listenablefuture`.
Feature **Live Sharing SDK**:

- Added API for setting participant metadata. **Note**: This functionality is not yet present. This will occur in a future release.
- Artifact released: `com.google.android.livesharing:livesharing:1.0.0-eap07`
Deprecated **Live Sharing SDK** : The `com.google.android.apps.meetings.permission.MEET_LIVE_SHARING` permission is obsolete and removed from the manifest.

## July 19, 2022

**Google Apps Script** Change Apps Script now automatically deletes [default Google Cloud projects](https://developers.google.com/apps-script/guides/cloud-platform-projects.md.txt#default_google_cloud_projects) (Google Cloud projects that Apps Script creates in the background) when their associated scripts haven't run in 180 days or more. If the script runs after Apps Script deletes the default Google Cloud project, Apps Script creates one for the script.

This update doesn't affect standard Google Cloud projects (Google Cloud projects created by people).

## July 08, 2022

**Google Apps Script** Deprecated Apps Script has deprecated the following methods:

- [`getChatThreads()`](https://developers.google.com/apps-script/reference/gmail/gmail-app.md.txt#getChatThreads())
- [`getChatThreads(start, max)`](https://developers.google.com/apps-script/reference/gmail/gmail-app.md.txt#getChatThreads(Integer,Integer))

These methods will become unavailable later this year once Google switches all users from Classic Hangouts to Google Chat. There isn't a replacement method to get this data with Apps Script.

[Learn about the switch from Classic Hangouts to Chat](https://support.google.com/chat/answer/9854901).

## June 28, 2022

**Chat API** v1 Deprecated [Cards v1](https://developers.google.com/chat/api/reference/rest/v1/cards-v1) is deprecated. Instead, use [Cards v2](https://developers.google.com/chat/api/reference/rest/v1/cards).

## June 16, 2022

**Chat API** v1 Feature On the web, Google Chat cards now match [Google Material Design](https://material.io/). The Material Design cards feature aesthetic enhancements that improve usability and render faster.

## June 06, 2022

**Google Apps Script** Change 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.

## May 25, 2022

**Google Meet** Fixed **Live Sharing SDK**: Addressed some race conditions.
Feature **Live Sharing SDK**:

- Surfaced `LiveSharingMeetingInfo.Builder` to API consumers for ease-of-testing.
- Added new overload of `LiveSharingClientFactory#getClient,` permitting API consumers to provide their own executor services. Consumers can begin using this API, but the SDK does not yet respect the provided executors. This will occur in a future release.
- Added error code mechanism to `LiveSharingException`, allowing common errors to be tagged with a canonical code. Currently supports one error code: `MEET_VERSION_UNSUPPORTED`.
- Enabled `#queryMeeting()` feature.
- Artifact released `com.google.android.livesharing:livesharing:1.0.0-eap05`.
Change **Live Sharing SDK**: Removed internal handler creation for ongoing call detector. If LSA does not provide a handler, the registered receiver will run on the UI thread.
Issue **Live Sharing SDK**: In-call banner does not have the correct string.

## May 15, 2022

**Chat API** v1 Feature **Developer Preview** : Available as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview.md.txt), which grants early access to certain features.

On mobile devices, Google Chat [cards](https://developers.google.com/chat/api/reference/rest/v1/cards) now match [Google Material Design](https://material.io/). The Material Design cards feature aesthetic enhancements that improve usability and render faster.

## May 09, 2022

**Google Meet** Breaking **Live Sharing SDK**: Renames the following symbols on the API surface:

| Before | After |
|---|---|
| `CoDoing` | `CoDoingSession` |
| `CoWatching` | `CoWatchingSession` |
| `CoDoingController` | `CoDoingSessionDelegate` |
| `CoWatchingController` | `CoWatchingSessionDelegate` |

Feature **Live Sharing SDK** : Artifact released `com.google.android.livesharing:livesharing:1.0.0-eap04`

## May 05, 2022

**Google Meet** Fixed **Live Sharing SDK**:

- Fixes `ExceptionInInitializerError` bug introduced in `1.0.0-eap02`.
- Fixes "playout rate set as zero" known issue.
- Fixes "wait for connection to resolve" known issue.
Feature **Live Sharing SDK** : Artifact released `com.google.android.livesharing:livesharing:1.0.0-eap03`

## May 03, 2022

**Google Meet** Fixed **Live Sharing SDK** : Addresses issue with `io.grpc.util.SecretRoundRobinLoadBalancerProvider` instantiation for some apps.
Feature **Live Sharing SDK** : Enables logging for `ERROR`-level logs for better debugging with partners. This will be reverted at the end of the EAP program; any details revealed in these logs are covered by NDA.
Feature **Live Sharing SDK** : Artifacts released `com.google.android.livesharing:livesharing:1.0.0-eap02`

## April 14, 2022

**Google Meet** Announcement **Live Sharing SDK** : Initial release. Artifact released: `com.google.android.livesharing:livesharing:1.0.0-eap01`

## April 13, 2022

**Google Apps Script** Feature You can now perform the following actions in the new Apps Script integrated development environment (IDE):

- [Create test deployments for Editor Add-ons](https://developers.google.com/apps-script/add-ons/how-tos/testing-editor-addons#create_a_test_deployment).
- [Add, edit, and delete script properties from the project settings page](https://developers.google.com/apps-script/guides/properties.md.txt#manage_script_properties_manually).
- Sort files alphabetically in the editor.
- [Debug Rhino functions without migrating to the V8 runtime](https://developers.google.com/apps-script/guides/support/troubleshooting.md.txt#use_the_debugger_and_breakpoints). If your code isn't V8 compatible, you might receive errors.
- [Set the time zone for a script project](https://developers.google.com/apps-script/guides/projects.md.txt#set_the_time_zone_for_a_project).

## March 24, 2022

**Google Apps Script** Feature For Google Workspace Add-ons, an [`Attachment` class](https://developers.google.com/apps-script/reference/card-service/attachment.md.txt) has been added to the [Card Service](https://developers.google.com/apps-script/reference/card-service/card-service.md.txt) that lets you add custom attachments to Calendar events. You can also set an event trigger that fires when the user clicks on the add-on attachment provider in the Calendar dropdown menu. For more information, refer to [`EventAttachmentTrigger`](https://developers.google.com/apps-script/manifest/calendar-addons.md.txt#eventattachmenttrigger).

## March 23, 2022

**Google Calendar API** v3 Feature The Calendar API now supports custom attachments. See [Calendar add-ons](https://developers.google.com/apps-script/add-ons/calendar) for more information.

## March 18, 2022

**Google Apps Script** Deprecated The `get` methods for several color objects in the [Spreadsheet Service](https://developers.google.com/apps-script/reference/spreadsheet.md.txt) have been deprecated in favor of a new naming convention. The functionality remains the same. For example, the `getFontColor()` method from the Range class has been replaced with `getFontColorObject()`.

The following classes have updated `get` methods for color objects:

- [`Banding`](https://developers.google.com/apps-script/reference/spreadsheet/banding.md.txt):
  - `getFirstColumnColor()` is now `getFirstColumnColorObject()`.
  - `getFirstRowColor()` is now `getFirstRowColorObject()`.
  - `getFooterColumnColor()` is now `getFooterColumnColor()`.
  - `getFooterRowColor()` is now `getFooterRowColorObject()`.
  - `getHeaderColumnColor()` is now `getHeaderColumnColorObject()`.
  - `getHeaderRowColor()` is now `getHeaderRowColorObject()`.
  - `getSecondColumnColor()` is now `getSecondColumnColorObject()`.
  - `getSecondRowColor()` is now `getSecondRowColorObject()`.
- [`BooleanCondition`](https://developers.google.com/apps-script/reference/spreadsheet/boolean-condition.md.txt):
  - `getBackground()` is now `getBackgroundObject()`.
  - `getFontColor()` is now `getFontColorObject()`.
- [`GradientCondition`](https://developers.google.com/apps-script/reference/spreadsheet/gradient-condition.md.txt):
  - `getMaxColor()` is now `getMaxColorObject`.
  - `getMidColor()` is now `getMidColorObject`.
  - `getMinColor()` is now `getMinColorObject`.
- [`Range`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt):
  - `getFontColor()` is now `getFontColorObject()`.
  - `getFontColors()` is now `getFontColorObjects()`.
- [`Sheet`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#methods):
  - `getTabColor()` is now `getTabColorObject`.
- [`Slicer`](https://developers.google.com/apps-script/reference/spreadsheet/slicer.md.txt):
  - `getBackgroundColor()` is now `getBackgroundColorObject()`.

## March 17, 2022

**Google Forms API** v1 Announcement The Google Forms API is now generally available.

## February 14, 2022

**Google Apps Script** Feature Owners receive email alerts when someone outside the owner's organization edits a script project in the new integrated development environment (IDE).

- **For container-bound scripts**: If someone outside the container owner's organization creates or edits a container-bound script project, the container owner receives an email notification.

- **For standalone scripts**: If someone outside the script project owner's organization edits a standalone script project, the script project owner receives an email notification.

## January 19, 2022

**Google Apps Script** Feature The following classes have been added to the [Spreadsheet Service](https://developers.google.com/apps-script/reference/spreadsheet.md.txt) to let you add images to cells:

- [`CellImageBuilder`](https://developers.google.com/apps-script/reference/spreadsheet/cell-image-builder.md.txt): This builder creates the image value needed to add an image to a cell.
- [`CellImage`](https://developers.google.com/apps-script/reference/spreadsheet/cell-image.md.txt): Represents an image to add to a cell.

To add an image to a cell, you must create a new image value for the image using [`SpreadsheetApp.newCellImage()`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app.md.txt#newCellImage()) and [`CellImageBuilder`](https://developers.google.com/apps-script/reference/spreadsheet/cell-image-builder.md.txt). Then, use [`Range.setValue(value)`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#setValue(Object)) or [`Range.setValues(values)`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#setValues(Object)) to add the image value to the cell.

## December 15, 2021

**Google Apps Script** Deprecated Versions 1.0 and 1.1 of the TLS security protocol are disabled. To establish [JDBC](https://developers.google.com/apps-script/guides/jdbc.md.txt) connections, use TLS 1.2 or higher.

## October 20, 2021

**Google Calendar API** v3 Feature The Calendar API now exposes a new `eventType`. The new type is called `focusTime` and allows users of the API to distinguish the special focus time events. For more information, see the [API reference](https://developers.google.com/calendar/v3/reference/events).

## September 02, 2021

**Google Keep API** v1 Announcement Announcement
The Google Keep API is now available for enterprise administrators.

## September 01, 2021

**Google Apps Script** Feature 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](https://developers.google.com/apps-script/guides/html/restrictions.md.txt).

## August 31, 2021

**Google Apps Script** Feature The [Drive Service](https://developers.google.com/apps-script/reference/drive.md.txt) has added three new methods to the [file](https://developers.google.com/apps-script/reference/drive/file.md.txt) and [folder](https://developers.google.com/apps-script/reference/drive/folder.md.txt) classes to manage the use of resource keys when sharing files and folders.

- `getSecurityUpdateEligible()`: Gets whether a file for folder is eligible to apply the security update that requires a resource key for access when it's shared using a link.
- `getSecurityUpdateEnabled()`: Gets whether a file or folder requires a resource key for access when it's shared using a link.
- `setSecurityUpdateEnabled(enabled)`: Sets whether the file or folder requires a resource key for access when it's shared using a link.

Learn more about the [resource key security update for Drive](https://support.google.com/drive/answer/10729743).

## August 23, 2021

**Google Apps Script** Feature The [Document Service](https://developers.google.com/apps-script/reference/document.md.txt) has added support for smart chips by adding three new classes:

- [Date](https://developers.google.com/apps-script/reference/document/date.md.txt) - An element representing a formatted date.
- [Person](https://developers.google.com/apps-script/reference/document/person.md.txt) - An element representing a link to a person.
- [RichLink](https://developers.google.com/apps-script/reference/document/rich-link.md.txt) - An element representing a link to a Google resource, such as a Drive file or a YouTube video.

Learn more about [smart chips in Google Docs](https://support.google.com/docs/answer/10710316).

## August 09, 2021

**Google Apps Script** Change The Microsoft SQL Server JDBC driver was updated to version 7.2.1. If you encounter issues, [report them on the issue tracker](https://issuetracker.google.com/issues?q=componentid:191640%2B). If you're an administrator and need live support, [contact Google Workspace support](https://knowledge.workspace.google.com/admin/support/contact-google-workspace-support).

## August 02, 2021

**Google Sheets API** v4 Deprecated Google Sheets API v3 is turned down. For more information, see [Migrate from Sheets API v3](https://developers.google.com/sheets/api/guides/migration).

## June 01, 2021

**Google Apps Script** Feature A new divider widget has been added for Google Workspace Add-ons. To add a divider to an add-on card, use the [`newDivider()` method](https://developers.google.com/apps-script/reference/card-service/card-service.md.txt#newdivider) within the [Card service](https://developers.google.com/apps-script/reference/card-service/card-service.md.txt).

## May 27, 2021

**Google Apps Script** Feature A new method has been added to the [`Sheet` class](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#setrowheightsforcedstartrow,-numrows,-height) of the [`Spreadsheet` service](https://developers.google.com/apps-script/reference/spreadsheet.md.txt). [`setRowHeightsForced(startRow, numRows, height)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#setrowheightsforcedstartrow,-numrows,-height) lets you manually set the height for a row or a set of rows.

## May 18, 2021

**Google Calendar API** v3 Feature Two new quotas now exist for the Calendar API in addition to the general [Calendar usage limits](https://support.google.com/a/answer/2905486):

- Per minute per project.
- Per minute per project per user.

See [Manage quotas](https://developers.google.com/calendar/api/guides/quota) for more information.

## March 15, 2021

**Google Apps Script** Change The following updates have been made to deployments in the new editor:

- You can now have more than one active deployment.
- You can now change the version associated with an active deployment.

To learn more, see [Create and manage deployments](https://developers.google.com/apps-script/concepts/deployments.md.txt).

## March 09, 2021

**Google Workspace add-ons** Deprecated The [`KeyValue` class](https://developers.google.com/apps-script/reference/card-service/key-value.md.txt) is deprecated. Instead, use the [`DecoratedText` class](https://developers.google.com/apps-script/reference/card-service/decorated-text.md.txt).

## February 08, 2021

**Google Calendar API** v3 Change Starting today, all existing and new out of office events will be updated to set the organizer to `unknownorganizer@calendar.google.com` instead of the Calendar owner. It may take 2-3 weeks for this change to fully roll out.
Feature You can use the calendarId from the API endpoint `https://www.googleapis.com/calendar/v3/calendars/calendarId` to identify the owner of the out of office event.

## February 01, 2021

**Google Calendar API** v3 Feature The Calendar API now exposes a new field for events. The new field is called `eventType` and allows users of the API to distinguish special event types, such as `outOfOffice`. For more information, see the [API reference](https://developers.google.com/calendar/v3/reference/events).

## January 11, 2021

**Google Calendar API** v3 Change From now, we require `conferenceData` to be consistent with `conferenceData.conferenceSolution.key.type`; meaning only Google Meet calls can have `conferenceData.conferenceSolution.key.type` set to `hangoutsMeet`. All 3P video conference providers are expected to set `conferenceData.conferenceSolution.key.type` to `addOn`.

## December 07, 2020

**Google Apps Script** Announcement The Apps Script integrated development environment, or IDE, has been fully redesigned. Along with a completely new interface, the following features have been updated:

- The editor now has a collapsible left sidebar to navigate to the Apps Script project overview, settings, executions, and triggers.
- The editor's resources panel now includes files, advanced services, and libraries.
- Autoformatting has been added to the editor.
- Autocomplete in the editor has been enhanced to be faster, more consistent, and extends its support to user-defined functions and JavaScript language features. You can add JSDoc to your functions for better autocomplete suggestions.
- The editor now supports codeblock and function collapsing.
- Keyboard shortcuts and a Command Palette has been added to the editor. Press F1 to view the Command Palette and available keyboard shortcuts.
- The editor now includes a contextual right-click menu with options such as Go To Symbol, Rename Symbols, and Command Palette.
- Enhancements have been made to the debugger's performance and speed.
- Logs now stream in real-time as you run a script.
- The deployments dialog auto-detects the deployment types from the script project's manifest. You can change or add more types as needed.
- Deployments have been merged with versions. Each time you create a new deployment, a new version is automatically created. clasp users are unaffected by this change.
- A single deployment can be an add-on deployment , web app, library, or API executable. Any deployment can be used as a library.
- Now only one deployment can be active at a time. This change doesn't affect existing active deployments. clasp users are unaffected by this change.
- You can no longer explicitly deactivate published web apps. Instead, delete the deployment that has the web app. To reactivate the web app, deploy it again.
- The debugger is no longer supported in the Rhino runtime. To use the debugger, [migrate your script to the V8 runtime](https://developers.google.com/apps-script/guides/v8-runtime/migration.md.txt).
- Testing Editor Add-ons is not yet supported in this release and will be added in 2021. To test Editor Add-ons, switch back to the legacy IDE.

To switch back to the legacy IDE from within the editor, at the top, click **Use legacy editor**.

## October 23, 2020

**Google Apps Script** Feature An advanced service for [Google Tables](https://tables.area120.google.com/u/0/home) has been added to Apps Script. The [`Tables` service](https://developers.google.com/apps-script/advanced/tables) allows scripts to programmatically read and edit rows within `Tables`.

## September 07, 2020

**Google Calendar API** v3 Change We stopped auto-populating Meet for API calls (such as `Events.insert`) to prevent Meet conferences being added unintentionally via 3rd parties.
Fixed Meet video conferences should be added explicitly using the following existing parameters:

1. Set `conferenceDataVersion` query parameter to `1`.
2. Set `conferenceData.createRequest` event property as follows:
   - `conferenceData.createRequest.conferenceSolutionKey.type` to `hangoutsMeet`.
   - `conferenceData.createRequest.requestId` to unique request id.

## September 03, 2020

**Google Apps Script** Feature New classes and methods have been added to support [Connected Sheets](https://gsuiteupdates.googleblog.com/2020/08/connected-sheets-api-apps-script.html).

The following new classes have been added to the [`Spreadsheet` service](https://developers.google.com/apps-script/reference/spreadsheet.md.txt):

- `DataSourceChart`
- `DataSourceColumn`
- `DataSourceFormula`
- `DataSourcePivotTable`
- `DataSourceRefreshSchedule`
- `DataSourceRefreshScheduleFrequency`
- `DataSourceSheet`
- `DataSourceSheetFilter`
- `DataSourceTableColumn`
- `DataSourceTableFilter`
- `DateTimeGroupingRule`
- `PivotGroupLimit`
- `SortSpec`

New methods to support Connected Sheets have been added to the following classes in the [`Spreadsheet` service](https://developers.google.com/apps-script/reference/spreadsheet.md.txt):

- `BigQueryDataSourceSpecBuilder`
- `BigQueryDataSourceSpec`
- `DataExecutionStatus`
- `DataSourceTable`
- `DataSource`
- `EmbeddedChart`
- `FilterCriteriaBuilder`
- \`PivotFilter
- `PivotGroup`
- `PivotTable`
- `PivotValue`
- `Range`
- `Sheet`
- `SpreadsheetApp`
- `Spreadsheet`

## August 27, 2020

**Google Apps Script** Feature A new class called [`DecoratedText`](https://developers.google.com/apps-script/reference/card-service/decorated-text.md.txt) has been added to the [Card Service](https://developers.google.com/apps-script/reference/card-service/card-service.md.txt). `DecoratedText` adds text with optional decorations and was added to replace the [`KeyValue` class](https://developers.google.com/apps-script/reference/card-service/key-value.md.txt).

## July 27, 2020

**Google Apps Script** Deprecated The following [`Folder` class methods](https://developers.google.com/apps-script/reference/drive/folder.md.txt) have been [deprecated](https://developers.google.com/apps-script/reference/drive/folder.md.txt#expandable-1):

- `addFile(File)`
- `addFolder(Folder)`
- `removeFile(File)`
- `removeFolder(Folder)`
Announcement To help [simplify Google Drive's folder structure and sharing models](https://cloud.google.com/blog/products/g-suite/simplifying-google-drives-folder-structure-and-sharing-models), new methods have been added to the [`Drive` service](https://developers.google.com/apps-script/reference/drive.md.txt) and some existing methods have been deprecated.
Feature The `DriveApp` now has an `enforceSingleParent(value)` method that enables or disables `enforceSingleParent` behavior.

- The [`File` class](https://developers.google.com/apps-script/reference/drive/file.md.txt) now has the following methods:

  - `file.getTargetId()`: Gets a shortcut's file ID.
  - `file.getTargetMimeType()`: Returns the mime type of the item a shortcut points to.
  - `file.moveTo(destination)`: Moves a file to a specified destination folder.

The [`Folder` class](https://developers.google.com/apps-script/reference/drive/folder.md.txt) now has the following methods:

- `folder.createShortcut(targetId)`: Creates a shortcut to the provided Drive item ID, and returns it.
- `folder.moveTo(destination)`: Moves an item to the provided destination folder.

## June 12, 2020

**Google Apps Script** Feature New methods have been added to the [`Spreadsheet` service](https://developers.google.com/apps-script/reference/spreadsheet.md.txt):

- The [`RichTextValue` class](https://developers.google.com/apps-script/reference/spreadsheet/rich-text-value.md.txt) now has a `RichTextValue.getLinkUrl()` method that gets the URL of the specified value.
- The [`RichTextValueBuilder` class](https://developers.google.com/apps-script/reference/spreadsheet/rich-text-value-builder.md.txt) now has a `RichTextValueBuilder.setLinkUrl()` method that sets the link URL for the specified value.
- The [`PivotTable` class](https://developers.google.com/apps-script/reference/spreadsheet/pivot-table.md.txt) now has a `PivotTable.getSourceDataRange()` method that returns the source data range on which the pivot table is constructed.
- The [`PivotValue` class](https://developers.google.com/apps-script/reference/spreadsheet/pivot-value.md.txt) now has a `PivotValue.remove()` method that removes the value from the pivot table.

## June 01, 2020

**Google Vault API** v1 Deprecated All Team Drive-related fields are removed from the Vault API. Although these fields are marked as deprecated and will continue to be available until then, we strongly recommend that you update your apps and your API configuration to reference the new fields as soon as possible. If you do not migrate your apps by June 1, 2020, they might stop functioning.

If you have additional questions or need assistance, please visit our [support page](https://developers.google.com/vault/support).

## May 14, 2020

**Google Workspace Admin SDK** Feature **Reports API** : A new parameter `member_type` has been added to the Enterprise Groups activity report. Valid member types include user, group, service account, and other.

## April 22, 2020

**Google Apps Script** Feature A new simple trigger, [`onSelectionChange(e)`](https://developers.google.com/apps-script/guides/triggers.md.txt#onselectionchangee), has been added for Google Sheets. The `onSelectionChange(e)` trigger runs automatically when a user changes the selection in a spreadsheet.

## April 02, 2020

**Google Apps Script** Feature The following has been added to the [Spreadsheet service](https://developers.google.com/apps-script/reference/spreadsheet.md.txt):

- A new [`Drawing` class](https://developers.google.com/apps-script/reference/spreadsheet/drawing.md.txt) has been added to support drawings.
- You can now get your drawings with the [`Sheet.getDrawings()` method](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#getdrawings).

The following has been added to the [Drive service](https://developers.google.com/apps-script/reference/drive.md.txt):

- There's a new `FILE_ORGANIZER` value in the [`Permission` enum](https://developers.google.com/apps-script/reference/drive/permission.md.txt). If you have `FILE_ORGANIZER` permission on a shared drive, you can edit, trash, and move content within that drive.

## March 16, 2020

**Google Calendar API** v3 Change Service accounts created on or after March 2, 2020 are only able to invite guests using [domain-wide delegation of authority](https://developers.google.com/calendar/auth#perform-g-suite-domain-wide-delegation-of-authority).

## February 28, 2020

**Google Apps Script** Feature The following methods have been added to the [Spreadsheet service](https://developers.google.com/apps-script/reference/spreadsheet.md.txt) to support the use of theme colors. Many of these methods duplicate the effect of existing color methods, but let you use [`Color` objects](https://developers.google.com/apps-script/reference/spreadsheet/color.md.txt) instead of strings as parameters and return types:

- The [`Banding` class](https://developers.google.com/apps-script/reference/spreadsheet/banding.md.txt) now has 16 new methods that manipulate color in the banding columns and rows using `Color` objects.
- The [`BooleanCondition` class](https://developers.google.com/apps-script/reference/spreadsheet/boolean-condition.md.txt) now has two new methods that retrieve the color of the condition's background and font as `Color` objects.
- The [`ConditionalFormatRuleBuilder` class](https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder.md.txt) now has seven new methods that set color-based format rules using `Color` objects.
- The [`GradientCondition` class](https://developers.google.com/apps-script/reference/spreadsheet/gradient-condition.md.txt) now has three new methods that retrieve condition colors as `Color` objects.
- The [`Range` class](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt) now has eight new methods that get and set font and background colors using `Color` objects.
- The [`Sheet` class](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt) now has two new methods that get and set tab colors using `Color` objects.
- The [`Slicer` class](https://developers.google.com/apps-script/reference/spreadsheet/slicer.md.txt) now has two new methods that get and set the background color of the slicer using `Color` objects.
- The [`TextStyleBuilder` class](https://developers.google.com/apps-script/reference/spreadsheet/text-style-builder.md.txt) now has a [`TextStyleBuilder.setForegroundColorObject(color)` method](https://developers.google.com/apps-script/reference/spreadsheet/text-style-builder.md.txt#setForegroundColorObject(Color)) that updates the foreground color of the style builder using a `Color` object.
- The [`TextStyle` class](https://developers.google.com/apps-script/reference/spreadsheet/text-style.md.txt) now has a [`TextStyle.getForegroundColorObject()` method](https://developers.google.com/apps-script/reference/spreadsheet/text-style.md.txt#getForegroundColorObject()) that gets the foreground color of the style as a `Color` object.

## February 05, 2020

**Google Apps Script** Announcement Apps Script now supports the [V8 runtime](https://developers.google.com/apps-script/guides/v8-runtime.md.txt). This enables modern JavaScript features and syntax in Apps Script. You can [migrate existing scripts](https://developers.google.com/apps-script/guides/v8-runtime/migration.md.txt) to use V8 and its features.

## January 21, 2020

**Google Apps Script** Feature To support the launch of [G Suite Add-ons](https://developers.google.com/gsuite/add-ons/concepts/types#g_suite_add-ons), the following manifest changes, service, classes, and methods have been added to Add-ons:

- The add-ons [manifest structure](https://developers.google.com/apps-script/manifest.md.txt) has been updated to provide configuration controls for G Suite Add-ons. All add-on manifest settings are specified in the [`AddOns` object](https://developers.google.com/apps-script/manifest/addons.md.txt) in the manifest.
  Manifest fields that previously supported Gmail add-ons still exist, but are now deprecated. See [Upgrading your published add-ons](https://developers.google.com/gsuite/add-ons/how-tos/upgrade-addons) for instructions on how to upgrade a Gmail add-on into a G Suite add-on.

- The [Card service](https://developers.google.com/apps-script/reference/card-service.md.txt) has been extended with the following classes and methods that provide new widgets and event responses:

  - [`CalendarEventActionResponse`](https://developers.google.com/apps-script/reference/card-service/calendar-event-action-response.md.txt)
  - [`CalendarEventActionResponseBuilder`](https://developers.google.com/apps-script/reference/card-service/calendar-event-action-response-builder.md.txt)
  - [`DatePicker`](https://developers.google.com/apps-script/reference/card-service/date-picker.md.txt)
  - [`DateTimePicker`](https://developers.google.com/apps-script/reference/card-service/date-time-picker.md.txt)
  - [`DisplayStyle`](https://developers.google.com/apps-script/reference/card-service/display-style.md.txt)
  - [`DriveItemsSelectedActionResponse`](https://developers.google.com/apps-script/reference/card-service/drive-items-selected-action-response.md.txt)
  - [`DriveItemsSelectedActionResponseBuilder`](https://developers.google.com/apps-script/reference/card-service/drive-items-selected-action-response-builder.md.txt)
  - [`FixedFooter`](https://developers.google.com/apps-script/reference/card-service/fixed-footer.md.txt)
  - [`SwitchControlType`](https://developers.google.com/apps-script/reference/card-service/switch-control-type.md.txt)
  - [`TimePicker`](https://developers.google.com/apps-script/reference/card-service/time-picker.md.txt)
  - [`CardBuilder.setDisplayStyle(displayStyle)`](https://developers.google.com/apps-script/reference/card-service/card-builder.md.txt#setDisplayStyle(DisplayStyle))
  - [`CardBuilder.setFixedFooter(fixedFooter)`](https://developers.google.com/apps-script/reference/card-service/card-builder.md.txt#setfixedfooterfixedfooter)
  - [`CardBuilder.setPeekCardHeader(peekCardHeader)`](https://developers.google.com/apps-script/reference/card-service/card-builder.md.txt#setpeekcardheaderpeekcardheader)
  - [`CardService.newCalendarEventActionResponseBuilder()`](https://developers.google.com/apps-script/reference/card-service/card-service.md.txt#newcalendareventactionresponsebuilder)
  - [`CardService.newDatePicker()`](https://developers.google.com/apps-script/reference/card-service/card-service.md.txt#newdatepicker)
  - [`CardService.newDateTimePicker()`](https://developers.google.com/apps-script/reference/card-service/card-service.md.txt#newdatetimepicker)
  - [`CardService.newDriveItemsSelectedActionResponseBuilder()`](https://developers.google.com/apps-script/reference/card-service/card-service.md.txt#newdriveitemsselectedactionresponsebuilder)
  - [`CardService.newFixedFooter()`](https://developers.google.com/apps-script/reference/card-service/card-service.md.txt#newfixedfooter)
  - [`CardService.newTimePicker()`](https://developers.google.com/apps-script/reference/card-service/card-service.md.txt#newtimepicker)
  - [`Switch.setControlType(controlType)`](https://developers.google.com/apps-script/reference/card-service/switch.md.txt#setcontroltypecontroltype)

The [Conference Data service](https://developers.google.com/apps-script/reference/conference-data.md.txt) has been added to Apps Script. The service helps G Suite Add-ons that extend Google Calendar to stay in sync with third-party conferencing applications. This service is only useful to developers who manage a conferencing application and want to make it available in Google Calendar.

## January 14, 2020

**Google Workspace add-ons** Announcement [Google Workspace Add-ons](https://developers.google.com/workspace/add-ons/concepts/types.md.txt#g_suite_add-ons) have been launched. Google Workspace add-ons are the latest generation of add-ons, and build on the original Gmail add-ons infrastructure. Google Workspace add-ons provide a variety of new features, including:

- The ability to extend [Gmail](https://developers.google.com/workspace/add-ons/gmail.md.txt), [Calendar](https://developers.google.com/workspace/add-ons/calendar.md.txt), and [Drive](https://developers.google.com/workspace/add-ons/drive.md.txt)---all from a single add-on!
- [Homepage interfaces](https://developers.google.com/workspace/add-ons/concepts/homepages.md.txt) that provide an initial start point for the add-on and non-contextual interfaces.
- Contextual interactions that allow Google Workspace add-ons to automatically react when user [opens a Gmail message](https://developers.google.com/workspace/add-ons/gmail/extending-message-ui.md.txt), [composes a new draft message](https://developers.google.com/workspace/add-ons/gmail/extending-compose-ui.md.txt), [edits a Calendar event](https://developers.google.com/workspace/add-ons/calendar/building-calendar-interfaces.md.txt#extending_the_calendar_event_interface), or [selects files and folders in Google Drive](https://developers.google.com/workspace/add-ons/drive/building-drive-interfaces.md.txt#drive_contextual_interface_for_items_selected).
- The ability to create client-independent interfaces using Apps Script's [Card service](https://developers.google.com/apps-script/reference/card-service/card-service.md.txt), including new widgets like [Date and Time pickers](https://developers.google.com/workspace/add-ons/concepts/widgets.md.txt#date_and_time_pickers).
- The ability to publish Google Workspace add-ons to the [Google Workspace Marketplace](https://workspace.google.com/marketplace/).

With the launch of Google Workspace add-ons, Gmail add-ons have been deprecated. You can still use existing Gmail add-ons, but they are effectively just Google Workspace add-ons that only extend Gmail. If you have Gmail add-ons you've developed, you can [upgrade them into Google Workspace add-ons](https://developers.google.com/workspace/add-ons/how-tos/upgrade-addons.md.txt) to take advantage of the new features.

**Note**: Editor add-ons can't be upgraded into Google Workspace add-ons at this time. All editor add-ons remain functional.

## December 18, 2019

**Google Apps Script** Feature The [Spreadsheet service](https://developers.google.com/apps-script/reference/spreadsheet.md.txt) has been extended with the following class and new methods to support using color building and theme colors:

- [`Color`](https://developers.google.com/apps-script/reference/spreadsheet/color.md.txt)
- [`ColorBuilder`](https://developers.google.com/apps-script/reference/spreadsheet/color-builder.md.txt)
- [`SpreadsheetTheme`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-theme.md.txt)
- [`ThemeColor`](https://developers.google.com/apps-script/reference/spreadsheet/theme-color.md.txt)
- [`ThemeColorType`](https://developers.google.com/apps-script/reference/spreadsheet/theme-color-type.md.txt)
- [`SpreadsheetApp.newColor()`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app.md.txt#newcolor)
- [`Spreadsheet.getPredefinedSpreadsheetThemes()`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#getpredefinedspreadsheetthemes)
- [`Spreadsheet.getSpreadsheetTheme()`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#getspreadsheettheme)
- [`Spreadsheet.resetSpreadsheetTheme()`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#resetspreadsheettheme)
- [`Spreadsheet.setSpreadsheetTheme(theme)`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#setspreadsheetthemetheme)

## December 11, 2019

**Google Apps Script** Feature The [Data Studio service](https://developers.google.com/apps-script/reference/data-studio.md.txt) has been extended with the following class and new methods to support different response types and dynamic statuses:

- [`GetDataResponse`](https://developers.google.com/apps-script/reference/data-studio/get-data-response.md.txt)
- [`GetSchemaResponse`](https://developers.google.com/apps-script/reference/data-studio/get-schema-response.md.txt)
- [`SetCredentialsResponse`](https://developers.google.com/apps-script/reference/data-studio/set-credentials-response.md.txt)
- [`Checkbox.setIsDynamic(isDynamic)`](https://developers.google.com/apps-script/reference/data-studio/checkbox.md.txt#setisdynamicisdynamic)
- [`CommunityConnector.newGetDataResponse()`](https://developers.google.com/apps-script/reference/data-studio/community-connector.md.txt#newgetdataresponse)
- [`CommunityConnector.newGetSchemaResponse()`](https://developers.google.com/apps-script/reference/data-studio/community-connector.md.txt#newgetschemaresponse)
- [`CommunityConnector.newSetCredentialsResponse()`](https://developers.google.com/apps-script/reference/data-studio/community-connector.md.txt#newsetcredentialsresponse)
- [`Config.setIsSteppedConfig(isSteppedConfig)`](https://developers.google.com/apps-script/reference/data-studio/config.md.txt#setissteppedconfigissteppedconfig)
- [`SelectMultiple.setIsDynamic(isDynamic)`](https://developers.google.com/apps-script/reference/data-studio/select-multiple.md.txt#setisdynamicisdynamic)
- [`SelectSingle.setIsDynamic(isDynamic)`](https://developers.google.com/apps-script/reference/data-studio/select-single.md.txt#setisdynamicisdynamic)
- [`TextArea.setIsDynamic(isDynamic)`](https://developers.google.com/apps-script/reference/data-studio/text-area.md.txt#setisdynamicisdynamic)
- [`TextInput.setIsDynamic(isDynamic)`](https://developers.google.com/apps-script/reference/data-studio/text-input.md.txt#setisdynamicisdynamic)

## November 12, 2019

**Gmail API** v1 Change The `messages.import` method uses a more performant backend implementation. The new version is API-compatible with the previous implementation and all clients automatically started using the new behavior as of a few weeks ago. The new backend supports parallel `message.import` calls efficiently and clients can now import messages in parallel for a user to achieve higher migration throughput. The quota cost of the `message.import` method has been decreased to reflect the new performance.
**Google Workspace add-ons** Change The Gmail add-on `https://www.googleapis.com/auth/gmail.addons.execute` [scope](https://developers.google.com/workspace/add-ons/concepts/scopes) is no longer required for Gmail add-ons. Apps Script and Gmail now ignore this scope if it is present in an add-on's manifest.

## November 07, 2019

**Google Workspace add-ons** Change All add-ons are now in the G Suite Marketplace.

To streamline the add-on discovery experience for users in the G Suite Marketplace, publication of both public and private add-ons to the Chrome Web Store is deprecated. Chrome extensions continue to be presented in the Chrome Web Store and aren't affected by this change.

## November 06, 2019

**Google Apps Script** Feature The [Spreadsheet service](https://developers.google.com/apps-script/reference/spreadsheet.md.txt) has been extended with the following class and new methods to support using slicers to filter ranges, charts, and pivot tables:

- [`Slicer`](https://developers.google.com/apps-script/reference/spreadsheet/slicer.md.txt)
- [`Sheet.getSlicers()`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#getslicers)
- [`Sheet.insertSlicer(range, anchorRowPos, anchorColPos)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#insertslicerrange,-anchorrowpos,-anchorcolpos)
- [`Sheet.insertSlicer(range, anchorRowPos, anchorColPos, offsetX, offsetY)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#insertslicerrange,-anchorrowpos,-anchorcolpos,-offsetx,-offsety)

The [Script service](https://developers.google.com/apps-script/reference/script.md.txt) has been extended with the [`ScriptApp.getIdentityToken()` method](https://developers.google.com/apps-script/reference/script/script-app.md.txt#getidentitytoken), which returns an identity token for the effective user.

## October 28, 2019

**Google Apps Script** Deprecated You can no longer publish web apps to the Chrome Web Store. The Chrome Web Store [deprecated Chrome apps in 2016](https://blog.chromium.org/2016/08/from-chrome-apps-to-web.html) 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](https://developers.google.com/gsuite/add-ons/concepts/types#editor_add-ons) aren't affected; you can still [publish Editor Add-ons](https://developers.google.com/gsuite/add-ons/how-tos/publishing-editor-addons) to the Chrome Web Store.

## October 23, 2019

**Google Apps Script** Deprecated Several classes and methods relating to the now shutdown [UiApp service](https://developers.google.com/apps-script/guides/support/sunset.md.txt) have been removed. Most of these methods involved interactions between the [Charts service](https://developers.google.com/apps-script/reference/charts.md.txt) and `UiApp` that were very seldom used. The following is a full list of the removed classes and methods:

- [Charts service](https://developers.google.com/apps-script/reference/charts.md.txt)
  - `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](https://developers.google.com/apps-script/reference/spreadsheet.md.txt)
  - `EmbeddedChart.getId()`
  - `EmbeddedChart.getType()`
  - `EmbeddedChart.setId(id)`
Change The [Slides service](https://developers.google.com/apps-script/reference/slides.md.txt) class `RgbColor` and the enumeration `ColorType have been moved from the Slides service to the [Base script service](https://developers.google.com/apps-script/reference/base). 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 documentation for these classes at [`RgbColor`](https://developers.google.com/apps-script/reference/base/rgb-color) and [`ColorType\`\](https://developers.google.com/apps-script/reference/base/color-type).

## September 27, 2019

**Google Calendar API** v3 Feature The Calendar API allows attaching a conference data of type `addOn` to a new or existing event using `Events.insert` or `Events.update` methods.

## September 09, 2019

**Google Apps Script** Change The [Card service](https://developers.google.com/apps-script/reference/card-service.md.txt) methods [`CardHeader.setUrl(url)`](https://developers.google.com/apps-script/reference/card-service/card-header.md.txt#setimageurlimageurl) and [`Image.setUrl(url)`](https://developers.google.com/apps-script/reference/card-service/image.md.txt#setimageurlurl) have been updated to accept an encoded image data string as an input parameter. As before, you can alternatively use a publicly-available image URL as the input parameter.

## August 07, 2019

**Google Apps Script** Deprecated Documentation for the UI service has been removed. This service was deprecated in December 2014 and officially [shut down on July 15, 2019](https://developers.google.com/apps-script/guides/support/sunset.md.txt#ui-service). To build interfaces for web apps and Editor Add-ons, use the [HTML service](https://developers.google.com/apps-script/reference/html.md.txt).

## July 30, 2019

**Google Workspace Admin SDK** Deprecated **Reports API**: The customer usage reports for App Maker and Apps Script are deprecated and will eventually be removed from the API.

## July 26, 2019

**Google Apps Script** Feature
- The [Group service](https://developers.google.com/apps-script/reference/groups.md.txt) has been updated with the [`Groups.getRoles(user)` method](https://developers.google.com/apps-script/reference/groups/group.md.txt#getrolesusers) that can determine the list of roles a specific user in a group has.
- The [Slides service](https://developers.google.com/apps-script/reference/slides.md.txt) has been extended with the following new methods to support concrete color schemes:
  - [`ColorScheme.setConcreteColor(type, color)`](https://developers.google.com/apps-script/reference/slides/color-scheme.md.txt#setconcretecolortype-color)
  - [`ColorScheme.setConcreteColor(type, red, green, blue)`](https://developers.google.com/apps-script/reference/slides/color-scheme.md.txt#setconcretecolortype-red-green-blue)
  - [`ColorScheme.setConcreteColor(type, hexColor)`](https://developers.google.com/apps-script/reference/slides/color-scheme.md.txt#setconcretecolortype-hexcolor)
- The [Spreadsheet service](https://developers.google.com/apps-script/reference/spreadsheet.md.txt) has been extended with the following new methods to support trimming whitespace and removing duplicate values:
  - [`RangeList.trimWhitespace()`](https://developers.google.com/apps-script/reference/spreadsheet/range-list.md.txt#trimwhitespace)
  - [`Range.removeDuplicates()`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#removeduplicates)
  - [`Range.removeDuplicates(columnsToCompare)`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#removeduplicatescolumnstocompare)
  - [`Range.trimWhitespace()`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#trimwhitespace)

## June 10, 2019

**Google Vault API** v1 Change The "Team Drive" feature of Google Drive has been renamed to "shared drive". Consequently, the Vault API is changing as follows:

- Shared drive-related request and response fields have replaced Team Drive in:

  - [`DriveOptions`](https://developers.google.com/vault/reference/rest/v1/Query#driveoptions)
  - [`HeldDriveQuery`](https://developers.google.com/vault/reference/rest/v1/matters.holds#helddrivequery)
  - [`SearchMethod`](https://developers.google.com/vault/reference/rest/v1/Query#searchmethod)
- [`SharedDriveInfo`](https://developers.google.com/vault/reference/rest/v1/Query#shareddriveinfo) has replaced [`TeamDriveInfo`](https://developers.google.com/vault/reference/rest/v1/Query#teamdriveinfo).

## May 20, 2019

**Google Apps Script** Feature
- The [Gmail service](https://developers.google.com/apps-script/reference/gmail.md.txt) has been updated with the [`GmailMessage.getHeader(name)` method](https://developers.google.com/apps-script/reference/gmail/gmail-message.md.txt#getheadername) that can retrieve a RFC 2822 header from a message.
- The [Optimization service](https://developers.google.com/apps-script/reference/optimization.md.txt) has been updated with the following batch methods:
  - [`LinearOptimizationEngine.addContraints(lowerBounds, upperBounds, variableNames, coefficients)`](https://developers.google.com/apps-script/reference/optimization/linear-optimization-engine.md.txt#addconstraintslowerbounds-upperbounds-variablenames-coefficients)
  - [`LinearOptimizationEngine.addVariables(names, lowerBounds, upperBounds, types, objectiveCoeffients)`](https://developers.google.com/apps-script/reference/optimization/linear-optimization-engine.md.txt#addvariablesnames-lowerbounds-upperbounds-types-objectivecoefficients)

## May 03, 2019

**Google Apps Script** Feature The [Document service](https://developers.google.com/apps-script/reference/document.md.txt) has been updated to add methods to get and set the language of a document:

- [`Document.getLanguage()`](https://developers.google.com/apps-script/reference/document/document.md.txt#getlanguage)
- [`Document.getSupportedLanguageCodes()`](https://developers.google.com/apps-script/reference/document/document.md.txt#getsupportedlanguagecodes)
- [`Document.setLanguage(languageCode)`](https://developers.google.com/apps-script/reference/document/document.md.txt#setlanguagelanguagecode)

## April 19, 2019

**Google Apps Script** Feature The [Data Studio service](https://developers.google.com/apps-script/reference/data-studio.md.txt) has been updated to add a few values to [`FieldType` enum](https://developers.google.com/apps-script/reference/data-studio/field-type.md.txt):

- `HYPERLINK`
- `IMAGE`
- `IMAGE_LINK`

## April 08, 2019

**Google Apps Script** Change The behavior of the [Google Cloud (GCP) projects](https://developers.google.com/apps-script/guides/cloud-platform-projects.md.txt) used by scripts has been altered. Now, the [default GCP projects](https://developers.google.com/apps-script/guides/cloud-platform-projects.md.txt#default_cloud_platform_projects) that Apps Script creates for new scripts are hidden and script owners can't access them directly. Admins and domain users with the `resourcemanager.projects.list` permission on the parenting GCP folder can still access default GCP projects.

If you need access to a script's GCP project (because you wish to publish it or take a similar action), it's best to switch your script to use a [standard GCP project](https://developers.google.com/apps-script/guides/cloud-platform-projects.md.txt#standard_cloud_platform_projects).

## April 05, 2019

**Google Apps Script** Feature
- The [Spreadsheet service](https://developers.google.com/apps-script/reference/spreadsheet.md.txt) has been extended with the following new classes and methods to support text finding, checkboxes, and other features:
  - [`TextFinder`](https://developers.google.com/apps-script/reference/spreadsheet/text-finder.md.txt)
  - [`RecalculationInterval`](https://developers.google.com/apps-script/reference/spreadsheet/recalculation-interval.md.txt)
  - [`SheetType`](https://developers.google.com/apps-script/reference/spreadsheet/sheet-type.md.txt)
  - [`DataValidationBuilder.requireCheckbox()`](https://developers.google.com/apps-script/reference/spreadsheet/data-validation-builder.md.txt#requirecheckbox)
  - [`DataValidationBuilder.requireCheckbox(checkedValue)`](https://developers.google.com/apps-script/reference/spreadsheet/data-validation-builder.md.txt#requirecheckboxcheckedvalue)
  - [`DataValidationBuilder.requireCheckbox(checkedValue, uncheckedValue)`](https://developers.google.com/apps-script/reference/spreadsheet/data-validation-builder.md.txt#requirecheckboxcheckedvalue-uncheckedvalue)
  - A `clearRanges()` method has been added to the all the embedded chart type builder classes, such as [`EmbeddedAreaChartBuilder.clearRanges()`](https://developers.google.com/apps-script/reference/spreadsheet/embedded-area-chart-builder.md.txt#clearranges)
  - [`EmbeddedChart.getChartId()`](https://developers.google.com/apps-script/reference/spreadsheet/embedded-chart.md.txt#getchartid)
  - [`RangeList.check()`](https://developers.google.com/apps-script/reference/spreadsheet/range-list.md.txt#check)
  - [`RangeList.insertCheckboxes()`](https://developers.google.com/apps-script/reference/spreadsheet/range-list.md.txt#insertcheckboxes)
  - [`RangeList.insertCheckboxes(checkedValue)`](https://developers.google.com/apps-script/reference/spreadsheet/range-list.md.txt#insertcheckboxescheckedvalue)
  - [`RangeList.insertCheckboxes(checkedValue, uncheckedValue)`](https://developers.google.com/apps-script/reference/spreadsheet/range-list.md.txt#insertcheckboxescheckedvalue-uncheckedvalue)
  - [`RangeList.removeCheckboxes()`](https://developers.google.com/apps-script/reference/spreadsheet/range-list.md.txt#removecheckboxes)
  - [`RangeList.uncheck()`](https://developers.google.com/apps-script/reference/spreadsheet/range-list.md.txt#uncheck)
  - [`Range.check()`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#check)
  - [`Range.createTextFinder(findText)`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#createtextfinderfindtext)
  - [`Range.getDataRegion()`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#getdataregion)
  - [`Range.getDataRegion(dimension)`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#getdataregiondimension)
  - [`Range.insertCheckboxes()`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#insertcheckboxes)
  - [`Range.insertCheckboxes(checkedValue)`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#insertcheckboxescheckedvalue)
  - [`Range.insertCheckboxes(checkedValue, uncheckedValue)`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#insertcheckboxescheckedvalue-uncheckedvalue)
  - [`Range.removeCheckboxes()`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#removecheckboxes)
  - [`Range.uncheck()`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#uncheck)
  - [`Sheet.createTextFinder(findText)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#createtextfinderfindtext)
  - [`Sheet.getType()`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#gettype)
  - [`Spreadsheet.createTextFinder(findText)`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#createtextfinderfindtext)
  - [`Spreadsheet.getIterativeCalculationConvergenceThreshold()`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#getiterativecalculationconvergencethreshold)
  - [`Spreadsheet.getMaxIterativeCalculationCycles()`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#getmaxiterativecalculationcycles)
  - [`Spreadsheet.getRecalculationInterval()`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#getrecalculationinterval)
  - [`Spreadsheet.isIterativeCalculationEnabled()`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#isiterativecalculationenabled)
  - [`Spreadsheet.moveChartToObjectSheet(chart)`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#movecharttoobjectsheetchart)
  - [`Spreadsheet.setIterativeCalculationConvergenceThreshold(minThreshold)`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#setiterativecalculationconvergencethresholdminthreshold)
  - [`Spreadsheet.setIterativeCalculationEnabled(isEnabled)`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#setiterativecalculationenabledisenabled)
  - [`Spreadsheet.setMaxIterativeCalculationCycles(maxIterations)`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#setmaxiterativecalculationcyclesmaxiterations)
  - [`Spreadsheet.setRecalculationInterval(recalculationInterval)`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#setrecalculationintervalrecalculationinterval)
- The [Data Studio service](https://developers.google.com/apps-script/reference/data-studio.md.txt) has been extended with the following new classes and methods that support configuring BigQuery connectors:
  - [`BigQueryConfig`](https://developers.google.com/apps-script/reference/data-studio/big-query-config.md.txt)
  - [`BigQueryParameterType`](https://developers.google.com/apps-script/reference/data-studio/big-query-parameter-type.md.txt)
  - [`CommunityConnector.newBigQueryConfig()`](https://developers.google.com/apps-script/reference/data-studio/community-connector.md.txt#newBigQueryConfig())
- The [`Notification` objects](https://developers.google.com/apps-script/reference/card-service/notification.md.txt) in the [Card service](https://developers.google.com/apps-script/reference/card-service.md.txt) no longer have a type that you must set. Calls to the now removed `Notification.setType(type)` method result in a no-op.

## March 16, 2019

**Google Vault API** v1 Change Hangouts Chat and Google Meet together are the next generation of Hangouts. Later this year they will replace the original version (classic Hangouts) in Google Workspace.

Vault admins must take action to prepare for this migration. [Learn More.](https://developers.google.com/vault/guides/chat)

## February 26, 2019

**Google Apps Script** Feature
- The [Spreadsheet service](https://developers.google.com/apps-script/reference/spreadsheet.md.txt) has been extended with the following new classes and methods to support [BigQuery data connectors in Sheets](https://cloud.google.com/blog/products/g-suite/connecting-bigquery-and-google-sheets-to-help-with-hefty-data-analysis):

  - [`BigQueryDataSourceSpec`](https://developers.google.com/apps-script/reference/spreadsheet/big-query-data-source-spec.md.txt)
  - [`BigQueryDataSourceSpecBuilder`](https://developers.google.com/apps-script/reference/spreadsheet/big-query-data-source-spec-builder.md.txt)
  - [`DataExecutionErrorCode`](https://developers.google.com/apps-script/reference/spreadsheet/data-execution-error-code.md.txt)
  - [`DataExecutionState`](https://developers.google.com/apps-script/reference/spreadsheet/data-execution-state.md.txt)
  - [`DataExecutionStatus`](https://developers.google.com/apps-script/reference/spreadsheet/data-execution-status.md.txt)
  - [`DataSourceParameterType`](https://developers.google.com/apps-script/reference/spreadsheet/data-source-parameter-type.md.txt)
  - [`DataSourceParameter`](https://developers.google.com/apps-script/reference/spreadsheet/data-source-parameter.md.txt)
  - [`DataSourceSpecBuilder`](https://developers.google.com/apps-script/reference/spreadsheet/data-source-spec-builder.md.txt)
  - [`DataSourceSpec`](https://developers.google.com/apps-script/reference/spreadsheet/data-source-spec.md.txt)
  - [`DataSourceTable`](https://developers.google.com/apps-script/reference/spreadsheet/data-source-table.md.txt)
  - [`DataSourceType`](https://developers.google.com/apps-script/reference/spreadsheet/data-source-type.md.txt)
  - [`DataSource`](https://developers.google.com/apps-script/reference/spreadsheet/data-source.md.txt)
  - [`Range.getDataSourceTables()`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#getdatasourcetables)
  - [`Sheet.getDataSourceTables()`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#getdatasourcetables)
  - [\`SpreadsheetApp.enableAllDataSourcesExecution()](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app.md.txt#enablealldatasourcesexecution)
  - [`SpreadsheetApp.enableBigQueryExecution()`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app.md.txt#enablebigqueryexecution)
  - [`SpreadsheetApp.newDataSourceSpec()`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app.md.txt#newdatasourcespec)
  - [`Spreadsheet.getDataSourceTables()`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#getdatasourcetables)
  - [`Spreadsheet.insertSheetWithDataSourceTable(spec)`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#insertsheetwithdatasourcetablespec)
- The [Data Studio service](https://developers.google.com/apps-script/reference/data-studio.md.txt) has been extended with the following new methods involving reaggregation settings:

  - [`Field.getIsReaggregatable()`](https://developers.google.com/apps-script/reference/data-studio/field.md.txt#getisreaggregatable)
  - [`Field.setIsReaggregatable(isReaggregatable)`](https://developers.google.com/apps-script/reference/data-studio/field.md.txt#setisreaggregatableisreaggregatable)

## February 04, 2019

**Google Docs API** v1 Announcement The Google Docs API is now generally available.

## January 22, 2019

**Google Apps Script** Deprecated The deprecated [UiApp service](https://developers.google.com/apps-script/reference/ui) will be officially shutdown on July 15th, 2019. After this date, the service will no longer function for any script project.
Feature
- The [Spreadsheet service](https://developers.google.com/apps-script/reference/spreadsheet.md.txt) has been extended with the following new classes and methods to support text styles and Rich Text cell formatting:
  - [`RichTextValue`](https://developers.google.com/apps-script/reference/spreadsheet/rich-text-value.md.txt)
  - [`RichTextValueBuilder`](https://developers.google.com/apps-script/reference/spreadsheet/rich-text-value-builder.md.txt)
  - [`TextStyle`](https://developers.google.com/apps-script/reference/spreadsheet/text-style.md.txt)
  - [`TextStyleBuilder`](https://developers.google.com/apps-script/reference/spreadsheet/text-style-builder.md.txt)
  - [`Range.getRichTextValue()`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#getrichtextvalue)
  - [`Range.getRichTextValues()`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#getrichtextvalues)
  - [`Range.getTextStyle()`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#gettextstyle)
  - [`Range.getTextStyles()`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#gettextstyles)
  - [`Range.setRichTextValue(value)`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#setrichtextvaluevalue)
  - [`Range.setRichTextValues(values)`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#setrichtextvaluesvalues)
  - [`Range.setTextStyle(style)`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#settextstylestyle)
  - [`Range.setTextStyles(styles)`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#settextstylesstyles)
  - [`SpreadsheetApp.newRichTextValue()`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app.md.txt#newrichtextvalue)
  - [`SpreadsheetApp.newTextStyle()`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app.md.txt#newtextstyle)
- The [Data Studio service](https://developers.google.com/apps-script/reference/data-studio.md.txt) has been extended with the following new classes and methods that define and support authentication types for community connectors:
  - [`GetAuthTypeResponse`](https://developers.google.com/apps-script/reference/data-studio/get-auth-type-response.md.txt)
  - [`AuthType`](https://developers.google.com/apps-script/reference/data-studio/auth-type.md.txt)
  - [`CommunityConnector,newAuthTypeResponse()`](https://developers.google.com/apps-script/reference/data-studio/community-connector.md.txt#newauthtyperesponse)

## January 04, 2019

**Google Apps Script** Feature
- The [Slides service](https://developers.google.com/apps-script/reference/slides.md.txt) has been extended with the following new classes and methods that support slide linking and text box insertion:
  - [`SlideLinkingMode`](https://developers.google.com/apps-script/reference/slides/slide-linking-mode.md.txt)
  - \[`Layout.insertTextBox(text)`}(https://developers.google.com/apps-script/reference/slides/layout#inserttextboxtext)
  - [`Layout.insertTextBox(text, left, top, width, height)`](https://developers.google.com/apps-script/reference/slides/layout.md.txt#inserttextboxtext-left-top-width-height)
  - [`Master.insertTextBox(text)`](https://developers.google.com/apps-script/reference/slides/master.md.txt#inserttextboxtext)
  - [`Master.insertTextBox(text, left, top, width, height)`](https://developers.google.com/apps-script/reference/slides/master.md.txt#inserttextboxtext-left-top-width-height)
  - [`Page.insertTextBox(text)`](https://developers.google.com/apps-script/reference/slides/page.md.txt#inserttextboxtext)
  - [`Page.insertTextBox(text, left, top, width, height)`](https://developers.google.com/apps-script/reference/slides/page.md.txt#inserttextboxtext-left-top-width-height)
  - [`Presentation.appendSlide(slide, linkingMode)`](https://developers.google.com/apps-script/reference/slides/presentation.md.txt#appendslideslide-linkingmode)
  - [`Presentation.insertSlide(insertionIndex, slide, linkingMode)`](https://developers.google.com/apps-script/reference/slides/presentation.md.txt#insertslideinsertionindex-slide-linkingmode)
  - [`Slide.getSlideLinkingMode()`](https://developers.google.com/apps-script/reference/slides/slide.md.txt#getslidelinkingmode)
  - [`Slide.getSourcePresentationId()`](https://developers.google.com/apps-script/reference/slides/slide.md.txt#getsourcepresentationid)
  - [`Slide.getSourceSlideObjectId()`](https://developers.google.com/apps-script/reference/slides/slide.md.txt#getsourceslideobjectid)
  - [`Slide.insertTextBox(text)`](https://developers.google.com/apps-script/reference/slides/slide.md.txt#inserttextboxtext)
  - [`Slide.insertTextBox(text, left, top, width, height)`](https://developers.google.com/apps-script/reference/slides/slide.md.txt#inserttextboxtext-left-top-width-height)
  - [`Slide.refreshSlide()`](https://developers.google.com/apps-script/reference/slides/slide.md.txt#refreshslide)
  - [`Slide.unlink()`](https://developers.google.com/apps-script/reference/slides/slide.md.txt#unlink)
- The [Data Studio service](https://developers.google.com/apps-script/reference/data-studio.md.txt) has been extended with the following new classes and methods that error displays:
  - [`DebugError`](https://developers.google.com/apps-script/reference/data-studio/debug-error.md.txt)
  - [`UserError`](https://developers.google.com/apps-script/reference/data-studio/user-error.md.txt)
  - [`CommunityConnector.newDebugError()`](https://developers.google.com/apps-script/reference/data-studio/community-connector.md.txt#newdebugerror)
  - [`CommunityConnector.newUserError()`](https://developers.google.com/apps-script/reference/data-studio/community-connector.md.txt#newusererror)

## December 13, 2018

**Google Apps Script** Deprecated The [Fusion Tables advanced service](https://developers.google.com/apps-script/advanced/fusion-tables) has been deprecated and will shutdown fully on December 3rd, 2019.
Feature The [Slides service](https://developers.google.com/apps-script/reference/slides.md.txt) has been extended with the following new classes and methods that support connector lines:

- [`ConnnectionSite`](https://developers.google.com/apps-script/reference/slides/connection-site.md.txt)
- [`Group.getConnectionSites()`](https://developers.google.com/apps-script/reference/slides/group.md.txt#getconnectionsites)
- [`Image.getConnectionSites()`](https://developers.google.com/apps-script/reference/slides/image.md.txt#getconnectionsites)
- [`Line.getConnectionSites()`](https://developers.google.com/apps-script/reference/slides/line.md.txt#getconnectionsites)
- [`Line.getEndConnection()`](https://developers.google.com/apps-script/reference/slides/line.md.txt#getendconnection)
- [`Line.getLineCategory()`](https://developers.google.com/apps-script/reference/slides/line.md.txt#getlinecategory)
- [`Line.getStartConnection()`](https://developers.google.com/apps-script/reference/slides/line.md.txt#getstartconnection)
- [`Line.isConnector()`](https://developers.google.com/apps-script/reference/slides/line.md.txt#isconnector)
- [`Line.setEndConnection(connectionSite)`](https://developers.google.com/apps-script/reference/slides/line.md.txt#setendconnectionconnectionsite)
- [`Line.setLineCategory(lineCategory)`](https://developers.google.com/apps-script/reference/slides/line.md.txt#setlinecategorylinecategory)
- [`Line.setStartConnection(connectionSite)`](https://developers.google.com/apps-script/reference/slides/line.md.txt#setstartconnectionconnectionsite)
- [`LineCategory.UNSUPPORTED`](https://developers.google.com/apps-script/reference/slides/line-category.md.txt)
- [`PageElement.getConnectionSites()`](https://developers.google.com/apps-script/reference/slides/page-element.md.txt#getconnectionsites)
- [`Shape.getConnectionSites()`](https://developers.google.com/apps-script/reference/slides/shape.md.txt#getconnectionsites)
- [`SheetsChart.getConnectionSites()`](https://developers.google.com/apps-script/reference/slides/sheets-chart.md.txt#getconnectionsites)
- [`Table.getConnectionSites()`](https://developers.google.com/apps-script/reference/slides/table.md.txt#getconnectionsites)
- [`Video.getConnectionSites()`](https://developers.google.com/apps-script/reference/slides/video.md.txt#getconnectionsites)
- [`WordArt.getConnectionSites()`](https://developers.google.com/apps-script/reference/slides/word-art.md.txt#getconnectionsites)

## November 19, 2018

**Google Calendar API** v3 Change Starting on January 7, 2019, notifications and reminders using the `sms` method type will be ignored. The API calls setting such notifications and reminders will still succeed and modify all the other fields.

Since Calendar offers in-app notifications, you can still get notified, regardless of your device or connection. For more information see [Google Calendar SMS notifications to be removed](https://gsuiteupdates.googleblog.com/2018/11/google-calendar-sms-notifications-to-be-removed.html).

## November 14, 2018

**Google Apps Script** Feature
- The [Card service](https://developers.google.com/apps-script/reference/card-service.md.txt) has been extended with the following new classes and methods that let you to customize the background of text button widgets:
  - [`TextButtonStyle`](https://developers.google.com/apps-script/reference/card-service/text-button-style.md.txt)
  - [`TextButton.setBackgroundColor(backgroundColor)`](https://developers.google.com/apps-script/reference/card-service/text-button.md.txt#setbackgroundcolorbackgroundcolor)
  - [`TextButton.setDisabled(disabled)`](https://developers.google.com/apps-script/reference/card-service/text-button.md.txt#setdisableddisabled)
  - [`TextButton.setTextButtonStyle(textButtonStyle)`](https://developers.google.com/apps-script/reference/card-service/text-button.md.txt#settextbuttonstyletextbuttonstyle)
- The [Slides service](https://developers.google.com/apps-script/reference/slides.md.txt) 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`](https://developers.google.com/apps-script/reference/slides/group.md.txt), [`Image`](https://developers.google.com/apps-script/reference/slides/image.md.txt), [`Line`](https://developers.google.com/apps-script/reference/slides/line.md.txt), [`PageElement`](https://developers.google.com/apps-script/reference/slides/page-element.md.txt), [`Shape`](https://developers.google.com/apps-script/reference/slides/shape.md.txt), [`SheetsChart`](https://developers.google.com/apps-script/reference/slides/sheets-chart.md.txt), [`Table`](https://developers.google.com/apps-script/reference/slides/table.md.txt), [`Video`](https://developers.google.com/apps-script/reference/slides/video.md.txt), and [`WordArt`](https://developers.google.com/apps-script/reference/slides/word-art.md.txt) classes:
  - `bringForward()`
  - `bringToFront()`
  - `sendBackward()`
  - `sendToBack()`
  - `setDescription(description)`
  - `setTitle(title)`
- The [Spreadsheet service](https://developers.google.com/apps-script/reference/spreadsheet.md.txt) 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`](https://developers.google.com/apps-script/reference/spreadsheet/developer-metadata.md.txt)
  - [`DeveloperMetadataFinder`](https://developers.google.com/apps-script/reference/spreadsheet/developer-metadata-finder.md.txt)
  - [`DeveloperMetadataLocation`](https://developers.google.com/apps-script/reference/spreadsheet/developer-metadata-location.md.txt)
  - [`DeveloperMetadataLocationType`](https://developers.google.com/apps-script/reference/spreadsheet/developer-metadata-location-type.md.txt)
  - [`DeveloperMetadataVisibility`](https://developers.google.com/apps-script/reference/spreadsheet/developer-metadata-visibility.md.txt)
  - [`Range.addDeveloperMetadata(key)`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#adddevelopermetadatakey)
  - [`Range.addDeveloperMetadata(key, visibility)`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#adddevelopermetadatakey-visibility)
  - [`Range.addDeveloperMetadata(key, value)`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#adddevelopermetadatakey-value)
  - [`Range.addDeveloperMetadata(key, value, visibility)`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#adddevelopermetadatakey-value-visibility)
  - [`Range.createDeveloperMetadataFinder()`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#createdevelopermetadatafinder)
  - [`Range.getDeveloperMetadata()`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#getdevelopermetadata)
  - [`Sheet.addDeveloperMetadata(key)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#adddevelopermetadatakey)
  - [`Sheet.addDeveloperMetadata(key, visibility)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#adddevelopermetadatakey-visibility)
  - [`Sheet.addDeveloperMetadata(key, value)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#adddevelopermetadatakey-value)
  - [`Sheet.addDeveloperMetadata(key, value, visibility)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#adddevelopermetadatakey-value-visibility)
  - [`Sheet.createDeveloperMetadataFinder()`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#createdevelopermetadatafinder)
  - [`Sheet.getDeveloperMetadata()`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#getdevelopermetadata)
  - [`Spreadsheet.addDeveloperMetadata(key)`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#adddevelopermetadatakey)
  - [`Spreadsheet.addDeveloperMetadata(key, visibility)`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#adddevelopermetadatakey-visibility)
  - [`Spreadsheet.addDeveloperMetadata(key, value)`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#adddevelopermetadatakey-value)
  - [`Spreadsheet.addDeveloperMetadata(key, value, visibility)`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#adddevelopermetadatakey-value-visibility)
  - [`Spreadsheet.createDeveloperMetadataFinder()`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#createdevelopermetadatafinder)
  - [`Spreadsheet.getDeveloperMetadata()`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#getdevelopermetadata)

## October 31, 2018

**Google Calendar API** v3 Feature The Calendar API now supports four new OAuth scopes. The scopes allow your application to limit access to only the data you really need. See [Authorizing Google Calendar API Requests](https://developers.google.com/calendar/auth) for more details.

## October 30, 2018

**Google Apps Script** Feature
- The [Spreadsheet service](https://developers.google.com/apps-script/reference/spreadsheet.md.txt) has been extended with the following new classes and methods:

  - [`OverGridImage`](https://developers.google.com/apps-script/reference/spreadsheet/over-grid-image.md.txt)
  - [`Sheet.getImages()`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#getimages)
  - [`Sheet.isColumnHiddenByUser(columnPosition)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#iscolumnhiddenbyusercolumnposition)
  - [`Sheet.isRowHiddenByFilter(rowPosition)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#isrowhiddenbyfilterrowposition)
  - [`Sheet.isRowHiddenByUser(rowPosition)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#isrowhiddenbyuserrowposition)
  - [`Spreadsheet.getImages()`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#getimages)
  - [`Spreadsheet.isColumnHiddenByUser(columnPosition)`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#iscolumnhiddenbyusercolumnposition)
  - [`Spreadsheet.isRowHiddenByFilter(rowPosition)`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#isrowhiddenbyfilterrowposition)
  - [`Spreadsheet.isRowHiddenByUser(rowPosition)`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#isrowhiddenbyuserrowposition)
- The following methods have been added to existing services:

  - console service
    - [`console.error()`](https://developers.google.com/apps-script/reference/base/console.md.txt#error())
    - [`console.info()`](https://developers.google.com/apps-script/reference/base/console.md.txt#info)
    - [`console.warn()`](https://developers.google.com/apps-script/reference/base/console.md.txt#warn)
  - DataStudio service
    - [`Field.isHidden()`](https://developers.google.com/apps-script/reference/data-studio/field.md.txt#isHidden())
    - [`Field.setIsHidden()`](https://developers.google.com/apps-script/reference/data-studio/field.md.txt#setishiddenishidden)
  - Gmail service
    - [`GmailAttachment.getHash()`](https://developers.google.com/apps-script/reference/gmail/gmail-attachment.md.txt#getHash())
    - [`GmailMessage.getAttachments(options)`](https://developers.google.com/apps-script/reference/gmail/gmail-message.md.txt#getAttachments(Object))
Change The following methods in the [Spreadsheet service](https://developers.google.com/apps-script/reference/spreadsheet.md.txt) now return an [`OverGridImage` object](https://developers.google.com/apps-script/reference/spreadsheet/over-grid-image.md.txt) instead of void:

- [`Sheet.insertImage(blobSource, column, row)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#insertimageblobsource-column-row)
- [`Sheet.insertImage(blobSource, column, row, offsetX, offsetY)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#insertimageblobsource-column-row-offsetx-offsety)
- [`Sheet.insertImage(url, column, row)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#insertimageurl-column-row)
- [`Sheet.insertImage(url, column, row, offsetX, offsetY)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#insertimageurl-column-row-offsetx-offsety)

## October 22, 2018

**Google Workspace Admin SDK** Change **Reports API** : The `community_name` parameter for the [Google+ communities report](https://developers.google.com/admin-sdk/reports/v1/reference/usage-ref-appendix-a/entities-gplus) is now available only for communities inside your organization.

## October 18, 2018

**Google Apps Script** Feature The [Card service](https://developers.google.com/apps-script/reference/card-service.md.txt) has been extended with the following classes and methods to support [Gmail add-on compose actions](https://developers.google.com/gmail/add-ons/how-tos/extending-compose-ui):

- [`CardService.UpdateDraftActionResponse`](https://developers.google.com/apps-script/reference/card-service/update-draft-action-response.md.txt)
- [`CardService.UpdateDraftActionResponseBuilder`](https://developers.google.com/apps-script/reference/card-service/update-draft-action-response-builder.md.txt)
- [`CardService.UpdateDraftBodyAction`](https://developers.google.com/apps-script/reference/card-service/update-draft-body-action.md.txt)
- [`CardService.ContentType`](https://developers.google.com/apps-script/reference/card-service/content-type.md.txt)
- [`CardService.UpdateDraftBodyType`](https://developers.google.com/apps-script/reference/card-service/update-draft-body-type.md.txt)
- [`CardService.newUpdateDraftActionResponseBuilder()`](https://developers.google.com/apps-script/reference/card-service/card-service.md.txt#newupdatedraftactionresponsebuilder)
- [`CardService.newUpdateDraftBodyAction()`](https://developers.google.com/apps-script/reference/card-service/card-service.md.txt#newupdatedraftbodyaction)

## October 05, 2018

**Google Workspace Admin SDK** Announcement **Alert Center API**: V1beta1 is now available.

## October 02, 2018

**Google Calendar API** v3 Feature A more flexible approach to sending event change notifications is now available through the [`sendUpdates` parameter](https://developers.google.com/calendar/v3/reference/events/insert#sendUpdates). The new parameter lets you set event change notifications to do one of the following:

- Notify all the event guests.
- Notify only the guests who are not using Google Calendar.
- Completely suppress the notifications, for example, during a migration.

Now it is possible to always keep in sync guests who use other calendaring systems, without sending too many non-mandatory emails to Google Calendar users.

## September 27, 2018

**Google Apps Script** Announcement The [Data Studio service](https://developers.google.com/apps-script/reference/data-studio.md.txt) is now available. You can use this service when building a [Data Studio Community Connector](https://developers.google.com/datastudio/connector).

## August 20, 2018

**Google Apps Script** Feature The [Utilities service](https://developers.google.com/apps-script/reference/utilities.md.txt) has been extended with the following methods and classes:

- [`Utilities.computeRsaSha1Signature(value, key)`](https://developers.google.com/apps-script/reference/utilities/utilities.md.txt#computersasha1signaturevalue-key)
- [`Utilities.computeRsaSha1Signature(value, key, charset)`](https://developers.google.com/apps-script/reference/utilities/utilities.md.txt#computersasha1signaturevalue-key-charset)
- [`Utilities.computeRsaSignature(algorithm, value, key)`](https://developers.google.com/apps-script/reference/utilities/utilities.md.txt#computersasignaturealgorithm-value-key)
- [`Utilities.computeRsaSignature(algorithm, value, key, charset)`](https://developers.google.com/apps-script/reference/utilities/utilities.md.txt#computersasignaturealgorithm-value-key-charset)
- [`RsaAlgorithm`](https://developers.google.com/apps-script/reference/utilities/rsa-algorithm.md.txt)

## August 01, 2018

**Google Workspace Admin SDK** Change **Reports API** : The availability of past data for the [Entities Usage Report](https://developers.google.com/admin-sdk/reports/v1/guides/manage-usage-entities) has been changed to 30 days.

## June 28, 2018

**Google Tasks API** v1 Announcement The Google Tasks API is now generally available.

## June 19, 2018

**Google Apps Script** Deprecated The quota on total data received by `UrlFetch` per day per user has been removed.
Feature
- The [Forms service](https://developers.google.com/apps-script/reference/forms.md.txt) now has the following method:
  - [Form.deleteResponse(responseId)\`](https://developers.google.com/apps-script/reference/forms/form.md.txt#deleteresponseresponseid)
- The [Utilities service](https://developers.google.com/apps-script/reference/utilities.md.txt) now has the following methods:
  - [`Utilities.computeDigest(algorithm, value)`](https://developers.google.com/apps-script/reference/utilities/utilities.md.txt#computedigestalgorithm-value), where value is a `Byte` array
  - [`Utilities.computeHmacSha256Signature(value, key)`](https://developers.google.com/apps-script/reference/utilities/utilities.md.txt#computehmacsha256signaturevalue-key), where value and key are `Byte` arrays
  - [`Utilities.computeHmacSignature(algorithm, value, key)`](https://developers.google.com/apps-script/reference/utilities/utilities.md.txt#computehmacsignaturealgorithm-value-key), where value and key are `Byte` arrays
Change The [quota limits](https://developers.google.com/apps-script/guides/services/quotas.md.txt#current_limitations) for [`UrlFetch`](https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app.md.txt) `GET` response size and `POST` size have been increased to 50MB / call.

## June 04, 2018

**Google Workspace Admin SDK** Fixed **Reports API** : Fixed an issue where some [Entities Usage Parameters](https://developers.google.com/admin-sdk/reports/v1/guides/manage-usage-entities) were under-reported for some [Google+ communities](https://developers.google.com/admin-sdk/reports/v1/reference/usage-ref-appendix-a/entities-gplus). This has been corrected as of May 25, 2018.

## April 23, 2018

**Google Apps Script** Feature
- The [Spreadsheet service](https://developers.google.com/apps-script/reference/spreadsheet.md.txt) has been extended with the new [`Group`](https://developers.google.com/apps-script/reference/spreadsheet/group.md.txt) class and the [`GroupControlTogglePosition`](https://developers.google.com/apps-script/reference/spreadsheet/group-control-toggle-position.md.txt) 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](https://developers.google.com/apps-script/reference/spreadsheet.md.txt) has been extended with the following new methods to support Groups:
  - [`Range.collapseGroups()`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#collapsegroups)
  - [`Range.expandGroups()`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#expandgroups)
  - [`Range.shiftColumnGroupDepth(delta)`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#shiftcolumngroupdepthdelta)
  - [`Range.shiftRowGroupDepth(delta)`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#shiftrowgroupdepthdelta)
  - [`Sheet.collapseAllColumnGroups()`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#collapseallcolumngroups)
  - [`Sheet.collapseAllRowGroups()`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#collapseallrowgroups)
  - [`Sheet.expandAllColumnGroups()`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#expandallcolumngroups)
  - [`Sheet.expandAllRowGroups()`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#expandallrowgroups)
  - [`Sheet.expandColumnGroupsUpToDepth(groupDepth)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#expandcolumngroupsuptodepthgroupdepth)
  - [`Sheet.expandRowGroupsUpToDepth(groupDepth)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#expandrowgroupsuptodepthgroupdepth)
  - [`Sheet.getColumnGroup(columnIndex, groupDepth)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#getcolumngroupcolumnindex-groupdepth)
  - [`Sheet.getColumnGroupControlPosition()`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#getcolumngroupcontrolposition)
  - [`Sheet.getColumnGroupDepth(columnIndex)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#getcolumngroupdepthcolumnindex)
  - [`Sheet.getRowGroup(rowIndex, groupDepth)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#getrowgrouprowindex-groupdepth)
  - [`Sheet.getRowGroupControlPosition()`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#getrowgroupcontrolposition)
  - [`Sheet.getRowGroupDepth(rowIndex)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#getrowgroupdepthrowindex)
  - [`Sheet.setColumnGroupControlPosition(position)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#setcolumngroupcontrolpositionposition)
  - [`Sheet.setRowGroupControlPosition(position)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#setrowgroupcontrolpositionposition)

## April 11, 2018

**Google Apps Script** Announcement [Macros for Google Sheets](https://developers.google.com/apps-script/guides/sheets/macros.md.txt) 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.
Feature The [Sheets service](https://developers.google.com/apps-script/reference/spreadsheet.md.txt) 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)`
Feature The [Charts service](https://developers.google.com/apps-script/reference/charts.md.txt) has been extended to support [`EmbeddedCharts`](https://developers.google.com/apps-script/reference/spreadsheet/embedded-chart.md.txt) in Google Sheets with the enums [`ChartHiddenDimensionStrategy`](https://developers.google.com/apps-script/reference/charts/chart-hidden-dimension-strategy.md.txt) and [`ChartMergeStrategy`](https://developers.google.com/apps-script/reference/charts/chart-merge-strategy.md.txt). In addition, the following [`ChartTypes`](https://developers.google.com/apps-script/reference/charts/chart-type.md.txt) have been added:

- `TIMELINE`
- `BUBBLE`
- `CANDLESTICK`
- `GAUGE`
- `GEO`
- `RADAR`
- `ORG`
- `SPARKLINE`
- `STEPPED_AREA`
- `TREEMAP`
- `WATERFALL`

## March 26, 2018

**Google Apps Script** Feature The [Spreadsheet service](https://developers.google.com/apps-script/reference/spreadsheet.md.txt) has been extended with the following new methods:

- [`SpreadsheetApp.setActiveSheet(sheet, restoreSelection)`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app.md.txt#setactivesheetsheet-restoreselection)
- [`Spreadsheet.setActiveSheet(sheet, restoreSelection)`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#setactivesheetsheet-restoreselection)
Deprecated
- The deprecated `enable(restriction)` method of the [`ScriptApp.Service` class](https://developers.google.com/apps-script/reference/script/service.md.txt) has been sunset.
- The deprecated `Service.Restriction` enum used with the [`ScriptApp.Service` class](https://developers.google.com/apps-script/reference/script/service.md.txt) has been sunset.

## March 22, 2018

**Google Calendar API** v3 Deprecated Support for the [JSON-RPC protocol](http://www.jsonrpc.org/specification) and [Global HTTP batch](https://developers.google.com/api-client-library/javascript/features/batch) endpoints has been deprecated, and will be fully discontinued on March 25, 2019. This change is being made to the Google API infrastructure and as such affects multiple Google APIs, including Calendar v3.

For more information and migration instructions, see the [Discontinuing support for JSON-RPC and Global HTTP Batch Endpoints blog post](https://developers.googleblog.com/2018/03/discontinuing-support-for-json-rpc-and.html).

## February 26, 2018

**Google Apps Script** Feature [Calendar event triggers](https://developers.google.com/apps-script/guides/triggers/events.md.txt#google_calendar_events) are now available. You can use these triggers in conjunction with the [Calendar advanced service](https://developers.google.com/apps-script/advanced/calendar.md.txt) to discover recently changed calendar events via regular sync operations.

## February 13, 2018

**Google Apps Script** Feature
- The [Slides service](https://developers.google.com/apps-script/reference/slides.md.txt) 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](https://developers.google.com/apps-script/reference/spreadsheet.md.txt) service has been extended with the following new enum class and method:
  - [`CopyPasteType`](https://developers.google.com/apps-script/reference/spreadsheet/copy-paste-type.md.txt), an enum class describing paste types.
  - [`Range.copyTo(destination, copyPasteType, transposed)`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#copyTo(Range,CopyPasteType,Boolean))

## January 19, 2018

**Google Apps Script** Feature
- The [`UrlFetch` service](https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app.md.txt) now has a [`fetchAll` method](https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app.md.txt#fetchAll(Object)) that makes multiple fetch requests.
- The [Utilities service](https://developers.google.com/apps-script/reference/utilities/utilities.md.txt) now has methods to [compress](https://developers.google.com/apps-script/reference/utilities/utilities.md.txt#gzipblob) and [decompress Blob objects](https://developers.google.com/apps-script/reference/utilities/utilities.md.txt#ungzipblob) using `gzip`.

## January 11, 2018

**Google Apps Script** Announcement
- The [Apps Script dashboard](https://developers.google.com/apps-script/guides/dashboard.md.txt) is now available. You can use it to see, search, and monitor all your script projects. The [Apps Script API](https://developers.google.com/apps-script/api) is now available. This API includes and extends the original Apps Script API. You can use the Apps Script API in an application to do any of the following:
  - [Create, read, and update Apps Script projects](https://developers.google.com/apps-script/api/how-tos/manage-projects.md.txt).
  - [Create and manage project versions](https://developers.google.com/apps-script/api/how-tos/manage-versions.md.txt).
  - [Create and manage project deployments](https://developers.google.com/apps-script/api/how-tos/manage-deployments.md.txt).
  - [Monitor script use and metrics](https://developers.google.com/apps-script/api/how-tos/view-processes.md.txt).
  - [Run script functions remotely](https://developers.google.com/apps-script/api/how-tos/execute.md.txt).
- The open-source [`clasp` tool](https://developers.google.com/apps-script/guides/clasp.md.txt) is now available. It lets you manage and develop Apps Script projects locally from the command line instead of the Apps Script editor.

## December 11, 2017

**Google Workspace Admin SDK** Feature **Reports API** : We have created the [Entities Usage Report](https://developers.google.com/admin-sdk/reports/v1/guides/manage-usage-entities) to generate reports on entities used by your account's users. The API currently supports reporting for [Google+ communities](https://developers.google.com/admin-sdk/reports/v1/reference/usage-ref-appendix-a/entities-gplus).

## October 24, 2017

**Google Apps Script** Feature
- The [Gmail add-ons](https://developers.google.com/gmail/add-ons) framework is now available to all developers.
- A new [Card service](https://developers.google.com/apps-script/reference/card-service.md.txt) supports Gmail add-ons by defining several [UI widget](https://developers.google.com/gmail/add-ons/concepts/widgets) elements that you can use to create a Gmail add-on interface without HTML or CSS. These widgets function on both desktop and mobile. You can only use the Card service in a Gmail add-on project.
- You can now view and explicitly edit Apps Script project [manifests](https://developers.google.com/apps-script/concepts/manifests.md.txt). These files give you more direct control of project properties.
- You can now directly control the [OAuth scopes](https://developers.google.com/apps-script/concepts/scopes.md.txt) that your project requests during authorization. Use this control to prevent your script project from asking for more access than it needs.
- You can now [deploy](https://developers.google.com/apps-script/concepts/deployments.md.txt) a script project directly from the project manifest.
- We've updated the **Publish** script editor menu item to more accurately represent the various kinds of deployments a project can have, such as add-on, web app, or API executable deployments.

## October 10, 2017

**Google Apps Script** Feature
- The [Calendar service](https://developers.google.com/apps-script/reference/calendar.md.txt) has been extended with the following new methods:
  - [`CalendarApp.createAllDayEvent(title, startDate, endDate)`](https://developers.google.com/apps-script/reference/calendar/calendar-app.md.txt#createAllDayEvent(String,Date,Date))
  - [`CalendarApp.createAllDayEvent(title, startDate, endDate, options)`](https://developers.google.com/apps-script/reference/calendar/calendar-app.md.txt#createAllDayEvent(String,Date,Date,Object))
  - [`CalendarApp.getEventById(iCalId)`](https://developers.google.com/apps-script/reference/calendar/calendar-app.md.txt#getEventById(String))
  - [`Calendar.createAllDayEvent(title, startDate, endDate)`](https://developers.google.com/apps-script/reference/calendar/calendar.md.txt#createAllDayEvent(String,Date,Date))
  - [`Calendar.createAllDayEvent(title, startDate, endDate, options)`](https://developers.google.com/apps-script/reference/calendar/calendar.md.txt#createAllDayEvent(String,Date,Date,Object))
  - [`Calendar.getEventById(iCalId)`](https://developers.google.com/apps-script/reference/calendar/calendar.md.txt#getEventById(String))
  - [`CalendarEvent.setAllDayDates(startDate, endDate)`](https://developers.google.com/apps-script/reference/calendar/calendar-event.md.txt#setAllDayDates(Date,Date))
- The [Groups service](https://developers.google.com/apps-script/reference/groups.md.txt) has been extended with the following new methods:
  - [`Group.getGroups()`](https://developers.google.com/apps-script/reference/groups/group.md.txt#getGroups())
  - [`Group.hasGroup(group)`](https://developers.google.com/apps-script/reference/groups/group.md.txt#hasGroup(Group))
  - [`Group.hasGroup(email)`](https://developers.google.com/apps-script/reference/groups/group.md.txt#hasGroup(String))
- The [Spreadsheet service](https://developers.google.com/apps-script/reference/spreadsheet.md.txt) has been extended with the following new methods and classes:
  - [`AutoFillSeries enumeration`](https://developers.google.com/apps-script/reference/spreadsheet/auto-fill-series.md.txt)
  - [`Range.autoFill(destination, series)`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#autoFill(Range,AutoFillSeries))
  - [`Range.autoFillToNeighbor(series)`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#autoFillToNeighbor(AutoFillSeries))
  - [`Sheet.moveColumns(columnSpec, destinationIndex)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#moveColumns(Range,Integer))
  - [`Sheet.moveRows(rowSpec, destinationIndex)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#moveRows(Range,Integer))

## October 06, 2017

**Google Apps Script** Change Add-ons now require [OAuth Client Verification](https://developers.google.com/apps-script/guides/client-verification.md.txt) prior to beginning the publication process. Verification no longer is conducted during the add-on review.

## September 26, 2017

**Google Apps Script** Feature Added Apps Script support for the [Google Slides service](https://developers.google.com/apps-script/guides/slides.md.txt). You can now use Apps Script to create and edit presentations and their contents; you can also build [add-ons for Google Slides](https://developers.google.com/gsuite/add-ons/overview#slides-service).

## September 15, 2017

**Google Apps Script** Feature
- Added [`GmailDraft`](https://developers.google.com/apps-script/reference/gmail/gmail-draft.md.txt) to the Gmail service. You can now create, edit, delete, and send [new draft messages](https://developers.google.com/gmail/gmail-app#createdraftrecipient-subject-body-options) or [draft replies](https://developers.google.com/apps-script/reference/gmail/gmail-message.md.txt#createdraftreplybody-options) to existing messages and threads. Drafts can reply to the original sender or "reply all".
- You can now determine if a message or thread is in your priority inbox using [`GmailMessage.isInPriorityInbox()`](https://developers.google.com/apps-script/reference/gmail/gmail-message.md.txt#isinpriorityinbox) or [`GmailThread.isInPriorityInbox()`](https://developers.google.com/apps-script/reference/gmail/gmail-thread.md.txt#isinpriorityinbox).

## July 28, 2017

**Google Apps Script** Feature
- Added a [`Spreadsheet.getFormUrl()`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#getformurl) method that returns the URLs of Forms send responses to this Sheet or Spreadsheet.
- Adds a [Checkbox Grid item](https://developers.google.com/apps-script/reference/forms/checkbox-grid-item.md.txt) to the Forms service.
- Enabled the collection of [exception and error reports](https://developers.google.com/apps-script/guides/logging.md.txt#exception_logging) using [Stackdriver Error Reporting](https://developers.google.com/apps-script/guides/logging.md.txt#stackdriver_error_reporting).

## July 18, 2017

**Google Apps Script** Change To protect users from abuse, [Google OAuth clients that request certain sensitive OAuth scopes are subject to review by Google](https://developers.google.com/apps-script/guides/client-verification.md.txt). Such apps may present users with a warning screen saying the app is unverified by Google. You can remove this screen from your app's authorization flow by [submitting a review request](https://developers.google.com/apps-script/guides/client-verification.md.txt#requesting_verification).

## July 12, 2017

**Google Calendar API** v3 Feature Hangouts and Google Meet conferences are now supported in Calendar events via the [`conferenceData` field](https://developers.google.com/calendar/v3/reference/events#conferenceData). You can:

- Read conference data associated with events.
- Copy conference data from one event to another.
- Request new conference generation for an event.
- Clear conference data associated with events.

To learn more, see [Create Events](https://developers.google.com/calendar/create-events#conferencing).

## July 11, 2017

**Google Workspace Admin SDK** Feature **Reports API** : Nine new parameters have been added to the [Google+ customer usage report](https://developers.google.com/admin-sdk/reports/v1/reference/usage-ref-appendix-a/customers-gplus). The new parameters are:

- `num_communities`
- `num_communities_public`
- `num_communities_private`
- `num_communuties_organization_wide`
- `num_communities_organization_private`
- `num_collections`
- `num_collections_public`
- `num_collections_organization_wide`
- `num_collections_organization_private`

In addition, the [Google+ user usage report](https://developers.google.com/admin-sdk/reports/v1/reference/usage-ref-appendix-a/users-gplus) was created with seven metrics:

- `num_shares`
- `num_plusones`
- `num_plusones_received`
- `num_replies`
- `num_replies_received`
- `num_reshares`
- `num_reshares_received`

## June 23, 2017

**Google Apps Script** Announcement [Stackdriver Logging](https://developers.google.com/apps-script/guides/logging.md.txt#stackdriver_logging) has been moved out of [Early Access](https://developers.google.com/apps-script/guides/apps-script-eap). All scripts now have access to Stackdriver logging.

## June 20, 2017

**Google Apps Script** Feature Added the method [`Range.randomize()`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#randomize) that randomizes the order of rows in a spreadsheet Range.

## May 11, 2017

**Google Workspace Admin SDK** Feature **Reports API** : We have added the [App Maker](https://developers.google.com/admin-sdk/reports/v1/reference/usage-ref-appendix-a/customers-appmaker) and [Apps Script](https://developers.google.com/admin-sdk/reports/v1/reference/usage-ref-appendix-a/customers-appsscript) customer usage reports to the `customerUsageReports.get` method. These new reports allow you to view information about App Maker and Apps Script usage in your domains.

## May 05, 2017

**Gmail API** v1 Deprecated Deprecated [Review Action](https://developers.google.com/gmail/markup/reference/review-action), which sunsets on July 15th, 2017.

## April 26, 2017

**Google Apps Script** Feature
- [Quizzes in Google Forms](https://gsuite-developers.googleblog.com/2017/04/create-quizzes-in-google-forms-with.html) is now accessible from the [Apps Script Forms service](https://developers.google.com/apps-script/reference/forms.md.txt).
- Added support for [Combo and Histogram charts](https://developers.google.com/apps-script/reference/charts/chart-type.md.txt). Like other charts, these can be embedded in a Google Sheet.
- Added ability to [`getColor()`](https://developers.google.com/apps-script/reference/calendar/calendar-event.md.txt#getcolor) and [`setColor()`](https://developers.google.com/apps-script/reference/calendar/calendar-event.md.txt#setcolorcolor) for Calendar Events. Events have their own color set: [`EventColor`](https://developers.google.com/apps-script/reference/calendar/event-color.md.txt).

## April 05, 2017

**Google Workspace Admin SDK** Change **Reports API** : Google Docs customer and usage reports are being replaced by Google Drive customer and usage metrics. See details in [Update your Drive and Docs Metrics](https://developers.google.com/admin-sdk/reports/v1/updated-drive-metrics).

## March 14, 2017

**Google Workspace Admin SDK** Feature **Reports API** : Six new parameters have been added to the [Google+ customer usage report](https://developers.google.com/admin-sdk/reports/v1/reference/usage-ref-appendix-a/customers-gplus). The new parameters are:

- `num_new_users`
- `num_shares`
- `num_reshares`
- `num_plusones`
- `num_replies`
- `num_stream_items_read`

## March 09, 2017

**Google Apps Script** Feature
- Introduced project collaboration using [Shared drives](https://developers.google.com/apps-script/guides/collaborating.md.txt#collaborating_with_shared_drives). Files and scripts in a shared drive are owned by the group instead of individuals, allowing collaborators to develop and maintain scripts more readily.
- Script editors (in addition to script owners) can now [publish add-ons](https://developers.google.com/gsuite/add-ons/how-tos/publish-addons) and [deploy scripts as web apps](https://developers.google.com/apps-script/guides/web.md.txt#deploying_a_script_as_a_web_app) or executables for the [Execution API](https://developers.google.com/apps-script/guides/rest/api).
- For all [container-bound scripts](https://developers.google.com/apps-script/guides/bound.md.txt#access_to_bound_scripts), the container owner takes ownership of a new script project regardless of who created it.

## March 07, 2017

**Google Apps Script** Announcement
- Enabled the [Slides Advanced Service](https://developers.google.com/apps-script/advanced/slides.md.txt).
- Enabled the [Sheets Advanced Service](https://developers.google.com/apps-script/advanced/sheets.md.txt).

## February 07, 2017

**Gmail API** v1 Feature The [`history.list` method](https://developers.google.com/gmail/api/v1/reference/users/history/list) supports filtering history records by type.

## December 01, 2016

**Google Apps Script** Announcement Introduced the [Early Access program](https://developers.google.com/apps-script/guides/apps-script-eap) for new G Suite Business features. These features include [App Maker](https://developers.google.com/apps-script/guides/app-maker) and [Stackdriver Logging](https://developers.google.com/apps-script/guides/logging.md.txt#stackdriver_logging).

## November 30, 2016

**Gmail API** v1 Feature The [`messages.batchModify` method](https://developers.google.com/gmail/api/v1/reference/users/messages/batchModify) lets you modify labels on multiple messages by message IDs, in a single batch operation.

## November 23, 2016

**Google Apps Script** Feature Added forms validation classes for [check boxes](https://developers.google.com/apps-script/reference/forms/checkbox-validation.md.txt), [generic data](https://developers.google.com/apps-script/reference/forms/data-validation.md.txt), [grid items](https://developers.google.com/apps-script/reference/forms/grid-validation.md.txt), [paragraph text items](https://developers.google.com/apps-script/reference/forms/paragraph-text-validation.md.txt), and [text items](https://developers.google.com/apps-script/reference/forms/text-validation.md.txt).

## November 01, 2016

**Gmail API** v1 Change The Gmail API supports a `gmail.metadata` scope. This scope gives developers access to a user's mailbox including history records, labels, and email headers, but not email body's or attachments.

## October 19, 2016

**Google Apps Script** Feature Added X-Frame-Option header support to [`HtmlService`](https://developers.google.com/apps-script/reference/html.md.txt), allowing iframes to render Apps Script HTML and web apps.

## July 28, 2016

**Google Apps Script** Feature Added support for [Android add-ons](https://developers.google.com/gsuite/add-ons/mobile). Now you can make Google Docs and Sheets add-ons that work on Android.

## July 12, 2016

**Google Apps Script** Deprecated The use of project keys to identify scripts is now deprecated. The preferred unique identifier for a script is the [Script ID](https://developers.google.com/apps-script/reference/script/script-app.md.txt#getScriptId()). There are no plans to turn off or disable the use of project keys; code that uses project keys will continue to work for the foreseeable future.

## July 06, 2016

**Google Apps Script** Deprecated `NATIVE` [sandbox mode](https://developers.google.com/apps-script/reference/html/sandbox-mode.md.txt) 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](https://developers.google.com/apps-script/migration/iframe.md.txt).

## July 01, 2016

**Gmail API** v1 Change The `q` request parameter for the [`drafts.list` method](https://developers.google.com/gmail/api/v1/reference/users/drafts/list) restricts results to the messages matching the specified query.
Feature New endpoints for managing mail settings:

- [Send-as aliases and Signatures](https://developers.google.com/gmail/api/guides/alias_and_signature_settings)
- [Forwarding](https://developers.google.com/gmail/api/guides/forwarding_settings)
- [Filters](https://developers.google.com/gmail/api/guides/filter_settings)
- [Vacation Responder](https://developers.google.com/gmail/api/guides/vacation_settings)
- [POP and IMAP](https://developers.google.com/gmail/api/guides/pop_imap_settings)

## June 15, 2016

**Google Sheets API** v4 Announcement Google Sheets API v4 is now available. For more information, see [Introducing the Google Sheets API v4](https://cloud.google.com/blog/products/application-development/introducing-google-sheets-api-v4).

## June 13, 2016

**Cloud Search** v1 Announcement The Google Cloud Search API is now available for enterprise administrators.

## May 18, 2016

**Google Slides API** v1 Announcement The Google Slides API is now generally available.

## April 11, 2016

**Google Apps Script** Feature Support for `PATCH` requests has been added to [`UrlFetchApp`](https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app.md.txt#fetchurl-params).

## March 25, 2016

**Google Apps Script** Deprecated Deprecated the [`add(widget)` method](https://developers.google.com/apps-script/reference/charts/dashboard-panel#addwidget) in the [`DashboardPanel`](https://developers.google.com/apps-script/reference/charts/dashboard-panel) class because it takes a `UiApp.Widget` argument, and UiApp was deprecated in 2014.

## February 29, 2016

**Google Apps Script** Feature
- The Spreadsheet API adds new methods for [`getTabColor()`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#gettabcolor) and [`setTabColor(color)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#settabcolor).

- The Spreadsheet API adds a new [`NamedRange`](https://developers.google.com/apps-script/reference/spreadsheet/named-range.md.txt) type and the following related methods:

  - `NamedRange.getName()` gets the name of the named range
  - `NamedRange.setName(name)` sets the name of the named range
  - `NamedRange.getRange()` gets the underlying range associated with the named range
  - `NamedRange.setRange(range)` sets the underlying range associated with the named range
  - `NamedRange.remove()` deletes the named range
  - `Spreadsheet.getNamedRanges()` gets an array of all the named ranges in the spreadsheet
  - `Sheet.getNamedRanges()` gets an array of all the named ranges in the sheet
  - `Protection.setNamedRange(range)` associates an existing protected range with an existing named range
- The Utilities API includes a new [`getUuid()` method](https://developers.google.com/apps-script/reference/utilities/utilities.md.txt#getUuid()) that generates a unique identifier.

## February 25, 2016

**Gmail API** v1 Feature The [`messages.batchDelete` method](https://developers.google.com/gmail/api/v1/reference/users/messages/batchDelete) lets you delete multiple messages, by message IDs, in a single batch operation.

## January 13, 2016

**Gmail API** v1 Feature The [`drafts.list` method](https://developers.google.com/gmail/api/v1/reference/users/drafts/list) has an `includeSpamTrash` option, which determines if the response should include drafts with the `SPAM` or `TRASH`label applied. The default is currently set to `true` for this option.

## December 10, 2015

**Google Apps Script** Deprecated In the [HTML service](https://developers.google.com/apps-script/reference/html.md.txt), `EMULATED` [sandbox mode](https://developers.google.com/apps-script/reference/html/sandbox-mode.md.txt) was [sunset](https://developers.google.com/apps-script/guides/support/sunset.md.txt). Any scripts that explicitly request `EMULATED` mode now default to `IFRAME` mode.

## November 12, 2015

**Google Apps Script** Change In the [HTML service](https://developers.google.com/apps-script/reference/html.md.txt), all new scripts default to `IFRAME` sandbox mode unless `NATIVE` mode is explicitly specified.

## August 10, 2015

**Google Apps Script** Deprecated Deprecated the method [`Service.enable()`](https://developers.google.com/apps-script/reference/script/service.md.txt#enable(Service.Restriction)) in the ScriptApp global object. This method is no longer useful because Apps Script's authorization model has changed since the time the method was introduced.

## August 04, 2015

**Google Apps Script** Feature Added the following methods to the Spreadsheet service to let scripts control "warning-based" protection for spreadsheet ranges (which means that every user can edit data in the area, except editing prompts the user to confirm the edit):

- [`Protection.isWarningOnly()`](https://developers.google.com/apps-script/reference/spreadsheet/protection.md.txt#iswarningonly)
- [`Protection.setWarningOnly(warningOnly)`](https://developers.google.com/apps-script/reference/spreadsheet/protection.md.txt#setwarningonlywarningonly)

## June 30, 2015

**Google Apps Script** Feature Added two variations of the [method `computeRsaSha256Signature`](https://developers.google.com/apps-script/reference/utilities/utilities.md.txt#computersasha256signaturevalue-key) to the `Utilities` global object to let scripts sign a string using the RSA SHA-256 algorithm.

## June 22, 2015

**Gmail API** v1 Feature To determine the full state of an email before and after a change, the [`history.list` method](https://developers.google.com/gmail/api/v1/reference/users/history/list) returns all current `Message.labelIds` as part of the response in `messagesAdded`, `messagesDeleted`, `labelsAdded`, and `labelsRemoved`.

## June 18, 2015

**Gmail API** v1 Feature Added a [`Message.internalDate` field](https://developers.google.com/gmail/api/v1/reference/users/messages) that exposes the message's creation timestamp in the mailbox.

## May 29, 2015

**Gmail API** v1 Feature You can now send [push notifications](https://developers.google.com/gmail/api/guides/push) on mailbox updates, providing real-time server notification without the need for constant polling. With [Cloud Pub/Sub](https://cloud.google.com/pubsub/overview), you can now use webhooks---for example, to receive callbacks when updates happen. Additionally, you can filter these notifications to specific Gmail labels.

## May 27, 2015

**Google Apps Script** Change Added the [method `getUserAgent()`](https://developers.google.com/apps-script/reference/html/html-service.md.txt#getuseragent) to the `HtmlService` global object to let scripts get the user-agent string for the current browser.

## May 20, 2015

**Google Apps Script** Deprecated Deprecated the following OAuth class and methods in favor of [OAuth libraries](https://gsuite-developers.googleblog.com/2015/03/changes-to-oauth-in-apps-script.html):
+ `OAuthConfig`
+ [`UrlFetchApp.addOAuthService(serviceName)`](https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app.md.txt#addOAuthService(String))
+ [`UrlFetchApp.removeOAuthService(serviceName)`](https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app.md.txt#removeOAuthService(String))
Feature
- Added the following enum and methods to the Script service to allow scripts to identify their installation source and project keys:
  - [`InstallationSource`](https://developers.google.com/apps-script/reference/script/installation-source.md.txt)
  - [`ScriptApp.getInstallationSource()`](https://developers.google.com/apps-script/reference/script/script-app.md.txt#getInstallationSource())
  - [`ScriptApp.getProjectKey()`](https://developers.google.com/apps-script/reference/script/script-app.md.txt#getProjectKey())
- Added several new web-safe base-64 encoding and decoding methods:
  - [`Utilities.base64DecodeWebSafe(String)`](https://developers.google.com/apps-script/reference/utilities/utilities.md.txt#base64DecodeWebSafe(String))
  - [`Utilities.base64DecodeWebSafe(String, Charset)`](https://developers.google.com/apps-script/reference/utilities/utilities.md.txt#base64DecodeWebSafe(String,Charset))
  - [`Utilities.base64EncodeWebSafe(Byte)`](https://developers.google.com/apps-script/reference/utilities/utilities.md.txt#base64EncodeWebSafe(Byte))
  - [`Utilities.base64EncodeWebSafe(String)`](https://developers.google.com/apps-script/reference/utilities/utilities.md.txt#base64EncodeWebSafe(String))
  - [`Utilities.base64EncodeWebSafe(String, Charset)`](https://developers.google.com/apps-script/reference/utilities/utilities.md.txt#base64EncodeWebSafe(String,Charset))

## April 23, 2015

**Google Apps Script** Announcement
- Add-ons are now out of developer preview. This means anyone can now [publish](https://developers.google.com/gsuite/add-ons/how-tos/publish-addons) an add-on. New add-ons will still be reviewed prior to publishing, but the publishing process has been streamlined.
- Add-ons can now be developed and published from standalone scripts (as opposed to scripts bound to a Sheet, Doc, or Form). The add-on must still operate on a Sheet, Doc, or Form, but the script does not need to be bound to a single master file. Developing from a standalone script is preferred in that it makes collaboration and testing easier.
- Add-on scripts in development can be [tested](https://developers.google.com/gsuite/add-ons/how-tos/test-addons) to ensure they behave as intended.
Deprecated The [`DocsList` service](https://developers.google.com/apps-script/guides/support/sunset.md.txt), which was [deprecated in 2014](https://developers.google.com/apps-script/guides/support/sunset.md.txt), has been sunset and no longer functions. Users relying on `DocsList` should switch to [`DriveApp`](https://developers.google.com/apps-script/reference/drive/drive-app.md.txt).

## March 31, 2015

**Gmail API** v1 Change New scopes for labels and inserting messages to better protect users and accommodate apps that don't need full mailbox data access:

- `https://www.googleapis.com/auth/gmail.insert`: Allows the [`messages.insert`](https://developers.google.com/gmail/api/v1/reference/users/messages/insert) and [`messages.import`](https://developers.google.com/gmail/api/v1/reference/users/messages/import) methods only.
- `https://www.googleapis.com/auth/gmail.labels`: Allows all [label operations](https://developers.google.com/gmail/api/v1/reference/users/labels).

## March 19, 2015

**Google Apps Script** Feature
- Added the ability to [publish add-ons for domain-wide installation](https://developers.google.com/gsuite/add-ons/how-tos/publish-for-domains). This lets an admin of a Google Apps domain install and authorize a Docs, Sheets, or Forms [add-on](https://developers.google.com/gsuite/add-ons/overview) for all users in the domain if the add-on is published to the [Google Apps Marketplace](https://developers.google.com/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](https://developers.google.com/apps-script/guides/cloud-platform-projects.md.txt#switching_to_a_different_standard_gcp_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.

## March 18, 2015

**Gmail API** v1 Feature The [`messages.insert` method](https://developers.google.com/gmail/api/v1/reference/users/messages/insert) now supports the `deleted` request parameter and lets you set `SENT` and `DRAFT` labels.

## March 04, 2015

**Google Apps Script** Deprecated Deprecated the URL Fetch service's class `OAuthConfig`, which provided the ability to connect to OAuth 1.0 APIs. This has been replaced by the open source library [OAuth1 for Apps Script](https://github.com/googlesamples/apps-script-oauth1). See the [migration guide](https://developers.google.com/apps-script/migration/oauth-config) for more information.

## February 25, 2015

**Gmail API** v1 Feature The [`history.list` method](https://developers.google.com/gmail/api/reference/rest/v1/users.history/list) now provides details of the change type in each history record. For example, using the `messagesAdded`, `messagesDeleted`, `labelsAdded`, or `labelsDeleted` enums, it's possible to easily tell how a message was changed and typically avoids the need for additional calls to synchronize your client.

## February 11, 2015

**Gmail API** v1 Feature The [`messages.import` method](https://developers.google.com/gmail/api/reference/rest/v1/users.messages/import) now supports the following parameters to better support `Email Migration` use cases:

- `neverMarkSpam`
- `processForCalendar`
- `deleted`

## February 10, 2015

**Google Apps Script** Deprecated
- Deprecated the following class and methods, which have been replaced by the more powerful Protection class above. Although this class and these methods are deprecated, they will remain available for compatibility with the older version of Sheets.

  - `PageProtection`
  - `Spreadsheet.getSheetProtection()`
  - `Spreadsheet.setSheetProtection(permissions)`
  - `Sheet.getSheetProtection()`
  - `Sheet.setSheetProtection(permissions)`
- Replaced the method [`SpreadsheetApp.open(file)`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app.md.txt#open(File)), which takes a `File` object from the deprecated `DocsList` service as a parameter, with a version that takes a `File` object from the `Drive` service instead. The new method has the same name.

- Changed the Document service methods [`Text.getFontFamily()`](https://developers.google.com/apps-script/reference/document/text.md.txt#getFontFamily()) and [`Text.setFontFamily(fontFamilyName)`](https://developers.google.com/apps-script/reference/document/text.md.txt#setFontFamily(String)) to use string names for font families instead of the [`FontFamily` enum](https://developers.google.com/apps-script/reference/document/font-family.md.txt), and consequently deprecated `FontFamily`.

Feature Added the following class, enum, and methods to the Spreadsheet service, to give precise control over protected sheets and ranges:

- [`Protection`](https://developers.google.com/apps-script/reference/spreadsheet/protection.md.txt)
- [`ProtectionType`](https://developers.google.com/apps-script/reference/spreadsheet/protection-type.md.txt)
- [`Range.canEdit()`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#canEdit())
- [`Range.isEndColumnBounded()`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#isEndColumnBounded())
- [`Range.isEndRowBounded()`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#isEndRowBounded())
- [`Range.isStartColumnBounded()`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#isStartColumnBounded())
- [`Range.isStartRowBounded()`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#isStartRowBounded())
- [`Range.protect()`](https://developers.google.com/apps-script/reference/spreadsheet/range.md.txt#protect())
- [`Sheet.getProtections(type)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#getProtections(ProtectionType))
- [`Sheet.protect()`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#protect())
- [`Spreadsheet.getProtections(type)`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#getProtections(ProtectionType))
Fixed [Issue 4617](https://code.google.com/p/google-apps-script-issues/issues/detail?id=4617): HTML service pages that use the new [`IFRAME` sandbox mode](https://developers.google.com/apps-script/reference/html/sandbox-mode.md.txt) now render correctly in Firefox.
Change Changed several [`Spreadsheet` methods](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt) that previously returned void so that they now return a `Spreadsheet` object that can be used to chain method calls.

## February 02, 2015

**Google Workspace Admin SDK** Feature **Reports API** : We have added the [Mobile Device](https://developers.google.com/admin-sdk/reports/v1/reference/usage-ref-appendix-a/customers-mobile) customer usage report to the [`customerUsageReports.get` method](https://developers.google.com/admin-sdk/reports/v1/reference/customerUsageReports/get). This new report allows you to view information about mobile device usage in your domains.

## January 23, 2015

**Gmail API** v1 Feature You can now specify `message.labelIds` on [`messages.import` requests](https://developers.google.com/gmail/api/v1/reference/users/messages/import) to automatically apply the given labels to the message.
Breaking The default behavior no longer automatically adds `INBOX` and `UNREAD` labels to [`messages.import` emails](https://developers.google.com/gmail/api/v1/reference/users/messages/import). When `message.labelIds` isn't specified, imported mail is only visible in All Mail. If you want `INBOX` or `UNREAD` labels applied, specify them in the `message.labelIds` field.

## January 15, 2015

**Gmail API** v1 Change Increased the default [per-user quotas](https://developers.google.com/gmail/api/v1/reference/quota) from 25 units/user/second to 250 units/user/second and adjusted some method costs slightly.

## December 11, 2014

**Google Apps Script** Deprecated
- [Deprecated](https://developers.google.com/apps-script/guides/support/sunset.md.txt) both the [UI service](https://developers.google.com/apps-script/guides/ui-service) and the [`DocsList` service](https://developers.google.com/apps-script/reference/docs-list). As announced in the [blog post](https://gsuite-developers.googleblog.com/2014/12/speeding-up-htmlservice.html), the `DocsList` service 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](https://developers.google.com/apps-script/guides/html.md.txt) instead. To replace the `DocsList` service, use the [`Drive` service](https://developers.google.com/apps-script/reference/drive.md.txt) instead.
- [Removed](https://developers.google.com/apps-script/guides/support/sunset.md.txt) the [Domain service](https://developers.google.com/apps-script/migration/domain.md.txt), as [announced earlier in the year](https://gsuite-developers.googleblog.com/2014/05/deprecating-scriptdb-and-domain-service.html).
Feature Added a new [`IFRAME` sandbox mode](https://developers.google.com/apps-script/reference/html/sandbox-mode.md.txt) for HTML service that imposes many fewer restrictions than the other sandbox modes and runs much faster. However, `IFRAME` mode does not work at all in certain older browsers, including Internet Explorer 9.
**Google Workspace Admin SDK** Feature **Reports API** : We have added the [Google Calendar](https://developers.google.com/admin-sdk/reports/v1/reference/activity-ref-appendix-a/calendar-event-names) audit report to the [`activities.list` method](https://developers.google.com/admin-sdk/reports/v1/reference/activities/list). This new report allows you to view information about changes to calendars and calendar events for users in your domain.

## December 01, 2014

**Google Apps Script** Feature
- Added five new `FormApp` methods:
  - [`Form.getShuffleQuestions()`](https://developers.google.com/apps-script/reference/forms/form.md.txt#getShuffleQuestions()): Determines whether the order of the questions on each page of the form is randomized.
  - [`Form.hasLimitOneResponsePerUser()`](https://developers.google.com/apps-script/reference/forms/form.md.txt#hasLimitOneResponsePerUser()): Determines whether the form allows only one response per respondent. If the value is true, the script cannot submit form responses at all.
  - [`Form.setLimitOneResponsePerUser(enabled)`](https://developers.google.com/apps-script/reference/forms/form.md.txt#setLimitOneResponsePerUser(Boolean)): Sets whether the form allows only one response per respondent. The default for new forms is false. If the value is set to true, the script cannot submit form responses at all.
  - [`Form.setShuffleQuestions(shuffle)`](https://developers.google.com/apps-script/reference/forms/form.md.txt#setShuffleQuestions(Boolean)): Sets whether the order of the questions on each page of the form is randomized.
  - [`Form.shortenFormUrl(url)`](https://developers.google.com/apps-script/reference/forms/form.md.txt#shortenFormUrl(String)): Converts a long URL for a form to a short URL.
- Added two new `SpreadsheetApp` methods:
  - [`Sheet.insertImage(blob, column, row)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#insertImage(Blob,Integer,Integer)): Inserts a [`Blob`](https://developers.google.com/apps-script/reference/base/blob.md.txt) as an image in the sheet at a given row and column.
  - [`Sheet.insertImage(blob, column, row, offsetX, offsetY)`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#insertImage(Blob,Integer,Integer,Integer,Integer)): Inserts a [`Blob`](https://developers.google.com/apps-script/reference/base/blob.md.txt) as an image in the sheet at a given row and column, with a pixel offset.

## November 20, 2014

**Google Workspace Admin SDK** Feature **Reports API** : We have added the [Google Sites](https://developers.google.com/admin-sdk/reports/v1/reference/usage-ref-appendix-a/customers-sites) customer usage report to the [`customerUsageReports.get` method](https://developers.google.com/admin-sdk/reports/v1/reference/customerUsageReports/get). This new report allows you to view information about Google Sites usage in your domains.

## November 12, 2014

**Google Workspace Admin SDK** Feature **Reports API** : We have added the [OAuth Token Audit](https://developers.google.com/admin-sdk/reports/v1/guides/manage-audit-token) reporting application to the [`activities.list` method](https://developers.google.com/admin-sdk/reports/v1/reference/activities/list). This new report allows you to view information about third party websites and applications that users in your domains have granted access to.

## November 03, 2014

**Google Workspace Admin SDK** Change **Reseller API** : New `billingMethod` field.
Change **Reseller API** : New `transferToDirect` `deletionType`.

## October 29, 2014

**Google Workspace Admin SDK** Feature **Reports API** : Added the following parameters to the [Gmail customer usage report](https://developers.google.com/admin-sdk/reports/v1/reference/usage-ref-appendix-a/customers-gmail):

- `num_inbound_delivered_emails`
- `num_inbound_rerouted_emails`
- `num_inbound_rejected_emails`
- `num_inbound_spam_emails`
- `num_inbound_non_spam_emails`
- `num_inbound_encrypted_emails`
- `num_inbound_unencrypted_emails`
- `num_outbound_delivered_emails`
- `num_outbound_rerouted_emails`
- `num_outbound_rejected_emails`
- `num_outbound_encrypted_emails`
- `num_outbound_unencrypted_emails`

## October 27, 2014

**Google Workspace Admin SDK** Feature **Reports API** : We have added the [ChromeOS Devices customer usage report](https://developers.google.com/admin-sdk/reports/v1/reference/usage-ref-appendix-a/customers-cros) to the [`customerUsageReports.get` method](https://developers.google.com/admin-sdk/reports/v1/reference/customerUsageReports/get). This new report allows you to view information about ChromeOS device usage in your domains.

## October 23, 2014

**Google Apps Script** Announcement [Add-ons](https://developers.google.com/gsuite/add-ons/overview) are now [available in Google Forms](https://developers.google.com/apps-script/quickstart/forms-add-on). As with add-ons for Docs and Sheets, Forms add-ons are in developer preview, so you must [apply to publish them](https://developers.google.com/gsuite/add-ons/how-tos/publish-addons).
Deprecated [Removed](https://developers.google.com/apps-script/guides/support/sunset.md.txt) the [Finance service](https://developers.google.com/apps-script/reference/finance), as [announced earlier in the year](https://gsuite-developers.googleblog.com/2014/02/more-apps-script-apis-and-features.html).
Fixed [Issue 3928](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3928): The `Document` method `setSelection`, the `Sheet` method `activate`, and the `Spreadsheet` methods `setActiveRange` and `setActiveSelection` now work correctly if they are called from an `onOpen` or `onEdit` trigger.

## October 22, 2014

**Gmail API** v1 Feature You can now specify the return format for the [`threads.get` method](https://developers.google.com/gmail/api/v1/reference/users/threads/get). The available formats are `full`, `metadata`, and `minimal`, similar to the `messages.get` method. The raw format isn't allowed for the `threads.get` to avoid unexpectedly large amounts of data being returned.

## October 16, 2014

**Gmail API** v1 Feature The [`getProfile` method](https://developers.google.com/gmail/api/v1/reference/users/getProfile) provides mailbox-wide information like current history ID and total message and thread counts.

## October 14, 2014

**Google Apps Script** Feature [Add-ons](https://developers.google.com/gsuite/add-ons/overview) for Google Sheets and Docs can now use [time-driven installable triggers](https://developers.google.com/apps-script/guides/triggers/installable.md.txt#time-driven_triggers).

## October 06, 2014

**Gmail API** v1 Feature Added new fields to the `Labels` resource to simplify counting how many messages have a given label applied:

- `messagesTotal`
- `messagesUnread`
- `threadsTotal`
- `threadsUnread`
Feature Added a new [`IMPORTANT` label](https://developers.google.com/gmail/api/guides/labels) to match functionality with the Gmail UI.

## September 30, 2014

**Google Apps Script** Feature
- Added the [`LinearOptimizationService`](https://developers.google.com/apps-script/reference/optimization.md.txt), which allows scripts to model and solve linear and mixed-integer linear programs.
- [Add-ons](https://developers.google.com/gsuite/add-ons/overview) for Google Sheets and Docs can now use most [installable triggers](https://developers.google.com/apps-script/guides/triggers/installable.md.txt#installable_triggers_in_add-ons), although they still cannot use time-driven triggers (sometimes called clock triggers).
- Added an [installable open trigger](https://developers.google.com/apps-script/guides/triggers/installable.md.txt) for Google Docs. Like the installable open triggers for Sheets and Forms, this trigger is similar to the simple `onOpen()` trigger, but allows the triggered function to call services that require authorization, if the user has authorized the script ahead of time.
- Added several new `ScriptApp` methods, classes, and enums to support installable triggers in add-ons:
  - [`AuthorizationInfo`](https://developers.google.com/apps-script/reference/script/authorization-info.md.txt): An object used to determine whether the user needs to authorize this script to use one or more services, and to provide the URL for an authorization dialog. Returned by `ScriptApp.getAuthorizationInfo()`.
  - [`AuthorizationStatus`](https://developers.google.com/apps-script/reference/script/authorization-status.md.txt#getAuthorizationUrl()): An enumeration denoting the authorization status of a script. Returned by `AuthorizationInfo.getAuthorizationStatus()`.
  - [`DocumentTriggerBuilder`](https://developers.google.com/apps-script/reference/script/document-trigger-builder.md.txt): A builder for document triggers. Returned by `TriggerBuilder.forDocument(...)`.
  - [`ScriptApp.getUserTriggers(...)`](https://developers.google.com/apps-script/reference/script/script-app.md.txt#getUserTriggers(Document)): Gets all installable triggers owned by this user in the given document, spreadsheet, or form.
Change The `UiService` widget `DocsListDialog` now requires that you call [`DocsListDialog.setOAuthToken(oAuthToken)`](https://developers.google.com/apps-script/reference/ui/docs-list-dialog#setOAuthToken(String)) before calling [`DocsListDialog.showDocsPicker()`](https://developers.google.com/apps-script/reference/ui/docs-list-dialog#showDocsPicker()).

## September 25, 2014

**Gmail API** v1 Change The `messages.insert` method defaults to using `receivedTime` and the `messages.import` method defaults to using `dateHeader`.

## September 08, 2014

**Gmail API** v1 Change When you use the [`messages.get` method](https://developers.google.com/gmail/api/reference/rest/v1/users.messages/get), you can request the metadata return format to return only the email headers and metadata such as identifiers and labels.

## September 04, 2014

**Google Apps Script** Deprecated Replaced the `CacheService` methods `getPrivateCache()` and `getPublicCache()` and the `LockService` methods `getPrivateLock()` and `getPublicLock()` with [`getUserCache()`](https://developers.google.com/apps-script/reference/cache/cache-service.md.txt#getUserCache()), [`getScriptCache()`](https://developers.google.com/apps-script/reference/cache/cache-service.md.txt#getScriptCache()), [`getUserLock()`](https://developers.google.com/apps-script/reference/lock/lock-service.md.txt#getUserLock()), and [`getScriptLock()`](https://developers.google.com/apps-script/reference/lock/lock-service.md.txt#getScriptLock()), respectively. The old method names have been deprecated, but will continue to function. The new names follow the same conventions as `PropertiesService`.
Feature
- Added the `UiService` method [`DocsListDialog.setOAuthToken(oAuthToken)`](https://developers.google.com/apps-script/reference/ui/docs-list-dialog#setOAuthToken(String)), which sets an OAuth 2.0 token to use when fetching data for the dialog, on behalf of the user whose content should be shown. This method will become mandatory before calling [`DocsListDialog.showDocsPicker()`](https://developers.google.com/apps-script/reference/ui/docs-list-dialog#showDocsPicker()) on September 30, 2014.
- Added the `CacheService` method [`getDocumentCache()`](https://developers.google.com/apps-script/reference/cache/cache-service.md.txt#getDocumentCache()) and the `LockService` method [`getDocumentLock()`](https://developers.google.com/apps-script/reference/lock/lock-service.md.txt#getDocumentLock()), which get a cache and a lock that all users can access within the current document, if the script is published as an add-on. These methods are conceptually similar to the `PropertiesService` method [`getDocumentProperties()`](https://developers.google.com/apps-script/reference/properties/properties-service.md.txt#getDocumentProperties()), which was introduced for use in add-ons earlier this year.

## September 02, 2014

**Gmail API** v1 Feature You can specify the `internalDateSource` for both the [`messages.insert`](https://developers.google.com/gmail/api/reference/rest/v1/users.messages/insert) and [`messages.import`](https://developers.google.com/gmail/api/reference/rest/v1/users.messages/import) methods.
**Google Workspace Admin SDK** Change **Reports API**: The maximum time limit for usage reports has been increased from 180 days to 450 days. Because this change will take time to populate in our data, the full 450 day history will be available on May 30, 2015 with an earliest available record date of March 6, 2014.

## August 15, 2014

**Google Workspace Admin SDK** Feature **Reports API** : A new [`view` event](https://developers.google.com/admin-sdk/reports/v1/reference/activity-ref-appendix-a/drive-event-names#view_docs) has been added to the [Drive activity report](https://developers.google.com/admin-sdk/reports/v1/guides/manage-audit-drive).

## August 11, 2014

**Google Workspace Admin SDK** Feature **Directory API** : The following fields have been added to the [`Mobiledevices` resource](https://developers.google.com/admin-sdk/directory/v1/reference/mobiledevices):

- `serialNumber`
- `imei`
- `meid`
- `wifiMacAddress`
- `networkOperator`
- `defaultLanguage`
- `managedAccountIsOnOwnerProfile`
- `deviceCompromisedStatus`
- `buildNumber`
- `kernelVersion`
- `basebandVersion`
Feature **Directory API** : The [`Chromeosdevices` resource](https://developers.google.com/admin-sdk/directory/v1/reference/chromeosdevices) has the following fields:

- `recentUsers`
- Device's `ethernetMacAddress`

## August 04, 2014

**Google Workspace Admin SDK** Deprecated **Reseller API** : Deprecated `readonly` scope.
Change **Reseller API** : new `licensedNumberOfSeats` field in the `Subscriptions` resource.

## July 17, 2014

**Google Apps Script** Feature Added the value `ON_CHANGE` to the [`ScriptApp.EventType`](https://developers.google.com/apps-script/reference/script/event-type.md.txt) enum so that Google Sheets [change events](https://developers.google.com/apps-script/understanding_events) can be detected correctly.

## July 11, 2014

**Gmail API** v1 Change Quota costs for all methods in the API have been reduced by a factor of 10. For example, if a method previously cost 150 quota units, it now costs 15. For a complete list of API method costs, see the [per-method quota usage chart](https://developers.google.com/gmail/api/reference/quota#per-method_quota_usage).

## June 25, 2014

**Gmail API** v1 Announcement The Gmail API is publicly available!
**Google Workspace Admin SDK** Feature **Reports API** : The [Drive activity report](https://developers.google.com/admin-sdk/reports/v1/guides/manage-audit-drive) is now available. This new report provides insight about Drive activity and how your account's users manage, modify, and share their Google Drive documents. This report is available only for G Suite Business customers and replaces the Google Docs activity report. The Google Docs activity report is now deprecated and will cease functioning on January 31, 2015.

## June 20, 2014

**Google Apps Script** Deprecated Deprecated the script gallery in the old version of Google Sheets. As explained in the [blog post](https://gsuite-developers.googleblog.com/2014/06/deprecating-script-gallery-in-old.html), the add-on store in the new version of Sheets gives developers wider distribution, automatic updates, and several other features not available in the script gallery.

## June 05, 2014

**Google Workspace Admin SDK** Change **Reports API** : Both [customer](https://developers.google.com/admin-sdk/reports/v1/reference/usage-ref-appendix-a/customers-gmail) and [user](https://developers.google.com/admin-sdk/reports/v1/reference/usage-ref-appendix-a/users-gmail) Gmail reports now include default values. For example, if a user sends no email, the `num_emails_sent` parameter is returned as 0. Previously, if there was no data for a field, that field was omitted from the report.

## May 29, 2014

**Google Apps Script** Change Added the `Document` service methods [`getTextAlignment`](https://developers.google.com/apps-script/reference/document/text.md.txt#getTextAlignment()) and [`setTextAlignment`](https://developers.google.com/apps-script/reference/document/text.md.txt#setTextAlignment(Integer,Integer,TextAlignment)) as well as the enum `TextAlignment`, to support `NORMAL`, `SUPERSCRIPT`, and `SUBSCRIPT` text alignment in Google Docs.

## May 27, 2014

**Google Workspace Admin SDK** Feature **Reports API** : Includes usage statistics from suspended users in [Customers Usage reports](https://developers.google.com/admin-sdk/reports/v1/guides/manage-usage-customers).

## May 15, 2014

**Google Apps Script** Deprecated [Deprecated](https://developers.google.com/apps-script/guides/support/sunset.md.txt) both [`ScriptDB`](https://developers.google.com/apps-script/guides/script-db) and the [`Domain` service](https://developers.google.com/apps-script/reference/domain). 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](https://developers.google.com/apps-script/migration/script-db) and the improved guide to [connecting to external databases through JDBC](https://developers.google.com/apps-script/guides/jdbc.md.txt). To replace the `Domain service`, see the [Admin SDK Directory](https://developers.google.com/apps-script/advanced/admin-sdk-directory.md.txt) and [Admin SDK Reports](https://developers.google.com/apps-script/advanced/admin-sdk-reports.md.txt) advanced services.
Feature Added a source property to the [event parameter](https://developers.google.com/apps-script/understanding_events) for [form triggers](https://developers.google.com/apps-script/understanding_triggers). This makes it possible to retrieve the form that triggered the event.
Issue
- [Issue 3956](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3956): In the new version of Google Sheets, it is now possible to call methods that refer to the "active" sheet or spreadsheet even if the sheet or spreadsheet has just been created.
- [Issue 3579](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3579): The `Blob` method `getA`s can now create PDFs from spreadsheets created with the new version of Sheets.
- [Issue 3378](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3378): The documentation page for a library version now uses the same CSS styles as the Apps Script reference documentation.

## May 08, 2014

**Google Apps Script** Change The "Report an issue" dialog for [add-ons](https://developers.google.com/gsuite/add-ons/overview) now asks users whether they would like to share their name and email address with the developer.

## May 01, 2014

**Google Apps Script** Fixed
- [Issue 3963](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3963): The [Apps Script dashboard](https://script.google.com/dashboard) is available again.
- [Issue 3533](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3533): The `Trigger` methods `getEventType()` and `getTriggerSource()` no longer throw an exception if the trigger belongs to a spreadsheet created by the [new version of Google Sheets](https://support.google.com/drive/answer/3541068).

## April 24, 2014

**Google Apps Script** Change In the [new version of Google Sheets](https://support.google.com/drive/answer/3541068), the Undo command can now revert changes made by a script. This was already true in Docs, Forms, and the older version of Sheets.
Fixed
- [Issue 3891](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3891): In the new version of Sheets, custom functions now recalculate correctly if more than 100 cells are passed as an argument.
- [Issue 3859](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3859): In the new version of Sheets, setting data-validation criteria for a cell that already contains a value no longer corrupts the spreadsheet.
- [Issue 3773](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3773): In the new version of Sheets, the Browser methods `inputBox` and `msgBox` now treat newline characters (`\n`) the same way that the older version of Sheets did. Specifically, `\n` produces a space, but `\\n` (double-escaped) produces a line break.
- [Issue 2335](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2335): The fact that the ID of a `GmailThread` varies based on the messages it contains is [now documented](https://developers.google.com/apps-script/reference/gmail/gmail-thread.md.txt#getId()).
- [Issue 2288](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2288): The fact that a Google Site or page of a site cannot have more than 500 child pages is [now documented](https://developers.google.com/apps-script/reference/sites/site#createAnnouncementsPage(String,String,String)).
- [Issue 1427](https://code.google.com/p/google-apps-script-issues/issues/detail?id=1427): The fact that the method `getAs` replaces the part of a filename that follows the last period with the new file type's extension is [now documented](https://developers.google.com/apps-script/reference/base/blob.md.txt#getAs(String)).

## April 23, 2014

**Google Workspace Admin SDK** Change **Reports API** : A change has been made to how parameters with no data are returned by the API. Previously, if there was no data for a parameter, it would be absent from the report. For example, the Gmail user usage report would not include the `num_emails_sent` field in the response if a user didn't send any emails on the report date. The API now returns these parameters with a default of 0 for integers and false for boolean values.

## April 17, 2014

**Google Apps Script** Change The `Document` method [`setSelection`](https://developers.google.com/apps-script/reference/document/document.md.txt#setSelection(Range)), the `Sheet` method [`activate`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#activate()), and the `Spreadsheet` methods [`setActiveRange`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#setActiveRange(Range)) and [`setActiveSelection`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#setActiveSelection(Range)) no longer have any effect if they are called from an [`onOpen` or `onEdit` trigger](https://developers.google.com/apps-script/understanding_triggers).
Issue
- [Issue 3669](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3669): In the [new version of Sheets](https://support.google.com/drive/answer/3541068), the `Range` methods `getValue()` and `getValues()` no longer throw an exception if a cell uses the built-in Sheets methods `=IMAGE(url)` or `=SPARKLINE(data)`.
- [Issue 2684](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2684): If a script relies on a deleted version of a library, it is now possible to switch to a different version.

## April 15, 2014

**Google Workspace Admin SDK** Feature **Reports API** : A new `num_users_2sv_not_enrolled_but_enforced` parameter has been added to the [customer accounts usage report](https://developers.google.com/admin-sdk/reports/v1/reference/usage-ref-appendix-a/customers-accounts). This new parameter indicates the number of domain users that have 2-step verification enforced but have not enrolled.

## April 10, 2014

**Google Apps Script** Fixed
- [Issue 3788](https://code.google.com/p/google-apps-script-issues/issues/detail?id=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](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3539): In the new version of Sheets, the `Range` methods `setValue` and `setValues` now automatically detect when a value should be set as a formula. This matches the behavior in the older version of Sheets.
Deprecated The deprecated SOAP service and old XML service have now been removed from autocomplete and documentation, as announced on July 9, 2013 and documented in the [Apps Script sunset schedule](https://developers.google.com/apps-script/guides/support/sunset.md.txt). Existing scripts that use these services should still function. The UI service widgets `DeckPanel`, `DecoratedPopupPanel`, `DockLayoutPanel`, `DockPanel`, `StackLayoutPanel`, and `TabLayoutPanel` have been completely disabled, as announced on April 15, 2013.

## April 03, 2014

**Google Apps Script** Feature The Range method `getDataSourceUrl()` is now supported in the [new version of Google Sheets](https://support.google.com/drive/answer/3541068). For information on other incomplete Apps Script features in the new version of Sheets, see the [list of known issues](https://developers.google.com/apps-script/migration/sheets).
Change
- [Issue 3866](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3866): The `DocsList` methods `File.getEditors()` and `File.getViewers()`no longer throw a server error on every call.
- [Issue 3865](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3865): The `DocsList` method `File.getOwner()` no longer throws a server error on every call.
- [Issue 3845](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3845): The advanced Google services for [Drive](https://developers.google.com/apps-script/advanced/drive.md.txt) and [Calendar](https://developers.google.com/apps-script/advanced/calendar.md.txt) are now documented.
- [Issue 3624](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3624): In the new version of Sheets, the `Sheet` method `hideSheet()` can now hide sheets that have just been inserted.
- [Issue 3554](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3554): In the new version of Sheets, the `Range` method `sort()` now succeeds for ranges that do not include column A.
- [Issue 3522](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3522): In the new version of Sheets, the `SpreadsheetApp` method `getActiveSheet()` now returns the correct sheet in a single custom function call. However, `getActiveSheet()` still returns an incorrect value if the custom function is used in more than one cell with the same function arguments, or if called from an installable edit trigger in the new version of Sheets.
- [Issue 3496](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3496): In the new version of Sheets, the `SpreadsheetApp` method `getActiveRange()` now returns the correct range in a single custom function call. However, `getActiveRange()` still returns an incorrect value if the custom function is used in more than one cell with the same function arguments, or if called from an installable edit trigger in the new version of Sheets.

## March 27, 2014

**Google Apps Script** Fixed
- [Issue 3691](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3691): In the new version of Google Sheets, scripts can now run for 6 minutes instead of 5 minutes.
- [Issue 3236](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3236): Google Picker, a "file-open" dialog for information stored in Google servers, including files in Google Drive, is now [supported in HTML service](https://developers.google.com/apps-script/guides/dialogs.md.txt#file-open_dialogs).
Change When an [add-on](https://developers.google.com/gsuite/add-ons/overview) is installed from the store, the `onInstall()` [simple trigger](https://developers.google.com/apps-script/understanding_triggers) is now passed an [event parameter](https://developers.google.com/apps-script/understanding_events), `e`, which includes an `authMode` property. This makes it easier for an add-on to [call `onOpen(e)` from `onInstall(e)`](https://developers.google.com/gsuite/add-ons/concepts/addon-authorization#the_complete_lifecycle).
**Google Workspace Admin SDK** Fixed **Reports API**: Fixed an issue that caused filters to use case-sensitive comparisons. All filters are now case-insensitive.
Feature **Reports API** : Added two new `login_failure_type` values to the [Login Audit events](https://developers.google.com/admin-sdk/reports/v1/reference/activity-ref-appendix-a/login-event-names): `login_failure_account_disabled` and `login_failure_unknown`.

## March 24, 2014

**Google Apps Script** Change In the [new version of Google Sheets](https://support.google.com/drive/answer/3541068), `Range.setValues()` now automatically extends the spreadsheet if the range is larger than the present size.
Fixed
- [Issue 3800](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3800): In the new version of Sheets, custom functions now accept numbers larger than 10,000,000 or smaller than 0.0001 as arguments.
- [Issue 3770](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3770): In the new version of Sheets, `Sheet.insertImage()` now inserts the image at the correct size.
- [Issue 3724](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3724): In the new version of Sheets, `Range.setValue()` now correctly sets numeric values in non-English spreadsheets.

## March 18, 2014

**Google Apps Script** Fixed [Issue 3757](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3757): The link to the Google Developers Console in the Advanced Google Services dialog now opens the correct project.

## March 11, 2014

**Google Apps Script** Announcement [Announced a developer preview](https://gsuite-developers.googleblog.com/2014/03/add-ons.html) for add-ons in Google Docs and the new version of Google Sheets, with support for Google Forms coming soon. An add-on is an Apps Script project published to a store inside Docs or Sheets, which makes it easy for users to find and install new features. Our guides cover everything you need to know to [develop](https://developers.google.com/gsuite/add-ons/overview), [design](https://developers.google.com/gsuite/add-ons/guides/style), and [apply to publish](https://developers.google.com/gsuite/add-ons/how-tos/publish-addons) your first add-on.
Feature
- Released a [CSS package](https://developers.google.com/gsuite/add-ons/guides/css) to apply Google styling to fonts, buttons, and form elements in HTML service dialogs and sidebars, primarily for use in add-ons.
- Added the UI method [`createAddonMenu()`](https://developers.google.com/apps-script/reference/base/ui.md.txt#createAddonMenu()), which allows scripts to insert a sub-menu into the Add-ons menu in Google Sheets or Docs. For more information, see the [guide to menus](https://developers.google.com/apps-script/guides/menus.md.txt).
- Added the `ScriptApp` enum [`AuthMode`](https://developers.google.com/apps-script/reference/script/auth-mode.md.txt), which identifies categories of authorized services that Apps Script can execute through a triggered function. For more information, see the [guide to the add-on authorization lifecycle](https://developers.google.com/gsuite/add-ons/concepts/addon-authorization#authorization_modes).
- Added support for the custom JsDoc annotation [`@OnlyCurrentDoc`](https://developers.google.com/apps-script/guides/services/authorization.md.txt#manual_authorization_scopes_for_sheets_docs_and_forms), which forces the authorization dialog to ask only for access to files in which an add-on or script is used, rather than all of a user's spreadsheets, documents, or forms. An opposing annotation, `@NotOnlyCurrentDoc`, is also available.
Change Changed the [quota](https://developers.google.com/apps-script/guides/services/quotas.md.txt) for Gmail from 10,000 reads and 10,000 writes per day (excluding sent messages) to 20,000 reads and writes combined per day.

## March 05, 2014

**Google Workspace Admin SDK** Fixed **Reports API**: Fixed an issue that caused filters to be ignored on queries for single users and always return a single record. After the fix, queries for single users that also include filters will return no result if the user does not match the filter criteria.

## February 28, 2014

**Google Workspace Admin SDK** Fixed **Reports API**: Fixed an issue that caused certain statistics on numbers of active users to include one extra day. Some domains might notice a decrease in the number of reported active users for reports after February 24, 2014. The affected fields are:

- Accounts
  - `num_1day_logins`
  - `num_7day_logins`
  - `num_30day_logins`
- Google Calendar
  - `num_1day_active_users`
  - `num_7day_active_users`
- Google Docs
  - `num_1day_active_users`
  - `num_7day_active_users`
  - `num_30day_active_users`
- Gmail
  - `num_1day_active_users`
  - `num_7day_active_users`
  - `num_30day_active_users`
- Google+
  - `num_1day_active_users`
  - `num_7day_active_users`
Feature **Reports API** : Added the following fields to the [Customer Account Usage](https://developers.google.com/admin-sdk/reports/v1/reference/usage-ref-appendix-a/customers-accounts) and [Users Account Usage](https://developers.google.com/admin-sdk/reports/v1/reference/usage-ref-appendix-a/users-accounts) reports:

- Customer Accounts
  - `num_authorized_apps`
  - `authorized_apps`
  - `drive_used_quota_in_mb`
  - `gmail_used_quota_in_mb`
  - `gplus_photos_used_quota_in_mb`
  - `total_quota_in_mb`
  - `used_quota_in_mb`
  - `apps_total_licenses`
  - `apps_used_licenses`
  - `vault_total_licenses`
  - `coordinate_total_licenses`
- User Accounts
  - `num_authorized_apps`
  - `drive_used_quota_in_mb`
  - `gmail_used_quota_in_mb`
  - `gplus_photos_used_quota_in_mb`
  - `total_quota_in_mb`
  - `used_quota_in_mb`
  - `used_quota_in_percentage`

## February 25, 2014

**Google Apps Script** Change
- Replaced `ScriptProperties` and `UserProperties` with a unified [`PropertiesService`](https://developers.google.com/apps-script/reference/properties/properties-service.md.txt). For more information, see the [guide to the Properties service](https://developers.google.com/apps-script/guides/properties.md.txt).
- In Google Docs and Forms, sidebars now ignore the `setWidth()` method; they cannot be changed from the default width of 300px. This change was applied to the new version of Sheets in the previous week's release.
- In Google Docs and Forms, the Undo command can now revert changes made by a script. This is also true in the older version of Sheets, but not the new version.
- In the HTML service, the [`NATIVE` sandbox mode](https://developers.google.com/apps-script/guides/html/restrictions.md.txt#sandbox_mode) is now the default if you have not specified which mode your script should use. In a few edge cases, this may affect how existing web apps operate; if so, append [`.setSandboxMode(HtmlService.SandboxMode.EMULATED)`](https://developers.google.com/apps-script/reference/html/html-output.md.txt#setSandboxMode(SandboxMode)) to your `HtmlOutput` object to restore the old behavior.
Fixed [Issue 3622](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3622): The title bar of a sidebar shown by a script in Google Docs, Forms, or the new version of Sheets is now the same height as in a sidebar shown by a built-in feature.
Deprecated [Deprecated](https://developers.google.com/apps-script/guides/support/sunset.md.txt) the [Finance service](https://developers.google.com/apps-script/reference/finance). As announced in the [blog post](https://gsuite-developers.googleblog.com/2014/02/more-apps-script-apis-and-features.html), the service will remain available for the next six months but will be turned off on September 26, 2014.
Feature
- Added the following `DocumentApp` classes and methods, which allow scripts to create bookmarks and named ranges, plus set the user's cursor position or selection.
  - `Bookmark`
  - \`NamedRange
  - \`RangeBuilder
  - \`Document.addBookmark(position)
  - \`Document.addNamedRange(name, range)
  - \`Document.getBookmark(id)
  - \`Document.getBookmarks()
  - \`Document.getNamedRangeById(id)
  - \`Document.getNamedRanges()
  - \`Document.getNamedRanges(name)
  - \`Document.newPosition(element, offset)
  - \`Document.newRange()
  - \`Document.setCursor(position)
  - \`Document.setSelection(range)
  - \`Position.insertBookmark()
- Added the following `ScriptApp` class and methods, which allow scripts to create state tokens that can be used in callback APIs (like OAuth flows), as well as to retrieve the script's own OAuth 2.0 access token.
  - \`StateTokenBuilder
  - \`ScriptApp.getOAuthToken()
  - \`ScriptApp.newStateToken()
- Added the method `showModalDialog(userInterface, title)` to the Ui class, and replaced the method `showDialog(userInterface)` with `showModelessDialog(userInterface, title)`. This allows scripts to specify whether a dialog in Google Docs, Forms, or the new version of Sheets should prevent the user from interacting with anything other than the dialog.
- Added the client-side HTML-service method `google.script.host.editor.focus()`, which allows scripts to switch browser focus from the dialog or sidebar to the Google Docs, Sheets, or Forms editor.

## February 24, 2014

**Google Workspace Admin SDK** Change **Directory API** : The [`users.update` method](https://developers.google.com/admin-sdk/directory/v1/reference/users/update) behavior has been slightly changed to accommodate delegated administrator access to the Directory API. Only fields the authenticated user has access to can be specified in the request and only fields that have been updated are included in the response.

## February 18, 2014

**Google Apps Script** Fixed
- [Issue 3522](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3522): In the new version of Sheets, the `SpreadsheetApp` method `getActiveSheet()` now returns the correct sheet if called from a `simple onEdit()` trigger. However, `getActiveSheet()` still returns an incorrect value if used in a custom function or an installable edit trigger in the new version of Sheets.
- [Issue 3496](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3496): In the new version of Sheets, the `SpreadsheetApp` method `getActiveRange()` now returns the correct sheet if called from a simple `onEdit()` trigger. However, `getActiveRange()` still returns an incorrect value if used in a custom function or an installable edit trigger in the new version of Sheets.
- [Issue 3332](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3332): The `DocumentApp` method `setHeading()` now applies heading styles in the same way that the Google Docs editor does.
Deprecated Removed the Session method `getActiveUserTimeZone()`, which did not return a value for most users.
Change
- In Google Docs, Forms, and the [new version of Sheets](https://support.google.com/drive/answer/3541068), showing a dialog now automatically closes any other dialogs opened by a script. This matches the longstanding behavior in the older version of Sheets.
- In the new version of Sheets, sidebars now ignore the `setWidth()` method; they cannot be changed from the default width of 300px. This change will affect Docs and Forms soon.

## February 10, 2014

**Google Workspace Admin SDK** Feature **Reports API**: Suspended users are now included in the statistics for Google Docs reports. Some domains might notice an increase in the number of reported documents. The following parameters have been added to the User's usage report:

- [Accounts](https://developers.google.com/admin-sdk/reports/v1/reference/usage-ref-appendix-a/users-accounts): `used_quota_in_percentage`
- [Docs](https://developers.google.com/admin-sdk/reports/v1/reference/usage-ref-appendix-a/users-docs)
  - `num_docs_externally_visible`
  - `num_docs_internally_visible`
- [Gmail](https://developers.google.com/admin-sdk/reports/v1/reference/usage-ref-appendix-a/users-gmail): `num_emails_exchanged`

## January 27, 2014

**Google Apps Script** Deprecated 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.

- `SearchResult` and `SelectedElement` are now `RangeElement`.
- `Selection` is now `Range`.
- `Selection.getSelectedElements()` is now `Range.getRangeElements()`.
Change The [quota](https://developers.google.com/apps-script/guides/services/quotas.md.txt) for the number of email recipients for scripts running from consumer (gmail.com) or free Google Apps accounts has been reduced from 500 to 100 per day. The quota for paid Google Apps accounts has not been changed.
Feature Added the following `Session` methods, which allow scripts to determine the user's locale and time zone:

- `getActiveUserLocale()`
- `getActiveUserTimeZone()`
**Google Workspace Admin SDK** Feature **Directory API** : Supports [push notifications](https://developers.google.com/admin-sdk/directory/v1/guides/push) for changes to users and aliases. You no longer need to poll resources to detect changes. You can create a notification channel using the [`users.watch`](https://developers.google.com/admin-sdk/directory/reference/rest/v1/users/watch) and [`users.aliases.watch`](https://developers.google.com/admin-sdk/directory/v1/reference/users/aliases/watch) methods. You can stop receiving notifications with the [`channels.stop`](https://developers.google.com/admin-sdk/directory/v1/reference/channels/stop) method.
Feature **Reports API** : Added [push notifications](https://developers.google.com/admin-sdk/reports/v1/guides/push) for changes to the [`Activities` resource](https://developers.google.com/admin-sdk/reports/v1/reference/activities). This is exposed in the API as two new methods, [`activities.watch`](https://developers.google.com/admin-sdk/reports/v1/reference/activities/watch) and [`channels.stop`](https://developers.google.com/admin-sdk/reports/v1/reference/channels/stop), to start and stop receiving notifications.
Feature **Directory API** : Structured search queries for users are available by using the [`users.list` method](https://developers.google.com/admin-sdk/directory/v1/reference/users/list).

## January 21, 2014

**Google Apps Script** Feature 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.

## January 13, 2014

**Google Apps Script** Deprecated Deprecated the `SpreadsheetApp.Spreadsheet` methods `isAnonymousView()`, `isAnonymousWrite()`, `isReadable()`, `isWritable()`, and `setAnonymousAccess()`. Various methods of the [`File`](https://developers.google.com/apps-script/reference/drive/file.md.txt) class in `DriveApp` can achieve the same functionality.
Change Renamed the `Cursor` object in `DocumentApp` to `Position`. This does not require any changes to existing code.
Feature Added the `SpreadsheetApp` method `DataValidationBuilder.requireFormulaSatisfied(String)`, as well as an accompanying `CUSTOM_FORMULA` value in `DataValidationCriteria`. This feature can only be used in the new version of Google Sheets.

## January 06, 2014

**Google Apps Script** Change
- Custom menus in Google Docs now appear in the Help menu search box.
- Custom dialogs created with the HTML service can now be [resized](https://developers.google.com/apps-script/guides/html/communication.md.txt#resizing_dialogs_in_google_apps) by calling `google.script.host.setWidth(width)` and `google.script.host.setHeight(height)` in client-side code. Sidebars cannot be resized in client side code.
Feature Added the advanced parameter escaping to [`UrlFetchApp.fetch()`](https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app.md.txt#fetch(String,Object)). If `false`, reserved characters in the URL will not be automatically escaped.
Feature The `Maps.DirectionFinder.Mode` enum now includes the `TRANSIT` value allowing for the retrieval of public transit routes in the [`Maps` service](https://developers.google.com/apps-script/reference/maps.md.txt).

## December 16, 2013

**Google Apps Script** Change
- [Changed the default syntax](http://googleappsdeveloper.blogspot.com/2013/12/more-google-services-available-in-apps.html) for all existing advanced services to match the underlying APIs' reference documentation. The old Apps Script getter/setter notation for these services will continue to work but will no longer appear in autocomplete.
- Renamed the menu entry **Resources \> Manage libraries** to **Resources \> Libraries**.
- Renamed the menu entry **Resources \> Google APIs Services** to **Resources \> Advanced Google services**.
Fixed [Issue 3461](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3461): A yellow warning bar should no longer appear on Apps Script gadgets that are embedded in Google Sites.
Feature [Added seven new advanced services](http://googleappsdeveloper.blogspot.com/2013/12/more-google-services-available-in-apps.html):
+ Admin SDK Directory service
+ Admin SDK Reports service
+ Fusion Tables service
+ Google+ Domains service
+ Mirror service
+ YouTube service
+ YouTube Analytics service

## December 03, 2013

**Google Workspace Admin SDK** Feature **Reports API** : Added support for resellers to retrieve usage reports and audit information for a specific customer. This is exposed in the API as a new `customerId` parameter for the [`activities.list`](https://developers.google.com/admin-sdk/reports/v1/reference/activities/list), [`customerUsageReports.get`](https://developers.google.com/admin-sdk/reports/v1/reference/customerUsageReports/get), and [`userUsageReport.get`](https://developers.google.com/admin-sdk/reports/v1/reference/userUsageReport/get) methods.

## December 02, 2013

**Google Apps Script** Fixed
- [Issue 3101](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3101): Removed the `SitesApp` method `Site.deleteSite()`, which was never functional.
- [Issue 3046](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3046): `UrlFetchApp` now properly preserves RFC 3986 escaping.
- [Issue 2497](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2497): An rare edge case issue when using `UiApp` server handler callbacks and libraries no longer occurs.
- [Issue 1346](https://code.google.com/p/google-apps-script-issues/issues/detail?id=1346): An issue in which a library's `UiApp` server handlers created new server handlers that were not able to reference non-library functions should no longer occur.
Feature Added `TITLE` and `SUBTITLE` values to the [`DocumentApp.ParagraphHeading` enum](https://developers.google.com/apps-script/reference/document/paragraph-heading.md.txt).

## November 18, 2013

**Google Apps Script** Deprecated 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

**Google Apps Script** Fixed [Issue 3189](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3189): A rare issue in which `LockService` failed to acquire a lock should no longer occur.

## November 04, 2013

**Google Apps Script** Change If a version of a library has been deleted by the library owner, scripts can no longer use that version.
Fixed [Issue 2817](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2817): Sporadic errors about missing libraries should now occur less frequently.

## October 28, 2013

**Gmail API** v1 Feature The [Review Action](https://developers.google.com/gmail/markup/reference/review-action) is out of preview, and now available to all users.

## October 21, 2013

**Google Apps Script** Fixed [Issue 74](https://code.google.com/p/google-apps-script-issues/issues/detail?id=74): Simple `onEdit()` triggers now fire correctly when the user is not signed in to a Google account.

## October 08, 2013

**Google Apps Script** Feature Added the following `FormApp` methods, which allow scripts to work with progress bars, custom closed-form messages, and YouTube videos.
+ [`Form.hasProgressBar()`](https://developers.google.com/apps-script/reference/forms/form.md.txt#hasProgressBar())
+ [`Form.setProgressBar(enabled)`](https://developers.google.com/apps-script/reference/forms/form.md.txt#setProgressBar(Boolean))
+ [`Form.getCustomClosedFormMessage()`](https://developers.google.com/apps-script/reference/forms/form.md.txt#getCustomClosedFormMessage())
+ [`Form.setCustomClosedFormMessage(message)`](https://developers.google.com/apps-script/reference/forms/form.md.txt#setCustomClosedFormMessage(String))
+ [`Form.addVideoItem()`](https://developers.google.com/apps-script/reference/forms/form.md.txt#addVideoItem())

## October 03, 2013

**Gmail API** v1 Feature The Schema Validator tool in [Testing Your Schemas](https://developers.google.com/gmail/markup/testing-your-schema) has been replaced with the new [Email Markup Tester](https://www.google.com/webmasters/markup-tester/).

## September 23, 2013

**Google Apps Script** Feature Added the following `DriveApp` methods, which allow scripts to get the owner of a File or Folder.

- [`File.getOwner()`](https://developers.google.com/apps-script/reference/drive/file.md.txt#getOwner())
- [`Folder.getOwner()`](https://developers.google.com/apps-script/reference/drive/folder.md.txt#getOwner())

## September 16, 2013

**Google Apps Script** Feature
- HTML Service now supports most CSS3 features. A notable exception is the `:nth-child()` pseudo-selector, which remains unsupported, along with a small number of obscure or non-standardized CSS3 features. To check whether the Caja security sandbox in HTML Service supports a specific feature, see the [CSS whitelist definitions in Caja's public repository](https://code.google.com/p/google-caja/source/browse/trunk/src/com/google/caja/lang/css).
- Added the following `DriveApp` methods, which allow scripts to save the state of a file or folder iterator and resume at a later time. These method are useful if processing an iterator in one execution would exceed the maximum execution time.
  - `FileIterator.getContinuationToken()`
  - `FolderIterator.getContinuationToken()`
  - `DriveApp.continueFileIterator(continuationToken)`
  - `DriveApp.continueFolderIterator(continuationToken)`
Deprecated The `UiApp` widgets `Hyperlink`, `InlineHyperlink`, `LayoutPanel`, and `RichTextArea` have now been disabled, as announced on March 13, 2013 and documented in the [Apps Script sunset schedule](https://developers.google.com/apps-script/guides/support/sunset.md.txt).

## September 09, 2013

**Google Apps Script** Deprecated 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.
Fixed Issue 2621: A situation in which certain scripts did not terminate despite exceeding the execution-time limit no longer occurs.
Feature Added the `DocumentApp` methods [`InlineImage.getLinkUrl()`](https://developers.google.com/apps-script/reference/document/inline-image.md.txt#getLinkUrl()) and [`InlineImage.setLinkUrl(url)`](https://developers.google.com/apps-script/reference/document/inline-image.md.txt#setLinkUrl(String)).

## September 03, 2013

**Google Apps Script** Feature
- Added the `DriveApp` methods `DriveApp.getFoldersByName(name)` and `DriveApp.searchFolders(params)`, which return a `FolderIterator` with the requested results.
- Added the `DriveApp` methods `File.getViewers()`, `File.getEditors()`, `Folder.getViewers()`, and `Folder.getEditors()`, which return an array of `Users` with view or edit access.
Deprecated Removed the ability to get the user's email address in [simple `onEdit()` triggers](https://developers.google.com/apps-script/understanding_triggers#simple-triggers). Because simple triggers don't request user authentication, this change was important to protect the identity of collaborators who hadn't explicitly granted permission for the script to collect their email address.

## September 02, 2013

**Google Workspace Admin SDK** Feature **Reseller API** : The customer resource's `resourceUiUrl` URL to customer's Admin console dashboard. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task in the Admin console.
Feature **Reseller API** : When retrieving all transferable subscriptions for a customer, the response contains a subscription's `transferInfo` property with the `tranferabilityExpirationTime` and `minimumTransferSeats` attributes.\`
Feature **Reseller API** : To retrieve all of a customer's subscriptions, use the customer's `customerId` parameter. For more information, see [Retrieve \& update a subscription](https://developers.google.com/admin-sdk/reseller/v1/how-tos/manage_subscriptions/admin-sdk/reseller/v1/how-tos/manage_subscriptions).
Feature **Reseller API** : The API can retrieve the full account settings of one of your resold customers or the `customerId` and `customerName` of a standalone Google customer or a customer managed by another reseller.
Feature **Reseller API** : To retrieve all transferable subscriptions for a customer, use the customer's `customerId` and the `customerAuthToken`. For more information, see [Retrieve all transferable subscriptions for a customer](https://developers.google.com/admin-sdk/reseller/v1/how-tos/manage_subscriptions#retrieve_all_transferable_subscriptions_for_a_customer).

## August 19, 2013

**Google Apps Script** Feature Added the `DriveApp` methods [`File.makeCopy(destination)`](https://developers.google.com/apps-script/reference/drive/file.md.txt#makeCopy(Folder)) and [`File.makeCopy(name, destination)`](https://developers.google.com/apps-script/reference/drive/file.md.txt#makeCopy(String,Folder)), which allow scripts to specify a folder to which a file should be copied.
Fixed [Issue 3097](https://code.google.com/p/google-apps-script-issues/issues/detail?id=3097): A performance issue that affected certain scripts no longer occurs.

## August 13, 2013

**Google Apps Script** Feature Added the method [`Spreadsheet.deleteSheet(sheet)`](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.md.txt#deleteSheet(Sheet)), which allows deletions of sheets that are not the active sheet.

## August 05, 2013

**Google Apps Script** Feature
- Added the method [`GmailMessage.getPlainBody()`](https://developers.google.com/apps-script/reference/gmail/gmail-message.md.txt#getPlainBody()), which returns the content of the message without HTML formatting.
- Launched a new feature to allow programmatic control over [data-validation rules](https://developers.google.com/apps-script/reference/spreadsheet/data-validation.md.txt) in Google Sheets.
Fixed
- [Issue 2916](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2916): HTML files inserted into a new Apps Script project using the Google Drive SDK are no longer created with the `server_js` filetype.
- [Issue 2880](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2880): Special characters (such as apostrophes) no longer need to be escaped twice when passed to `DriveApp.getFilesByName()`.
- [Issue 2780](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2780): `DriveApp` now throws a more appropriate error message if Google Drive apps are prohibited within the user's domain.
Deprecated Deprecated the `DocsList` methods `find(query, start, max)`, `getAllFiles(start, max)`, `getAllFolders(start, max)`, `getFiles(start, max)`, `getFilesByType(fileType, start, max)`, and `getFolders(start, max)`. Instead of these methods, use [`DriveApp`](https://developers.google.com/apps-script/reference/drive/drive-app.md.txt) or one of the [`DocsList.get*ForPaging()`](https://developers.google.com/apps-script/reference/docs-list/docs-list) methods.

## July 29, 2013

**Google Apps Script** Change All new scripts now use the [new authorization flow](https://developers.google.com/apps-script/scripts_google_accounts#grantingAccess) by default.
Fixed [Issue 2947](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2947): Newlines are now supported in [`Ui.alert()`](https://developers.google.com/apps-script/reference/base/ui.md.txt#alert(String)) and [`Ui.prompt()`](https://developers.google.com/apps-script/reference/base/ui.md.txt#prompt(String)) dialogs.
Feature On ChromeOS devices, it is now possible to activate autocomplete (sometimes called "content assist") with the keyboard shortcut `Ctrl + Space`.

## July 23, 2013

**Gmail API** v1 Feature It is now possible to use schemas to define [Orders](https://developers.google.com/gmail/markup/reference/order), [Parcel Deliveries](https://developers.google.com/gmail/markup/reference/parcel-delivery), and the [TrackAction](https://developers.google.com/gmail/markup/reference/go-to-action#track_action) to let users track packages being delivered.

## July 22, 2013

**Google Apps Script** Feature Added `DriveApp` and `FormApp` to the services tracked on the [Apps Script Dashboard](https://script.google.com/a/google.com/dashboard).
Fixed [Issue 2801](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2801): Fixed an issue in which specific URL parameters did not work with `HtmlService`.

## July 11, 2013

**Gmail API** v1 Feature The [RSVP Action](https://developers.google.com/gmail/markup/reference/rsvp-action) is now enabled for all emails sent by Google Calendar.

## July 09, 2013

**Google Apps Script** Deprecated [Deprecated](https://developers.google.com/apps-script/guides/support/sunset.md.txt) the old `Xml` service, `SoapService`, and support for the JavaScript feature E4X.
Feature Added [`XmlService`](https://developers.google.com/apps-script/reference/xml-service.md.txt) to replace the old `Xml` service.
Fixed
- [Issue 2906](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2906): Chained method calls in [advanced Google services](https://developers.google.com/apps-script/built_in_services#advanced_google_services) no longer throw an exception.
- [Issue 2872](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2872): [`File.removeEditor()`](https://developers.google.com/apps-script/reference/docs-list/file#removeEditor(String)) no longer throws an exception when the editor is a group instead of an individual user.

## July 01, 2013

**Google Workspace Admin SDK** Feature **Reseller API** : A subscription's optional status property can be `ACTIVE`, `CANCELLED`, `PENDING`, or `SUSPENDED`. For more information, see the [`subscriptions` resource](https://developers.google.com/admin-sdk/reseller/reference/rest/v1/subscriptions).
Change **Reseller API**: A Vault subscription is no longer limited to accounts created after August 1.
Change **Reseller API** : The maximum queries per day (QPD) has been increased to 10,000. For more information, see [Usage limits](https://developers.google.com/admin-sdk/reseller/v1/limits).
Change **Reseller API** : The `customerId` parameter is either the primary domain name or the unique identifier of a customer. We recommend using the unique identifier or the customer value.

## June 25, 2013

**Google Apps Script** Fixed
- [Issue 2820](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2820): `getActiveSheet()`now properly returns the active sheet when used with an `onChange` trigger.
- [Issue 2761](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2761): When a `Document` element that contains an image is copied, the image is now also copied.
Change
- Any script that is container-bound to a Google Doc can now access the active user's `Cursor` and `Selection` by calling `Document.getCursor()` and `Document.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()` or `Session.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](https://developers.google.com/apps-script/scripts_google_accounts#reauth).
- `UrlFetch` requests made by scripts that run on a time-based trigger now include an `If-Modified-Since` HTTP 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

**Google Apps Script** Fixed
- [Issue 2626](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2626): The execution transcript now correctly reports the execution time for methods that are called repeatedly.
- [Issue 2559](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2559): A sporadic issue in which `Spreadsheet.getSheetByName()` returned null for a valid sheet name no longer occurs.
- [Issue 1965](https://code.google.com/p/google-apps-script-issues/issues/detail?id=1965): Emails forwarded using `GmailMessage.forward()` now preserve inline images.
- [Issue 1414](https://code.google.com/p/google-apps-script-issues/issues/detail?id=1414): `Range.copyTo()` now adds additional rows as necessary, if the destination sheet does not have enough rows to accommodate the range.
Feature
- [Issue 1034](https://code.google.com/p/google-apps-script-issues/issues/detail?id=1034): The new Drive Service methods `addCommenter()` and `removeCommenter()` allow scripts to add and remove commenters on files.
- [Issue 674](https://code.google.com/p/google-apps-script-issues/issues/detail?id=674): Mail sent with `GmailApp` now appears in the `Sent Mail` folder in Gmail.

## June 11, 2013

**Google Apps Script** Fixed
- [Issue 2823](https://code.google.com/p/google-apps-script-issues/issues/detail?id=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](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2807): A rare issue where a script could not be upgraded to the new authorization flow no longer occurs.
- [Issue 2791](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2791): Calling `Trigger.getTriggerSource()` for a Form-based trigger no longer throws an exception.
- [Issue 2734](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2734): `HtmlService` scripts that call long-running server-side functions no longer repeat the function call multiple times.

## June 03, 2013

**Google Apps Script** Fixed
- [Issue 2819](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2819): `Folder.createFile(name, content, mimeType)` now creates the file in the folder on which the method was executed.
- [Issue 2776](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2776): Existing deployed web apps now properly authenticate after upgrading a script to use the new authorization experience.
- [Issue 2679](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2679): The `getAs()` method of the File class no longer throws an error when converting .docx, .pptx, or .xlsx files to PDF.
- [Issue 2643](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2643): The timestamps for a script's log messages are now in the script's timezone.
- [Issue 2597](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2597): The script editor's Find functionality no longer skips the first result.
Change
- To simplify the end user experience, function names are no longer shown in the notification message for scripts that run successfully from a spreadsheet, document, or form. Function names are still displayed when there is an error (to help with debugging) and when the script is run from the script editor.
- To simplify the Document service, the following methods were removed from the Body class: `getNextSibling()`, `getPreviousSibling()`, `isAtDocumentEnd()`, `getLinkUrl()`, `setLinkUrl()`, and `removeFromParent()`.

## May 13, 2013

**Google Apps Script** Feature
- The script editor is now available within Google Docs and the Google Forms editor, and both Docs and Forms can now be [containers](https://developers.google.com/apps-script/scripts_containers) for scripts.
- Added [Forms Service](https://developers.google.com/apps-script/reference/forms.md.txt), which allows scripts to create and modify Google Forms.
- Added [Drive Service](https://developers.google.com/apps-script/reference/drive.md.txt), 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 [`getUi` method](https://developers.google.com/apps-script/reference/document/document-app.md.txt#getUi()) to `DocumentApp` and `FormApp`, 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 [`FormTriggerBuilder` class](https://developers.google.com/apps-script/reference/script/form-trigger-builder.md.txt) to allow scripts to respond to Forms events.
- Added a [`setSandboxMode` method](https://developers.google.com/apps-script/reference/html/html-output.md.txt#setSandboxMode(SandboxMode)) to enable a faster version of the `HtmlService` sandbox.
- Added a [`MimeType` enum](https://developers.google.com/apps-script/reference/base/mime-type.md.txt), which provides access to `MIME`-type declarations without typing the strings explicitly.
- Added an option to [upgrade to a new authorization flow](https://developers.google.com/apps-script/scripts_google_accounts#authUpgrade) that requires fewer clicks and automatically creates a Google Developers Console project for every script.

## May 09, 2013

**Google Apps Script** Feature [Issue 2158](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2158): The request object passed in to `doPost()` methods now contains the `POST` body. It can be accessed using e.postData.getDataAsString().
Fixed [Issue 2740](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2740): `UrlFetchApp.fetch()` calls no longer fail if the advanced parameters specify a payload without specifying the request method.

## May 02, 2013

**Google Apps Script** Fixed [Issue 2585](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2585): `Xml.parse()` once again correctly parses well-structured XML and HTML documents.
Feature [Issue 1363](https://code.google.com/p/google-apps-script-issues/issues/detail?id=1363): Added support for spreadsheet change events. The `onChange()` event now fires when certain modifications, such as row insertions, are done to a spreadsheet.

## April 29, 2013

**Google Apps Script** Fixed
- [Issue 2695](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2695): Form submits in UI Service apps once again work properly.
- [Issue 2625](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2625): The `withUserObject()` method in `Html` Service apps now works properly with Firefox 20.
- [Issue 1612](https://code.google.com/p/google-apps-script-issues/issues/detail?id=1612): `Element.copy()` can now copy `InlineImage` elements from one document to another.
- [Issue 170](https://code.google.com/p/google-apps-script-issues/issues/detail?id=170): `Spreadsheet.addCollaborators()` now sends an email invitation to collaborators when the `emailInvitations` advanced parameter is set.

## April 22, 2013

**Google Apps Script** Fixed
- [Issue 2665](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2665): `UrlFetchApp.fetch()` once again allows URLs that contain spaces.
- [Issue 2593](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2593): `Range.setValue()` now behaves correctly in a function called from an `onEdit` spreadsheet trigger.
- [Issue 941](https://code.google.com/p/google-apps-script-issues/issues/detail?id=941): The event parameter for a `ListBox` handler function now includes the value of the selected item rather than its name.
- [Issue 307](https://code.google.com/p/google-apps-script-issues/issues/detail?id=307): The event parameter for a `Tree` handler function now includes the ID of the selected item.
Change Large scripts in the Script Gallery now install more quickly.
Feature
- [Issue 1771](https://code.google.com/p/google-apps-script-issues/issues/detail?id=1771): Added a `clear()` method to the `Tree` and `TreeItem` classes. These methods remove all children from the object.
- [Issue 1743](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1743): Added an `autoResizeColumn()` method to the `Sheet` class. This method resizes a column to fit its contents.
- [Issue 1314](https://code.google.com/p/google-apps-script-issues/issues/detail?id=1314): Added support for lazy loading in the `Tree` class, which reduces wait times in rendering the UI.

## April 15, 2013

**Google Apps Script** Change The following changes were made to simplify the [`Document` service](https://developers.google.com/apps-script/reference/document.md.txt):

- Renamed the `DocumentBodySection` class to `Body`.
- Renamed `Document.getActiveSection()` to `getBody()`.
- Removed methods of the `Body` class from `Document` so they only appear in one location.
- Removed `merge()` methods for various classes that cannot be merged, such as `PageBreak` and `HorizontalRule`.
- Removed text-related methods such as `isBold()` and `isUnderline()` from container elements such as `Table` while retaining them on the `Text` class. This functionality can now be achieved by calling `editAsText()` on the container element, and calling the text-related methods on the returned `Text` class.
- Removed methods which allowed appending or inserting `HorizonalRule` elements with specified attributes.
Fixed [Issue 2565](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2565): `DocsList.createFile()` no longer allows the creation of files with invalid MIME types or Google document MIME types.
Deprecated Deprecated `UiApp` widgets `DeckPanel`, `DecoratedPopupPanel`, `DockLayoutPanel`, `DockPanel`, `StackLayoutPanel`, and `TabLayoutPanel`, which had limited usability.

## April 08, 2013

**Google Apps Script** Fixed
- [Issue 2548](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2548): Triggers created in web apps that allow for anonymous access no longer fail to fire.
- [Issue 2488](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2488): Charts dashboard components no longer throw serialization errors in certain scenarios.
Change
- Simplified the classes in the [`Document` service](https://developers.google.com/apps-script/reference/document.md.txt), removing unnecessary `.asSomething()` methods.
- Added timestamps to the log output.

## April 02, 2013

**Google Workspace Admin SDK** Breaking **Directory API**: The differences between the Directory API and the deprecated Provisioning API (v2):

- Account's domain name
  - The Directory API user's `primaryEmail` property holds the account's primary domain name.
  - The Provisioning API request URL's `domain` property holds the account's primary domain name.
- Administrator
  - The Directory API `isAdmin` property has a boolean `true`, `false` value. The `isAdmin` property can only be edited in the `Make a user an administrator` operation. If edited in the `Create a user account` or `Update a user account` operations, the edit is ignored.
  - The Provisioning API `isAdmin` property has a boolean `true`, `false` value. The property can be edited when the user is created or updated.
- A `customerId` unique identifier
  - The Directory API returns a `customerId` unique identifier property when a user is retrieved for an account with a single or multiple organizational units.
  - The Provisioning API returns a `customerId` for accounts with an organizational unit hierarchy.
- Deleted user list
  - The Directory API returns a list of users deleted from the account or a subdomain within the span of the last 20 days.
  - The Provisioning API doesn't support this feature.
- Disk space
  - Not applicable in this version of the Directory API.
  - The Provisioning API `apps:quota` that sets the user's disk space quota is no longer available. Setting a customer quota, different than 25600MB, has no effect.
- Devices
  - The Directory API's Google Chrome devices and mobile devices support the management of retrieving, adding, updating, and deleting your account's various devices.
  - The Provisioning API doesn't support these features.
- Email aliases outside of an account
  - The Directory API users and groups support listing non-editable alias email addresses that are outside of the account. These are functioning email addresses used by a user or a group on a regular basis.
  - The Provisioning API doesn't support this feature.
- Group alias
  - The Directory API creates, lists, and deletes a group's aliases.
  - The Provisioning API supports managing groups but doesn't include group aliases.
- Hash function
  - The Directory API `hashFunction` property holds the hash format of the `password` property. The values can be set to either SHA-1, MD5, or CRYPT hash formats.
  - The Provisioning API `hashFunctionName` attribute is a part of the `password` tag. The values can be either SHA-1, MD5, or CRYPT hash formats.
- Organizational units
  - The Directory API uses the `orgUnitPath` property when setting a new user.
  - The Provisioning API has two steps for creating a user in an organizational unit. First the user account is created and then the user is assigned to an organizational unit.
- Suspend a user
  - The Directory API suspends a user's account either when creating or updating the user's account using the `suspended` property. The reason for the suspension is also retained by the API in the `suspensionReason` property.
  - The Provisioning API uses the operation that suspends a user's account.
- Undelete a user
  - The Directory API undeletes a previously deleted user account within 20 days of the deletion.
  - The Provisioning API restores a suspended user account to an active state within the suspension period.
- User aliases
  - The Directory API supports user alias for a single or multiple domain account. A user alias is an alternate email address that uses the same mailbox used by the user's primary email address. A user's alias can be associated with a different account domain than that domain used by the user's primary email address. The account can have single or multiple domains. The Directory API doesn't use the concept of a 'nickname' for a single domain.
  - The Provisioning API manages a single domain account's nicknames, and, in the case of an account with multiple domains, the Provisioning API supports user aliases.
- User list's search, sorting, and list order
  - The Directory API can search for users by primary email address, given name, or family name. In addition, the Directory API can return lists of a domain's users sorted by the user's primary email address, given name, or family name. And, you have the option to list these results in ascending or descending order.
  - The Provisioning API doesn't support these features.

## April 01, 2013

**Google Apps Script** Feature [Issue 995](https://code.google.com/p/google-apps-script-issues/issues/detail?id=995): The new methods [`Sheet.hideSheet()`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#hideSheet()), [`Sheet.isSheetHidden()`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#isSheetHidden()), and [`Sheet.showSheet()`](https://developers.google.com/apps-script/reference/spreadsheet/sheet.md.txt#showSheet()) allow scripts to control the visibility of individual sheets within a spreadsheet.
Fixed
- [Issue 2524](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2524): Scripts that rely on deleted libraries now display a clear error message.
- [Issue 2169](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2169): Installing scripts from the Script Gallery no longer results in occasional errors.
- [Issue 459](https://code.google.com/p/google-apps-script-issues/issues/detail?id=459): The event parameter for spreadsheet `onEdit()` functions now reports the affected range correctly in a variety of situations in which the `range` property was previously incorrect.

## March 25, 2013

**Google Apps Script** Fixed
- [Issue 2534](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2534): Debugging into a recursive function using certain `GroupsManager` methods no longer throws an error.
- [Issue 1106](https://code.google.com/p/google-apps-script-issues/issues/detail?id=1106): Restored the correct behavior of `Range.mergeAcross()`. This function, along with `Range.merge()` and the newly added `Range.mergeVertically()`, behave like the items under a spreadsheet's **Format \> Merge cells** menu.

## March 18, 2013

**Google Apps Script** Change Renamed the action "Publish to Gallery" to "Submit to Gallery", to avoid confusion with publishing a web app.
Deprecated [Deprecated](https://developers.google.com/apps-script/guides/support/sunset.md.txt) the GUI Builder and the `UIApp` widgets `Hyperlink`, `InlineHyperlink`, `LayoutPanel`, `RichTextArea`, and `SuggestBox`, which had limited usability.

## March 11, 2013

**Google Apps Script** Fixed [Issue 1917](https://code.google.com/p/google-apps-script-issues/issues/detail?id=1917): It is no longer possible to install a script multiple times from the Script Gallery.
Change
- **View \> Execution** transcript now shows how much time it took to execute each statement.
- If a script is shared with editors other than its owner and published as a web app, those other editors can now update the app's version and access its development URL (which ends in `/dev`).
Feature
- Added the [method `Utilities.formatString()`](https://developers.google.com/apps-script/class_utilities#formatString), which allows printf-like substitution of placeholders within a format string.
- Added the [property `DocsList.FileType.FORM`](https://developers.google.com/apps-script/class_docslist_filetype) to let `DocsList` access new Google Forms.

## March 10, 2013

**Google Drive API** v3 Announcement The Google Drive API is now generally available.

## March 04, 2013

**Google Apps Script** Fixed
- [Issue 1182](https://code.google.com/p/google-apps-script-issues/issues/detail?id=1182): `Calendar.getEvents(startTime, endTime, statusFilters)` now works properly.
- [Issue 459](https://code.google.com/p/google-apps-script-issues/issues/detail?id=459): `OnEdit` callbacks triggered by pasting to a cell now provide the correct range parameter.

## February 25, 2013

**Google Apps Script** Change When setting font colors in a spreadsheet using [`Range.setFontColor()`](https://developers.google.com/apps-script/class_range#setFontColor) or [`Range.setFontColors()`](https://developers.google.com/apps-script/class_range#setFontColors), color names will now automatically be converted to their corresponding hexadecimal values. For example, after calling `setFontColor('red')` the method `getFontColor()` will return "#ff0000".
Fixed
- [Issue 2435](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2435): Spreadsheet-bound scripts that use `Browser.inputBox()` no longer fail.
- [Issue 1128](https://code.google.com/p/google-apps-script-issues/issues/detail?id=1128): Font colors set using `Range.setFontColor()` or `Range.setFontColors()` now appear correctly when printing the spreadsheet or exporting it as a PDF.
- [Issue 529](https://code.google.com/p/google-apps-script-issues/issues/detail?id=529): `SpreadsheetApp.getActiveSheet()` no longer fails to run in `onOpen()` triggers for certain spreadsheets.

## February 14, 2013

**Google Apps Script** Feature Added the [method `DocumentApp.openByUrl()`](https://developers.google.com/apps-script/class_documentapp#openByUrl), which allows documents to be opened by their URL directly.
Fixed
- [Issue 2382](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2382): `File.makeCopy()` no longer produces an error when copying a new Google Form.
- [Issue 2367](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2367): The error message for invalid queries of `ScriptDbInstance.between()` is now more descriptive.
- [Issue 747](https://code.google.com/p/google-apps-script-issues/issues/detail?id=747): Error messages now specify in which code file the error occurred.

## February 11, 2013

**Google Apps Script** Fixed
- [Issue 2388](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2388): The [quota dashboard](https://docs.google.com/macros/dashboard) once again displays the correct number of columns.
- [Issue 2344](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2344): Scripts that contain `onInstall()` functions no longer produce an error when installed from the Script Gallery.
- [Issue 2250](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2250): Dates are now logged in the script's time zone.
- [Issue 2021](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2021): `UiInstance.setStyleAttribute()` now properly sets the `backgroundImage` property in all supported browsers.
- [Issue 1811](https://code.google.com/p/google-apps-script-issues/issues/detail?id=1811): The debugger can now step into libraries used in development mode.
- [Issue 1300](https://code.google.com/p/google-apps-script-issues/issues/detail?id=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](https://code.google.com/p/google-apps-script-issues/issues/detail?id=1226): Client handlers for `ListBox` now fire properly in `UiApp`.
- [Issue 1030](https://code.google.com/p/google-apps-script-issues/issues/detail?id=1030): The `setStyleAttribute()` method of various `UiApp` objects now properly sets the 'float' attribute in Firefox.
- [Issue 1014](https://code.google.com/p/google-apps-script-issues/issues/detail?id=1014): `setFocus()` now works correctly.
- [Issue 231](https://code.google.com/p/google-apps-script-issues/issues/detail?id=231): Added `show()` and `hide()` methods to `PopupPanel`.
Feature Added the ability to directly attach `StaticMap` objects in emails.

## January 31, 2013

**Google Apps Script** Fixed
- [Issue 2317](http://code.google.com/p/google-apps-script-issues/issues/detail?id=2317): Email address validation in `UiApp` now works correctly with uppercase input.
- [Issue 2306](http://code.google.com/p/google-apps-script-issues/issues/detail?id=2306): The GUI Builder dialog shown for **File \> Open** no longer has two "Cancel" buttons.
- [Issue 2265](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2265): Static maps can now contain many more markers.
- [Issue 2203](https://code.google.com/p/google-apps-script-issues/issues/detail?id=2203): `CalendarEvent.getGuestList()` now returns the event creator in addition to the other guests.
- [Issue 2137](http://code.google.com/p/google-apps-script-issues/issues/detail?id=2137): A `DateBox` containing an empty or invalid date will now have a null value when processed in a server handler or `doPost()` callback. By default, setting an empty or invalid date will not trigger a value-changed event, but you can call the method [`setFireEventsForInvalid()`](https://developers.google.com/apps-script/class_datebox#setFireEventsForInvalid) to override that behavior.
- [Issue 1795](https://code.google.com/p/google-apps-script-issues/issues/detail?id=1795): `TextArea` widgets created using the GUI Builder now default to displaying scrollbars when the text is too long.
- [Issue 1764](https://code.google.com/p/google-apps-script-issues/issues/detail?id=1764): `ClockTriggerBuilder.onWeekDay()` now works correctly when used in conjunction with `everyWeeks()`.
- [Issue 1695](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1695): GmailLabel.getThreads() now works correctly when the label name contains special characters.
- [Issue 1366](https://code.google.com/p/google-apps-script-issues/issues/detail?id=1366): The methods getEditors() and getViewers() of the File class now return the full email address for entries that are groups.
- [Issue 918](https://code.google.com/p/google-apps-script-issues/issues/detail?id=918): Subsequent calls to Sheet.hideColumns() on different sheets no longer results in an error.
- [Issue 53](http://code.google.com/p/google-apps-script-issues/issues/detail?id=53): Rows containing only data-validation rules no longer count towards Sheet.getLastRow().
Feature Added the [method `SpreadsheetApp.openByUrl()`](https://developers.google.com/apps-script/class_spreadsheetapp#openByUrl), which allows spreadsheets to be opened by their URL directly.
Change
- Changed the behavior of `ClockTriggerBuilder` so that it now respects the time zone of the script, instead of defaulting to Pacific Time.
- The editor's Find dialog now supports searching over all files in the project.
- Improved the error message returned by `Range.setValues()` when the values fail to pass the validation on those cells.

## January 24, 2013

**Google Apps Script** Feature
- [Issue 1642](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1642): When connecting to an external database with [`Jdbc.getConnection`](https://developers.google.com/apps-script/class_jdbc#getConnection), you can now include the advanced argument use `JDBCCompliantTimezoneShift`.
- [Issue 619](http://code.google.com/p/google-apps-script-issues/issues/detail?id=619): `UiInstance`'s `createAnchor` method now allows links using the `mailto` scheme.
- [Issue 286](http://code.google.com/p/google-apps-script-issues/issues/detail?id=286): `UrlFetchApp`'s `fetch` method now accepts `followRedirects` as an advanced argument.
Fixed
- [Issue 1012](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1012): New calendar entries that span a time change (for example, the start of daylight saving time in that time zone) are now created with the correct duration.
- [Issue 912](http://code.google.com/p/google-apps-script-issues/issues/detail?id=912): It is now possible to display non-public images in a `UiApp` or `HtmlService` user interface, so long as the images are shared with the app's users.
- [Issue 815](http://code.google.com/p/google-apps-script-issues/issues/detail?id=815): `UiInstance`'s `createToggleButton(upText, downText)` method now functions correctly.
- [Issue 155](http://code.google.com/p/google-apps-script-issues/issues/detail?id=155): `Calendar.createAllDayEvent` now always sets the event to the correct date.

## January 17, 2013

**Google Apps Script** Fixed
- [Issue 2155](http://code.google.com/p/google-apps-script-issues/issues/detail?id=2155): The `Uninstall` link emailed to a user after authorizing a script embedded within a Google Site now works correctly.
- [Issue 1882](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1882): Icons in the Script Editor now display correctly on Macs with Retina displays.
Feature Added the method [`after(durationMilliseconds)`](https://developers.google.com/apps-script/class_clocktriggerbuilder#after) to class `ClockTriggerBuilder` to simplify the creation of one-off triggers.

## January 15, 2013

**Google Apps Script** Change [Issue 2204](http://code.google.com/p/google-apps-script-issues/issues/detail?id=2204): `Utilities.formatDate` no longer rejects certain time-zone formats, such as EST, CST, etc.

## December 17, 2012

**Google Apps Script** Fixed
- [Issue 2131](http://code.google.com/p/google-apps-script-issues/issues/detail?id=2131): The timezone offset for "Europe/Moscow" is now correct.
- [Issue 2124](http://code.google.com/p/google-apps-script-issues/issues/detail?id=2124): `ScriptDb` no longer throws an error when storing a float value.
- [Issue 2021](http://code.google.com/p/google-apps-script-issues/issues/detail?id=2021): Setting the background image of a `UiApp` panel now works correctly.
- [Issue 1856](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1856): The Jdbc service now resolves host names correctly.
- [Issue 1312](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1312): The error message shown when the rate limit for spreadsheet creation is exceeded is now more readable.
- [Issue 949](http://code.google.com/p/google-apps-script-issues/issues/detail?id=949): Typing the character `}` on a Spanish keyboard now works correctly.

## December 11, 2012

**Google Apps Script** Feature Added extra validation to the datasource URLs used in charts. Custom datasource URLs that rely on non-Google authentication will no longer work.
Fixed
- [Issue 2100](http://code.google.com/p/google-apps-script-issues/issues/detail?id=2100): `ScriptProperties.setProperties()` now respects the `deleteAllOthers` parameter.
- [Issue 2052](http://code.google.com/p/google-apps-script-issues/issues/detail?id=2052): `UiApp'`s `setStyleAttribute()` method no longer rejects certain style attributes.
- [Issue 2041](http://code.google.com/p/google-apps-script-issues/issues/detail?id=2041): The native `Date` methods `toLocaleDateString()` and `toLocaleTimeString()` now return the correct values.
- [Issue 1972](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1972): Web apps published from a domain, but available to everyone, now use the normal Google login page instead of domain's login page.
- [Issue 1876](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1876): The authorize link for scripts embedded in a Google Sites gadget now opens in a new tab/window.
- [Issue 1870](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1870): `CalendarEvent.getVisibility()` now returns the correct value.
- [Issue 1528](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1528): Using `ContactsApp` to modify multiple fields of a contact in quick succession no longer causes an etags mismatch error.
- [Issue 1502](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1502): Logs are now saved correctly for scripts that run as a web app, from a spreadsheet menu, or due to a trigger.
- [Issue 1275](https://code.google.com/p/google-apps-script-issues/issues/detail?id=1275): Deleting a script now deletes any associated triggers.

## November 28, 2012

**Google Apps Script** Fixed
- Fixed an issue where `onFormSubmit` trigger's callback range was incorrect if the submit triggered a formula recalculation.
- Fixed an issue where `XmlDocument` properties and functions did not autocomplete when generating an XmlDocument with the Soap service.
Change
- Added an [enhancement](http://code.google.com/p/google-apps-script-issues/issues/detail?id=872) to `GmailApp` to allow retrieval of bcc addresses via `GmailMessage.getBcc()`.
- [Tree](https://developers.google.com/apps-script/class_tree#addOpenHandler) widgets now allow specifying open handlers as well as close handlers.

## November 21, 2012

**Google Apps Script** Fixed
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=2074) where public locks are not correctly released.
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=2080) to allow multiple comma-delimited `replyTo` addresses in `MailApp.sendEmail()`.
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1929) with auto-complete for library functions not working when that library contained HTML files.

## November 13, 2012

**Google Apps Script** Feature Added the ability to disable SSL certificate validation in the [`SoapService`](https://developers.google.com/apps-script/class_soapservice#wsdl), in response to a feature request.
Fixed
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=2004) where `MailApp`'s and `GmailApp`'s `sendEmail` function ignored the advanced parameter `name`.
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1791) where new library versions took a long time to propagate to other scripts.

## November 06, 2012

**Google Apps Script** Change Updated some icons to match icons of other Google Drive applications.
Fixed
- Fixed an issue where a script failure notice would refer to the script as "Not Found" in cases where the failure is caused by an auth issue.
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1275) where it was not possible to save scripts with more than \~1 million characters.
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1920) where `LockService` did not work correctly when called from a `UiApp`.
Feature Added options to [`EmbeddedChartBuilder`](https://developers.google.com/apps-script/class_embeddedchartbuilder) to make it easier to configure embedded charts. `EmbeddedChartBuilder` now contains the methods `asAreaChart()`, `asBarChart()`, `asColumnChart()`, `asLineChart()`, `asPieChart()`, `asScatterChart()` and `asTableChart()` as replacements for calls to `setChartType()`.

## October 26, 2012

**Google Apps Script** Fixed
- Fixed an issue where the `DocsList` service was unable to retrieve more than 2000 files. Several new methods were added to the `DocsList` class (`getFilesForPaging,` etc.) that use continuation tokens as described in the documentation.
- Fixed an issue where placing a null value via data table's `addRow` method produced an error.
- Fixed an issue where the debugger would throw an exception when using `ScriptDb`.
- Fixed an issue where `ScriptDb`'s `saveBatch()` method was returning the incorrect number of result objects.
- Fixed an issue where `UiApp`'s `setStyleAttribute()` method failed when using the attribute `backgroundImage`.
- Fixed an issue where the last modified date for standalone wasn't updating.
- Fixed an issue where `GmailThread`'s `moveToArchive()` method wasn't working on threads in the trash.
- Fixed an issue where ampersands in `UiApp`'s `Hidden` widgets were being escaped incorrectly.
- Fixed an issue where `UiApp`'s `validateOptions()` method always threw an error.
Feature
- Added the ability to list alternate sender addresses using `GmailApp.getAliases()` and use them in `GmailApp.sendEmail()` with the advanced option "from".
- Created the class `GmailAttachment`, which is the same as a `Blob` but provides a `getSize()` method that isn't subject to quota restrictions.
- Added the ability to set a custom app icon for web apps published to the Chrome Web Store. This is the icon that shows up on Chrome's New Tab Page. More information on the [Publishing to the Chrome Web Store page](https://developers.google.com/apps-script/publishing_chrome_web_store#publishing-1).
- Added the ability to close containing dialogs from `HtmlService` pages. More information on the [Html Service page](https://developers.google.com/apps-script/html_service#closing-dialogs).
Change
- Improved JavaScript execution performance.
- Removed the "File -\> New -\> From Script Template" option in the script editor.
- Limited the ability to programmatically submit a form in JavaScript served by the `HtmlService`. Calling `form.submit()` is only allowed when done in the callback for a user-generated click or keypress event.

## September 28, 2012

**Google Apps Script** Fixed Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=874) where certain files could not be copied via `DocsList.copy()`.

## September 21, 2012

**Google Apps Script** Feature
- Fixed an issue where arrays retrieved from `ScriptDb` didn't behave properly.
- Fixed an issue where the execution transcript would stop recording after `Browser.msgBox()` was called.
- Fixed an issue where scriptlet tags in `HtmlTemplates` behaved strangely when in attribute values.
- Fixed a problem that prevented scripts from sending `POST` requests to other scripts that used the `ContentService`.
Deprecated Updated `DocsList.getFilesByType()` to accept values from the [`DocsList.FileType`](https://developers.google.com/apps-script/class_docslist_filetype) enumeration. Passing in string values for the document type is deprecated but still functional. (Issue 1755)
Change Enabled SSL certificate validation for UrlFetchApp requests. If you wish to disable this behavior you can set the advanced option validateHttpsCertificates to "false".
Feature Added a `setLabelSeparator()` method to [`CategoryFilterBuilder`](https://developers.google.com/apps-script/class_categoryfilterbuilder#setLabelSeparator), to allow for label separator strings to be used.

## September 07, 2012

**Google Apps Script** Change
- Fixed an issue where selecting a value from a `DateBox` would cause the value changed handler to fire twice.
- Fixed an issue where Chart dashboard `StringFilters` ignored the `MatchType` that was set.
Feature Added an `isDeleted()` method to `SitesApp`'s [`Page` class](https://developers.google.com/apps-script/class_page#isDeleted).

## August 30, 2012

**Google Apps Script** Feature
- Added methods to delete [`ScriptProperties`](https://developers.google.com/apps-script/class_scriptproperties) and [`UserProperties`](https://developers.google.com/apps-script/class_userproperties). Additional methods were also added to set multiple properties, get all properties, etc.
- Added a [`setOption` method](https://developers.google.com/apps-script/class_areachartbuilder#setOption) to the various chart builders to make it possible to set advanced options for Charts.
Fixed Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=712) with scrolling in the script editor so that line numbers will be displayed even when horizontally scrolling on long lines.

## August 22, 2012

**Google Apps Script** Fixed
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1750) where only one project was copied when making a copy of a Spreadsheet with multiple projects.
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1742) where scripts were not installing properly from the Script Gallery.

## August 20, 2012

**Google Apps Script** Feature
- `UiApp` widgets now have a [`setStyleAttributes` method](https://developers.google.com/apps-script/class_label#setStyleAttributes) which allow you to set multiple attributes at once.
- Added a new [`log` method](https://developers.google.com/apps-script/class_logger#log) to the Logger service which accepts a format string and a variable number of values to insert.
Change
- Increased the allowed file upload size in web apps to 50MB, to match the limit in the `DocsList` service.
- Streamlined the process for [publishing web apps to the Chrome Web Store](https://developers.google.com/apps-script/publishing_chrome_web_store) so that developers no longer need to manually verify web app URLs via Webmaster Central.
Fixed
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1623) where the `DatePicker` widget returned strange values for dates before 1970.
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1012) where all day event series weren't scheduled correctly in certain timezones.
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1660) that prevented an HTML form element from being set in a `google.script.run` callback.
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1539) where embedded charts were returned with the wrong data type.
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1304) where Charts ignored advanced parameters of data source URLs.

## August 03, 2012

**Google Apps Script** Fixed
- Fixed an issue where the "parameter" field in the `doGet()` event argument was missing if no parameters were passed in the URL.
- Fixed two issues where the `DatePicker` and `DateBox` UI components didn't have a `setName()` method, preventing them from being used as callback elements in UI apps.
- Fixed an issue where the `DatePicker` part of a `DateBox` didn't inherit the z-index style.
- Fixed an issue where `HtmlTemplates` could not be loaded within other templates.
- Fixed an issue where users would receive "Summary of failures for Apps Script" error for a failed trigger, even after the script was deleted.
- Fixed an issue where incorrect JsDoc comments in a library would prevent auto-complete from working on it.
Feature Added a `getThumbnail()` method to the `DocsList` service's [`File` class](https://developers.google.com/apps-script/class_file#getThumbnail).

## July 26, 2012

**Google Apps Script** Fixed
- Fixed an error in the Gmail script template from the welcome screen.
- Fixed an issue where saving an object in `ScriptDb` with 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`.
Feature
- Added support for chatting with script collaborators in the Script Editor. When two or more people are collaborating on a script, a chat panel will be visible on the right-hand side of the Script Editor.
- Added the ability to support autocomplete for included libraries when they are included in development mode.
- Added `UiInstance.remove` methods to remove widgets from `UiInstance`.
- Added support for Google Analytics via the `Analytics` Service.
Change Made improvements to the speed of handling large batches of data in `ScriptDb`.

## July 19, 2012

**Google Apps Script** Change Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1519) where setting an empty key in `Script` Properties or `User` Properties resulted in a "Data storage error" message.

## July 16, 2012

**Google Apps Script** Change Updated the link to the support page on the [Google Apps Script Dashboard](https://script.google.com/a/google.com/dashboard).
Fixed Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1523) where the script editor could not be accessed for some container-bound scripts.

## June 27, 2012

**Google Apps Script** Feature
- Launched [script.google.com](https://script.google.com/) and the ability to create [standalone scripts](https://developers.google.com/apps-script/scripts_containers) that are not bound to a container like Google Sheets or Google Sites.
- Launched the [`Html` Service](https://developers.google.com/apps-script/html_service), which you can use to create web apps using HTML, CSS, and JavaScript. The [reference documentation is here](https://developers.google.com/apps-script/service_html).
- Launched the [`Content` Service](https://developers.google.com/apps-script/service_content), which you can use to serve text in various forms, such as text, XML, RSS, or JSON.
- Launched [`ScriptDb`](https://developers.google.com/apps-script/scriptdb), a JavaScript object database for Apps Script. The [reference documentation is here](https://developers.google.com/apps-script/service_scriptdb).
- Added the ability to [publish web apps](https://developers.google.com/apps-script/execution_web_apps#deploying) with versioning and with the option to have them execute as the user accessing the app.
- Added support for [registering Apps Script web apps in the Chrome Web Store](https://developers.google.com/apps-script/publishing_chrome_web_store), making it quick and simple to publish and distribute your web apps.

## June 19, 2012

**Google Apps Script** Change Added a scrollbar to the file panel in the Script Editor,

## June 18, 2012

**Google Apps Script** Change
- The Script Editor's user interface has been updated.
- **Publish \> Publish as service** is now **Publish \> Deploy as web app** . Additionally, for new scripts, before you can deploy them as a web app, you must first save a version of the script. You can then choose which version should be served when the script is deployed as a web app. For existing scripts that were already published as a service, you will still be able to access the published URL from the **Deploy as web app** dialog, but to make additional changes, you will need to save a version of the script.

## June 14, 2012

**Google Apps Script** Feature
- Added the ability to create, modify, and remove [Embedded Charts](https://developers.google.com/apps-script/class_embeddedchart) in Google Sheets. Embedded Charts are charts that live solely within Spreadsheets and use multiple ranges of data for their datasource.
- Added support to the [`Domain` Service](https://developers.google.com/apps-script/service_domain) for `NicknameManager` and `GroupsManager`.
Fixed Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1400) where PDF documents uploaded and saved to Google Drive were being saved as blank files.

## June 08, 2012

**Google Apps Script** Change Simplified sharing settings for scripts. For new script projects, the script will inherit the permissions of its parent. For example, if a script is associated with a Spreadsheet, and user1@example.com has edit access to the Spreadsheet, then user1@example.com will have edit access to the script. The extra blue Share button will no longer be present on these newly created scripts, since the permissions are tied to those of the parent. For scripts created prior to June 8, 2012, the Share button will remain if the checkbox to "Allow document collaborators to edit project" or "Allow site collaborators and owners to edit project" was not selected for that script. For more information see [Security](https://developers.google.com/apps-script/guide_security). If you would like to have script source that cannot be modified by the editors of your Spreadsheet or Site, then you can use [Script Libraries](https://developers.google.com/apps-script/guides/libraries.md.txt).

## May 21, 2012

**Google Apps Script** Feature
- Launched [Script Libraries](https://developers.google.com/apps-script/guides/libraries.md.txt) and [Versions](https://developers.google.com/apps-script/guides/versions.md.txt) in response to this [feature request](http://code.google.com/p/google-apps-script-issues/issues/detail?id=40).
- Added `getDescription()` and `setDescription()` methods to `File` and `Folder`.
Change
- Updated the **Help \> Support** link in the Script Editor to point to this [support page](https://developers.google.com/apps-script/support.md.txt).
- Set a limit of 20 triggers per script. This limit takes effect as of May 21. For scripts created prior to that date, which already have more than 20 triggers, they will keep the existing triggers, but cannot add new ones without removing existing triggers.
Fixed Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1320) with `ClockTriggerBuilder.nearMinute`, where invalid minute values were sometimes created.

## May 11, 2012

**Google Apps Script** Fixed
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1267) with the debugger, so that it no longer fails when a breakpoint is set on certain classes from the JDBC service.
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=910) with `UiApp`, so that modifying a spreadsheet cell from a submit handler no longer causes an empty file to be downloaded.

## May 04, 2012

**Google Apps Script** Fixed
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1295) with `Site.getOwners()`, `Site.getReaders()`, `Site.getEditors()`, where the methods were failing in some cases.
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1290) with `ScriptApp.getService().getUrl()` so that the method can be called by users other than just the script owner.
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1285) with the Script Editor, where developers were prompted to recover a draft version of another file in the same project, rather than the one being edited.
- Fixed an issue with resuming continuations (such as in a script that waits for user input via message box), so that the scripts correctly honor the 6 minute script execution limit.
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=967) with `UiApp.ClientHandler.setValue()` so that it doesn't return errors and also works for checkboxes.
Feature Added a [`DocumentApp.HorizontalAlignment.JUSTIFY`](https://developers.google.com/apps-script/class_documentapp_horizontalalignment) value to the `DocumentApp.HorizontalAlignment` enumeration.
Announcement Launched the [Google Apps Script Dashboard](https://docs.google.com/macros/dashboard) so that developers can view service health and quota limits.

## April 19, 2012

**Google Apps Script** Feature
- Added the [method `everyMinutes()`](https://developers.google.com/apps-script/class_clocktriggerbuilder#everyMinutes) to `Script` Service.
Change
- Items in the Help menu in the Script Editor now open in a new tab instead of a new window.
- Made some modifications to the calculation of CPU time for scripts running on triggers, so that time spent waiting on certain processes is not counted toward that limi

## April 16, 2012

**Google Apps Script** Fixed
- 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".
Change
- Increased the size of the files that can be created via `DocsListApp.createFile()` from 2MB to 50MB.
- Increased the allowed argument value for `Utilities.sleep()` from 5000 (5 seconds) to 300000 (5 minutes).
- Updated the script failure notification emails to include the name and a link of the spreadsheet that contains the failed script in response to this issue
- Increased the allowed attachment size for emails sent via `GmailApp` and `MailApp` from 5MB to 25MB.
Feature
- Added method to `DocsList` service to [`getRootFolder()`](https://developers.google.com/apps-script/class_docslist#getRootFolder).
- Added method to `File` and `Folder` classes to check whether the item [`isTrashed()`](https://developers.google.com/apps-script/class_file#isTrashed).

## April 11, 2012

**Google Apps Script** Change Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=924) where files and collections in Google Docs could not be shared with groups.

## April 04, 2012

**Google Apps Script** Change Modified document collaboration and sharing rules to make them consistent with what is possible in the user interface.
Feature Launched the [`Script` service](https://developers.google.com/apps-script/service_script) in response to this [feature request](http://code.google.com/p/google-apps-script-issues/issues/detail?id=147), which allows developers to [programmatically set triggers](https://developers.google.com/apps-script/guide_events#ScriptService) and manage the publishing of scripts as a service.

## March 20, 2012

**Google Apps Script** Fixed Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1050) where `Spreadsheet.insertSheet()` failed to properly copy a sheet when given a `{template:sheet_obj}` parameter.

## March 13, 2012

**Google Apps Script** Fixed
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1110) where functions in the `Utilities` Service were not handling UTF-8 strings correctly.
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1115) where text in a `ListBox` widget was being unnecessarily HTML-encoded.
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1180) where `Anchor.setWordWrap()` was throwing errors.
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=310) with `UiApp` panels that launch from a Google Spreadsheet, where the **X** to close was not displaying if the title of the application was not set.
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=675) in the GUI Builder where setting the visibility for a widget to false was not working.
Feature Added the ability to set the subject line via the `subject` field in the advanced arguments for [`GmailMessage.forward()`](https://developers.google.com/apps-script/class_gmailmessage#forward).

## March 07, 2012

**Google Apps Script** Feature
- Added the ability to set the target for an [Anchor](https://developers.google.com/apps-script/class_anchor) in UI app, in response to this [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=828).
- Added the ability to include a limited set of HTML tags when working with UiApp widgets, in response to this [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=175). Here is the list of HTML tags that are permitted: `B`, `BLOCKQUOTE`, `BODY`, `BR`, `CENTER`, `CAPTION`, `CITE`, `CODE`, `DIV`, `EM`, `H1`, `H2`, `H3`, `H4`, `H5`, `H6`, `HR`, `I`, `LABEL`, `LEGEND`, `LI`, `OL`, `P`, `SPAN`, `STRONG`, `SUB`, `SUP`, `TABLE`, `TBODY`, `TD`, `THEAD`, `TITLE`, `TR`, `TT`, `UL`
- Added support for sheet protection, in reference to this [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=123). Introduced two new methods: `Sheet.getSheetProtection` and `Sheet.setSheetProtection`, as well as a new `PageProtection` class.
Change
- Added documentation for [`DocsListDialog`](https://developers.google.com/apps-script/class_docslistdialog). "Unexpected error" is no longer thrown when trying to display it.
- The Script Editor's menus have been updated:
  - A new Resources menu is added.
  - The Share menu is renamed to Publish.
  - Triggers' management is moved to Resources menu.
  - Google API Services console is moved to Resources menu.
  - Links under the Help menu now open in a new tab rather than a new window in Firefox 9.x and Chrome.
- Changed the window that appears after Authorization to the script has been granted. It is now displayed in a new tab rather than a pop-up. This tab will no longer close automatically after 5 seconds.
- Updated the appearance of the warning bar that is displayed when running a script that is published as a service by a user other than the owner, in response to this issue.

## February 12, 2012

**Google Apps Script** Feature
- Added methods to the `Document` class to [`addHeader()`](https://developers.google.com/apps-script/class_document#addHeader) and [`addFooter()`](https://developers.google.com/apps-script/class_document#addFooter).
- Added a [`merge()` method](https://developers.google.com/apps-script/class_range#merge) to the `Range` class.
Fixed
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1069) with using tab key to format code in the script editor.
- Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1036) where email quotas were too restrictive when executed by an anonymous user from a script running as a service.

## February 06, 2012

**Google Apps Script** Feature
- Added a [feature](http://code.google.com/p/google-apps-script-issues/issues/detail?id=60) to cancel running scripts, when the script is run from the script editor.
- Added [`getEventSeriesById()`](https://developers.google.com/apps-script/class_calendar#getEventSeriesById) to Calendar.

## January 31, 2012

**Google Apps Script** Fixed Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1020) where `Anchor.setWordWrap()` was not working.

## January 24, 2012

**Google Apps Script** Feature
- Added the [`setNestingLevel()`](https://developers.google.com/apps-script/class_documentapp_listitem#setNestingLevel) method to [`ListItem`](https://developers.google.com/apps-script/class_documentapp_listitem).
- Added the [`setGlyphType()`](https://developers.google.com/apps-script/class_documentapp_listitem#setGlyphType) method to [`ListItem`](https://developers.google.com/apps-script/class_documentapp_listitem) to support glyph types other than numeric glyphs.
- Added [`getWidth()`](https://developers.google.com/apps-script/class_tablecell#getWidth) and [`setWidth()`](https://developers.google.com/apps-script/class_tablecell#setWidth) methods to [`TableCell`](https://developers.google.com/apps-script/class_tablecell).
Fixed
- Fixed some issues where autocomplete stopped working after certain statements were typed in the script editor.
- Fixed an issue with the sizing of images when using `Document.appendImage()`.
- Fixed an issue where an error occurred when opening a document after the `Document.saveAndClose()` method had previously been called.

## January 11, 2012

**Google Apps Script** Change Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=925) with `Paragraph.setHeading()` where text was not formatted as expected.

## December 14, 2011

**Google Apps Script** Fixed Fixed an [issue](http://code.google.com/p/google-apps-script-issues/issues/detail?id=930) with the debugger, where it would close when stepping into a function that is located in a different file.
Feature
- Enabled `Spreadsheet.show()` in autocomplete.
- Added the ability to copy and paste from the Revision History.
- Added support for the [`Groups` Services](https://developers.google.com/apps-script/service_groups).
- Added support for the [`Domain` Services](https://developers.google.com/apps-script/service_domain).
- Added support for the [`AdSense` Services](https://developers.google.com/apps-script/service_adsense).

## November 07, 2011

**Google Apps Script** Fixed
- Fixed an issue with `Session.getTimezone()` returning incorrect values.
- Fixed an issue with the **Edit \> Find** feature in the script editor.
Feature
- Added the [`Lock`](https://developers.google.com/apps-script/service_lock) and [`Cache`](https://developers.google.com/apps-script/service_cache) services.
- Added support for [client handlers and validators](https://developers.google.com/apps-script/class_clienthandler).

## September 26, 2011

**Google Apps Script** Feature
- Added support for `inlineImages` when sending emails with [`MailApp.sendEmail()`](https://developers.google.com/apps-script/class_mailapp#sendEmail).
- Added the [Charts Services](https://developers.google.com/apps-script/service_charts), which allow users to dynamically create charts and embed them in emails, UiApp, or export them as images.
- Added the [Prediction Services](https://developers.google.com/apps-script/advanced/prediction), which allow users to access a cloud hosted machine learning service that makes it easy to build smart apps. Added the [Tasks Services](https://developers.google.com/apps-script/service_tasks), which allow users to manage tasks and task lists. Added the [`UrlShortener` Services](https://developers.google.com/apps-script/service_urlshortener), which let you create, inspect, and manage goo.gl short URLs.
Fixed Fixed an issue where an error occurred if an empty `ListBox` was used as a `callback` element.

## August 04, 2011

**Google Apps Script** Feature Added support for `ScrollPanel` to the GUI Builder.

## July 25, 2011

**Google Apps Script** Feature Added supports for projects in Apps Script.
Feature Fixed an issue where `Xml.element` failed if the child elements were `XmlElements`.

## July 14, 2011

**Google Apps Script** Fixed Fixed an issue where [`GmailApp.getUserLabelByName()`](https://developers.google.com/apps-script/class_gmailapp#getUserLabelByName) failed for label names that contained spaces.

## May 04, 2011

**Google Apps Script** Feature
- Added the [`Gmail` service](https://developers.google.com/apps-script/service_gmail).
- Added the [`Document` service](https://developers.google.com/apps-script/service_document).
- Introduced the [GUI Builder](https://developers.google.com/apps-script/gui_builder).

## April 15, 2011

**Google Apps Script** Feature Added an `appendRow()` method to Spreadsheet.
Fixed Fixed an issue with [`UiApp.getActiveApplication().setStyleAttribute()`](https://developers.google.com/apps-script/class_uiinstance#setStyleAttribute) for 'cursor.'

## March 21, 2011

**Google Apps Script** Change
- Improved performance of the script editor. The editor can now handle large scripts without any issues in most major browsers.
- Improved the internal error handling of the Spreadsheet Service, so that fewer errors are received by users.
- Increased the timeout of `UrlFetch` to 30 seconds.
Feature
- Binary files can be uploaded using `FileUpload`.
- Enhanced `ListBox` to function as a multi-select `ListBox`.
Fixed
- Fixed a minor bug Script as a Service related to expired tokens.
- Breakpoint in debugger now clears as expected.
- [`SpreadsheetApp.getActiveSheet()`](https://developers.google.com/apps-script/class_spreadsheetapp#getActiveSheet) when executed in `Installable onEdit` returns the correct sheet name.

## March 08, 2011

**Google Apps Script** Fixed
- Fixed an issue which improves performance of various Services.
- Fixed an issue with Authorization of scripts.
Feature Added a method in `Utilities` class that parses CSV text.

## January 21, 2011

**Google Apps Script** Announcement Introducing the Debugger! The debugger significantly enhances the ability of Apps Script users to debug their scripts. With the debugger, users can set breakpoints, inspect variables, step-in and step-out of functions.

## October 21, 2010

**Google Apps Script** Feature Added integration with Google Sites, so that Apps Script can now be run from within Google Sites. [Read more here.](https://developers.google.com/apps-script/guide_writing_scripts)

## October 16, 2010

**Google Apps Script** Feature
- Added ability for users to create new recurring calendar events through [`CalendarApp.newRecurrence()`](https://developers.google.com/apps-script/class_calendarapp#newRecurrence) and [`Calendar.createEventSeries()`](https://developers.google.com/apps-script/class_calendar#createEventSeries).
- Added ability to access existing event series through [`CalendarEvent.getEventSeries()`](https://developers.google.com/apps-script/class_calendarevent#getEventSeries).
- Added ability for users to modify or delete an entire event series through [`CalendarEventSeries`](https://developers.google.com/apps-script/class_calendareventseries).

## September 17, 2010

**Google Apps Script** Feature
- Added new methods to `CalendarEvent` to get the creation date and the date the event was last updated: [`getDateCreated()`](https://developers.google.com/apps-script/class_calendarevent#getDateCreated) and [`getLastUpdated()`](https://developers.google.com/apps-script/class_calendarevent#getLastUpdated).
- Added a new method to `Contact` to get the date a contact was last updated: [`getLastUpdated()`](https://developers.google.com/apps-script/class_contact#getLastUpdated).
Change
- Fixed two issues with `Calendar.getEvents()`. `GetEvents` previously returned only the first instance of a recurring event in a given time range. Now it returns all instances of the recurring event in the given time range. Additionally, editing the instance of the recurring event previously would edit the entire series. Now, editing an instance of a recurring event edits only the particular instance.
- Fixed an issue where the unpublished version of `onInstall` was being run for scripts in the Script Gallery.
- Fixed an issue where users could not type `(` in the script editor when the autocomplete popup was visible.
- Fixed an issue where `getActiveSheet` was not working when called from `onEdit` events. Fixed an issue with UiApp where the UI panels were not displayed properly and an "Error encountered: An unexpected error occurred" error message was displayed.

## August 16, 2010

**Google Apps Script** Feature
- Added `Spreadsheet.show()` to the script editor autocomplete and the documentation.
- Clarified the use of `Session.getUser()` and added two new methods: `Session.getActiveUser()` and `Session.getEffectiveUser()`.
- Added support for persistent storage in scripts via `UserProperties` and `ScriptProperties`. Script Properties and User Properties are also available from **File \> Properties** in the script editor.
- Added several new methods to the `Contact` class: `Contact.getGivenName()`, `Contact.setGivenName()`, `Contact.getMiddleName()`, `Contact.setMiddleName()`, `Contact.getFamilyName()`, `Contact.setFamilyName()`, `Contact.getMaidenName()`, `Contact.setMaidenName()`, `Contact.getNickname()`, `Contact.setNickname()`.
- Major improvements to the Sites service, fixing many issues and adding new functionality.
- Added support for find and replace in the script editor.
- `UiApp` is now available to all users. Previously, it was only available to Google Apps Premier domains.
- The timezone for a script can now be set from **File \> Properties** in the script editor.
- The user interface for time-based triggers has been updated to make it more clear that the events are triggered between N and N+1 hours.
- The script timezone is now visible in the script triggers dialog.
- Revision history for scripts is now available from **File \> See revision history** in the script editor.
- Added two new methods to the Utilities class provide JSON support: `Utilities.jsonParse()` and `Utilities.jsonStringify()`.
- Added support for outbound OAuth requests. See `UrlFetchApp.addOAuthService()`.
- Added a new method to class `Spreadsheet` to get the form URL: `Spreadsheet.getFormUrl()`.
- Added a new `Blob` class to simplify moving data between different Google Apps Script services.

## August 01, 2010

**Google Apps Script** Fixed Fixed an issue with the `Sheet.getFrozenRows`, where an error was returned in some cases.
Feature
- Added two new methods to the `Sheet` class for getting frozen rows and columns: `Sheet.getFrozenRows()` and `Sheet.getFrozenColumns()`.
- Added sorting methods: `Sheet.sort()` and `Range.sort()`.
- Added methods to get row height and column width in a Sheet: `Sheet.getRowHeight()` and `Sheet.getColumnWidth()`.

## July 12, 2010

**Google Apps Script** Change
- Added two new methods to the Soap service for setting and getting the SOAP endpoint: `WsdlService.getEndpointOverride()` and `WsdlService.setEndpointOverride()`.
- Added a method to check if there is remaining quota for sending emails for the current day: `MailApp.getRemainingDailyQuota()`.
Fixed
- Fixed an issue with the `Contacts` service, 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.addItem` wasn't working after calling `getElementById`.
- Fixed an issue with `Utilities.formatDate`, where it was previously always formatting the date into GMT.
Change Line numbers in error messages are now denoted with (line nnn), rather than (# nnn), where nnn is the line number.