CINXE.COM
Use Connected Sheets | Apps Script | Google for Developers
<!doctype html> <html lang="en" dir="ltr"> <head> <meta name="google-signin-client-id" content="721724668570-nbkv1cfusk7kk4eni4pjvepaus73b13t.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award"> <meta property="og:site_name" content="Google for Developers"> <meta property="og:type" content="website"><meta name="theme-color" content="#fff"><meta charset="utf-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="manifest" href="/_pwa/developers/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//www.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.googleapis.com" crossorigin> <link rel="preconnect" href="//apis.google.com" crossorigin> <link rel="preconnect" href="//www.google-analytics.com" crossorigin><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined&display=block"><link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers/css/app.css"> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers/images/favicon-new.png"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers/images/touchicon-180-new.png"><link rel="canonical" href="https://developers.google.com/apps-script/guides/sheets/connected-sheets"><link rel="search" type="application/opensearchdescription+xml" title="Google for Developers" href="https://developers.google.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="https://developers.google.com/apps-script/guides/sheets/connected-sheets" /><link rel="alternate" hreflang="x-default" href="https://developers.google.com/apps-script/guides/sheets/connected-sheets" /><link rel="alternate" hreflang="ar" href="https://developers.google.com/apps-script/guides/sheets/connected-sheets?hl=ar" /><link rel="alternate" hreflang="bn" href="https://developers.google.com/apps-script/guides/sheets/connected-sheets?hl=bn" /><link rel="alternate" hreflang="zh-Hans" href="https://developers.google.com/apps-script/guides/sheets/connected-sheets?hl=zh-cn" /><link rel="alternate" hreflang="zh-Hant" href="https://developers.google.com/apps-script/guides/sheets/connected-sheets?hl=zh-tw" /><link rel="alternate" hreflang="fa" href="https://developers.google.com/apps-script/guides/sheets/connected-sheets?hl=fa" /><link rel="alternate" hreflang="fr" href="https://developers.google.com/apps-script/guides/sheets/connected-sheets?hl=fr" /><link rel="alternate" hreflang="de" href="https://developers.google.com/apps-script/guides/sheets/connected-sheets?hl=de" /><link rel="alternate" hreflang="he" href="https://developers.google.com/apps-script/guides/sheets/connected-sheets?hl=he" /><link rel="alternate" hreflang="hi" href="https://developers.google.com/apps-script/guides/sheets/connected-sheets?hl=hi" /><link rel="alternate" hreflang="id" href="https://developers.google.com/apps-script/guides/sheets/connected-sheets?hl=id" /><link rel="alternate" hreflang="it" href="https://developers.google.com/apps-script/guides/sheets/connected-sheets?hl=it" /><link rel="alternate" hreflang="ja" href="https://developers.google.com/apps-script/guides/sheets/connected-sheets?hl=ja" /><link rel="alternate" hreflang="ko" href="https://developers.google.com/apps-script/guides/sheets/connected-sheets?hl=ko" /><link rel="alternate" hreflang="pl" href="https://developers.google.com/apps-script/guides/sheets/connected-sheets?hl=pl" /><link rel="alternate" hreflang="pt-BR" href="https://developers.google.com/apps-script/guides/sheets/connected-sheets?hl=pt-br" /><link rel="alternate" hreflang="ru" href="https://developers.google.com/apps-script/guides/sheets/connected-sheets?hl=ru" /><link rel="alternate" hreflang="es-419" href="https://developers.google.com/apps-script/guides/sheets/connected-sheets?hl=es-419" /><link rel="alternate" hreflang="th" href="https://developers.google.com/apps-script/guides/sheets/connected-sheets?hl=th" /><link rel="alternate" hreflang="tr" href="https://developers.google.com/apps-script/guides/sheets/connected-sheets?hl=tr" /><link rel="alternate" hreflang="vi" href="https://developers.google.com/apps-script/guides/sheets/connected-sheets?hl=vi" /><title>Use Connected Sheets | Apps Script | Google for Developers</title> <meta property="og:title" content="Use Connected Sheets | Apps Script | Google for Developers"><meta property="og:url" content="https://developers.google.com/apps-script/guides/sheets/connected-sheets"><meta property="og:image" content="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers/images/opengraph/white.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="675"><meta property="og:locale" content="en"><meta name="twitter:card" content="summary_large_image"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "Use Connected Sheets" } </script><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "Google Workspace", "item": "https://developers.google.com/workspace" },{ "@type": "ListItem", "position": 2, "name": "Apps Script", "item": "https://developers.google.com/apps-script" },{ "@type": "ListItem", "position": 3, "name": "Use Connected Sheets", "item": "https://developers.google.com/apps-script/guides/sheets/connected-sheets" }] } </script> <link rel="stylesheet" href="/extras.css"></head> <body class="" template="page" theme="white" type="article" layout="docs" concierge='closed' display-toc pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <a href="#main-content" class="skip-link button"> Skip to main content </a> <section class="devsite-wrapper"> <devsite-cookie-notification-bar></devsite-cookie-notification-bar><devsite-header role="banner"> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <a href="https://developers.google.com/workspace"> <div class="devsite-product-logo-container" size="medium" > <picture> <img class="devsite-product-logo" alt="Google Workspace" src="https://fonts.gstatic.com/s/i/productlogos/googleg/v6/16px.svg" srcset=" https://fonts.gstatic.com/s/i/productlogos/googleg/v6/16px.svg" sizes="64px" loading="lazy" > </picture> </div> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> <a href="https://developers.google.com/workspace" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Upper Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Google Workspace" > <svg class="devsite-google-wordmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 148 48"> <title>Google</title> <path class="devsite-google-wordmark-svg-path" d="M19.58,37.65c-9.87,0-18.17-8.04-18.17-17.91c0-9.87,8.3-17.91,18.17-17.91c5.46,0,9.35,2.14,12.27,4.94l-3.45,3.45c-2.1-1.97-4.93-3.49-8.82-3.49c-7.21,0-12.84,5.81-12.84,13.02c0,7.21,5.64,13.02,12.84,13.02c4.67,0,7.34-1.88,9.04-3.58c1.4-1.4,2.32-3.41,2.66-6.16H19.58v-4.89h16.47c0.18,0.87,0.26,1.92,0.26,3.06c0,3.67-1.01,8.21-4.24,11.44C28.93,35.9,24.91,37.65,19.58,37.65z M61.78,26.12c0,6.64-5.1,11.53-11.36,11.53s-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53S61.78,19.43,61.78,26.12z M56.8,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C53.84,33.11,56.8,30.22,56.8,26.12z M87.25,26.12c0,6.64-5.1,11.53-11.36,11.53c-6.26,0-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53C82.15,14.59,87.25,19.43,87.25,26.12zM82.28,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C79.32,33.11,82.28,30.22,82.28,26.12z M112.09,15.29v20.7c0,8.52-5.02,12.01-10.96,12.01c-5.59,0-8.95-3.76-10.22-6.81l4.41-1.83c0.79,1.88,2.71,4.1,5.81,4.1c3.8,0,6.16-2.36,6.16-6.77v-1.66h-0.18c-1.14,1.4-3.32,2.62-6.07,2.62c-5.76,0-11.05-5.02-11.05-11.49c0-6.51,5.28-11.57,11.05-11.57c2.75,0,4.93,1.22,6.07,2.58h0.18v-1.88H112.09z M107.64,26.16c0-4.06-2.71-7.03-6.16-7.03c-3.49,0-6.42,2.97-6.42,7.03c0,4.02,2.93,6.94,6.42,6.94C104.93,33.11,107.64,30.18,107.64,26.16z M120.97,3.06v33.89h-5.07V3.06H120.97z M140.89,29.92l3.93,2.62c-1.27,1.88-4.32,5.11-9.61,5.11c-6.55,0-11.28-5.07-11.28-11.53c0-6.86,4.77-11.53,10.71-11.53c5.98,0,8.91,4.76,9.87,7.34l0.52,1.31l-15.42,6.38c1.18,2.31,3.01,3.49,5.59,3.49C137.79,33.11,139.58,31.84,140.89,29.92zM128.79,25.77l10.31-4.28c-0.57-1.44-2.27-2.45-4.28-2.45C132.24,19.04,128.66,21.31,128.79,25.77z"/> </svg>Workspace </a> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> <devsite-tabs class="upper-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Upper tabs"> <tab > <a href="https://developers.google.com/workspace" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/workspace" track-type="nav" track-metadata-position="nav - home" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Home" track-name="home" > Home </a> </tab> <tab class="devsite-active"> <a href="https://developers.google.com/apps-script" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/apps-script" track-type="nav" track-metadata-position="nav - apps script" track-metadata-module="primary nav" aria-label="Apps Script, selected" data-category="Site-Wide Custom Events" data-label="Tab: Apps Script" track-name="apps script" > Apps Script </a> </tab> <tab class="devsite-dropdown "> <a href="https://developers.google.com/workspace/products-menu" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/workspace/products-menu" track-type="nav" track-metadata-position="nav - all products" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: All products" track-name="all products" > All products </a> <button aria-haspopup="menu" aria-expanded="false" aria-label="Dropdown menu for All products" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/products-menu" track-metadata-position="nav - all products" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: All products" track-name="all products" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></button> <div class="devsite-tabs-dropdown" role="menu" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Google Workspace apps</li> <li class="devsite-nav-item"> <a href="https://developers.google.com/admin-sdk" track-type="nav" track-metadata-eventdetail="https://developers.google.com/admin-sdk" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-label="Tab menu: All products - Admin console" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Admin console </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/cloud-search" track-type="nav" track-metadata-eventdetail="https://developers.google.com/cloud-search" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-label="Tab menu: All products - Cloud Search" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Cloud Search </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/gmail" track-type="nav" track-metadata-eventdetail="https://developers.google.com/gmail" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-label="Tab menu: All products - Gmail" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Gmail </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/calendar" track-type="nav" track-metadata-eventdetail="https://developers.google.com/calendar" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-label="Tab menu: All products - Google Calendar" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Calendar </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/chat" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/chat" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-label="Tab menu: All products - Google Chat" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Chat </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/classroom" track-type="nav" track-metadata-eventdetail="https://developers.google.com/classroom" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-label="Tab menu: All products - Google Classroom" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Classroom </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/docs" track-type="nav" track-metadata-eventdetail="https://developers.google.com/docs" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-label="Tab menu: All products - Google Docs" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Docs </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/drive" track-type="nav" track-metadata-eventdetail="https://developers.google.com/drive" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-label="Tab menu: All products - Google Drive" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Drive </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/forms" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/forms" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-label="Tab menu: All products - Google Forms" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Forms </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/keep" track-type="nav" track-metadata-eventdetail="https://developers.google.com/keep" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-category="Workspace top menu navigation" data-label="Tab menu: All products - Google Keep" > <div class="devsite-nav-item-title"> Google Keep </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/meet" track-type="nav" track-metadata-eventdetail="https://developers.google.com/meet" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-label="Tab menu: All products - Google Meet" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Meet </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/sheets" track-type="nav" track-metadata-eventdetail="https://developers.google.com/sheets" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-label="Tab menu: All products - Google Sheets" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Sheets </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/sites" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/sites" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-label="Tab menu: All products - Google Sites" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Sites </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/slides" track-type="nav" track-metadata-eventdetail="https://developers.google.com/slides" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-category="Workspace top menu navigation" data-label="Tab menu: All products - Google Slides" > <div class="devsite-nav-item-title"> Google Slides </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/tasks" track-type="nav" track-metadata-eventdetail="https://developers.google.com/tasks" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-category="Workspace top menu navigation" data-label="Tab menu: All products - Google Tasks" > <div class="devsite-nav-item-title"> Google Tasks </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/vault" track-type="nav" track-metadata-eventdetail="https://developers.google.com/vault" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-label="Tab menu: All products - Google Vault" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Vault </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Extend, automate & share</li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/add-ons" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/add-ons" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="extend, automate & share" tooltip data-label="Tab menu: All products - Add-ons" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Add-ons </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/apps-script" track-type="nav" track-metadata-eventdetail="https://developers.google.com/apps-script" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="extend, automate & share" tooltip data-label="Tab menu: All products - Apps Script" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Apps Script </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/chat/overview" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/chat/overview" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="extend, automate & share" tooltip data-label="Tab menu: All products - Chat apps" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Chat apps </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/drive/api/guides/about-apps" track-type="nav" track-metadata-eventdetail="https://developers.google.com/drive/api/guides/about-apps" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="extend, automate & share" tooltip data-label="Tab menu: All products - Drive apps" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Drive apps </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/marketplace" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/marketplace" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="extend, automate & share" tooltip data-label="Tab menu: All products - Marketplace" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Marketplace </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown "> <a href="https://developers.google.com/workspace/resources-menu" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/workspace/resources-menu" track-type="nav" track-metadata-position="nav - resources" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Resources" track-name="resources" > Resources </a> <button aria-haspopup="menu" aria-expanded="false" aria-label="Dropdown menu for Resources" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/resources-menu" track-metadata-position="nav - resources" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Resources" track-name="resources" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></button> <div class="devsite-tabs-dropdown" role="menu" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Tools</li> <li class="devsite-nav-item"> <a href="https://admin.google.com/" track-type="nav" track-metadata-eventdetail="https://admin.google.com/" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="tools" tooltip target="admin-console" data-label="Tab menu: Resources - Admin console" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Admin console </div> </a> </li> <li class="devsite-nav-item"> <a href="https://script.google.com/" track-type="nav" track-metadata-eventdetail="https://script.google.com/" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="tools" tooltip data-label="Tab menu: Resources - Apps Script dashboard" target="_blank" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Apps Script dashboard </div> </a> </li> <li class="devsite-nav-item"> <a href="https://console.cloud.google.com/workspace-api" track-type="nav" track-metadata-eventdetail="https://console.cloud.google.com/workspace-api" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="tools" tooltip data-category="Workspace top menu navigation" data-label="Tab menu: Resources - Google Cloud console" target="console" > <div class="devsite-nav-item-title"> Google Cloud console </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/explore" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/explore" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="tools" tooltip data-label="Tab menu: Resources - APIs Explorer" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> APIs Explorer </div> </a> </li> <li class="devsite-nav-item"> <a href="https://addons.gsuite.google.com/uikit/builder" track-type="nav" track-metadata-eventdetail="https://addons.gsuite.google.com/uikit/builder" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="tools" tooltip target="_blank" data-label="Tab menu: Resources - Card Builder" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Card Builder </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Training & support</li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/guides/get-started" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/guides/get-started" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="training & support" tooltip data-label="Tab menu: Resources - How to get started" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> How to get started </div> </a> </li> <li class="devsite-nav-item"> <a href="https://codelabs.developers.google.com/?product=googleworkspace" track-type="nav" track-metadata-eventdetail="https://codelabs.developers.google.com/?product=googleworkspace" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="training & support" tooltip data-category="Workspace top menu navigation" data-label="Tab menu: Resources - Codelabs" target="_blank" > <div class="devsite-nav-item-title"> Codelabs </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/support" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/support" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="training & support" tooltip data-label="Tab menu: Resources - Developer support" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Developer support </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Updates</li> <li class="devsite-nav-item"> <a href="https://developers.googleblog.com/search/?query=Google+Workspace" track-type="nav" track-metadata-eventdetail="https://developers.googleblog.com/search/?query=Google+Workspace" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="updates" tooltip data-label="Tab menu: Resources - Blog" target="_blank" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Blog </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/preview" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/preview" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="updates" tooltip data-category="Workspace top menu navigation" data-label="Tab menu: Resources - Developer previews" > <div class="devsite-nav-item-title"> Developer Previews </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/newsletters" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/newsletters" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="updates" tooltip data-label="Tab menu: Resources - Newsletter" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Newsletter </div> </a> </li> <li class="devsite-nav-item"> <a href="https://twitter.com/workspacedevs" track-type="nav" track-metadata-eventdetail="https://twitter.com/workspacedevs" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="updates" tooltip target="_blank" data-category="Workspace top menu navigation" data-label="Tab menu: Resources - X (Twitter)" > <div class="devsite-nav-item-title"> X (Twitter) </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.youtube.com/channel/UCUcg6az6etU_gRtZVAhBXaw" track-type="nav" track-metadata-eventdetail="https://www.youtube.com/channel/UCUcg6az6etU_gRtZVAhBXaw" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="updates" tooltip data-category="Workspace top menu navigation" target="_blank" data-label="Tab menu: Resources - YouTube" > <div class="devsite-nav-item-title"> YouTube </div> </a> </li> </ul> </div> </div> </div> </tab> </nav> </devsite-tabs> </div> <devsite-search enable-signin enable-search enable-suggestions enable-query-completion project-name="Apps Script" tenant-name="Google for Developers" project-scope="/apps-script" url-scoped="https://developers.google.com/s/results/apps-script" > <form class="devsite-search-form" action="https://developers.google.com/s/results" method="GET"> <div class="devsite-search-container"> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-expanded="false" aria-haspopup="listbox" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="combobox" type="text" value="" > <div class="devsite-search-image material-icons" aria-hidden="true"> </div> <div class="devsite-search-shortcut-icon-container" aria-hidden="true"> <kbd class="devsite-search-shortcut-icon">/</kbd> </div> </div> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es" >Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> <devsite-user enable-profiles fp-auth id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section "> <div class="devsite-header-background"> <div class="devsite-product-id-row" > <div class="devsite-product-description-row"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> <a href="https://developers.google.com/apps-script" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Lower Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Google Apps Script" > Apps Script </a> </li> </ul> </div> </div> <div class="devsite-doc-set-nav-row"> <devsite-tabs class="lower-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Lower tabs"> <tab > <a href="https://developers.google.com/apps-script" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/apps-script" track-type="nav" track-metadata-position="nav - overview" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Overview" track-name="overview" > Overview </a> </tab> <tab class="devsite-active"> <a href="https://developers.google.com/apps-script/overview" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/apps-script/overview" track-type="nav" track-metadata-position="nav - guides" track-metadata-module="primary nav" aria-label="Guides, selected" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" > Guides </a> </tab> <tab > <a href="https://developers.google.com/apps-script/reference" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/apps-script/reference" track-type="nav" track-metadata-position="nav - reference" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" > Reference </a> </tab> <tab > <a href="https://developers.google.com/apps-script/samples" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/apps-script/samples" track-type="nav" track-metadata-position="nav - samples" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Samples" track-name="samples" > Samples </a> </tab> <tab > <a href="https://developers.google.com/apps-script/support" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/apps-script/support" track-type="nav" track-metadata-position="nav - support" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Support" track-name="support" > Support </a> </tab> </nav> </devsite-tabs> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars > <div class="devsite-book-nav-filter" > <span class="filter-list-icon material-icons" aria-hidden="true"></span> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <a href="https://developers.google.com/workspace"> <div class="devsite-product-logo-container" size="medium" > <picture> <img class="devsite-product-logo" alt="Google Workspace" src="https://fonts.gstatic.com/s/i/productlogos/googleg/v6/16px.svg" srcset=" https://fonts.gstatic.com/s/i/productlogos/googleg/v6/16px.svg" sizes="64px" loading="lazy" > </picture> </div> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> <a href="https://developers.google.com/workspace" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Upper Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Google Workspace" > <svg class="devsite-google-wordmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 148 48"> <title>Google</title> <path class="devsite-google-wordmark-svg-path" d="M19.58,37.65c-9.87,0-18.17-8.04-18.17-17.91c0-9.87,8.3-17.91,18.17-17.91c5.46,0,9.35,2.14,12.27,4.94l-3.45,3.45c-2.1-1.97-4.93-3.49-8.82-3.49c-7.21,0-12.84,5.81-12.84,13.02c0,7.21,5.64,13.02,12.84,13.02c4.67,0,7.34-1.88,9.04-3.58c1.4-1.4,2.32-3.41,2.66-6.16H19.58v-4.89h16.47c0.18,0.87,0.26,1.92,0.26,3.06c0,3.67-1.01,8.21-4.24,11.44C28.93,35.9,24.91,37.65,19.58,37.65z M61.78,26.12c0,6.64-5.1,11.53-11.36,11.53s-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53S61.78,19.43,61.78,26.12z M56.8,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C53.84,33.11,56.8,30.22,56.8,26.12z M87.25,26.12c0,6.64-5.1,11.53-11.36,11.53c-6.26,0-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53C82.15,14.59,87.25,19.43,87.25,26.12zM82.28,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C79.32,33.11,82.28,30.22,82.28,26.12z M112.09,15.29v20.7c0,8.52-5.02,12.01-10.96,12.01c-5.59,0-8.95-3.76-10.22-6.81l4.41-1.83c0.79,1.88,2.71,4.1,5.81,4.1c3.8,0,6.16-2.36,6.16-6.77v-1.66h-0.18c-1.14,1.4-3.32,2.62-6.07,2.62c-5.76,0-11.05-5.02-11.05-11.49c0-6.51,5.28-11.57,11.05-11.57c2.75,0,4.93,1.22,6.07,2.58h0.18v-1.88H112.09z M107.64,26.16c0-4.06-2.71-7.03-6.16-7.03c-3.49,0-6.42,2.97-6.42,7.03c0,4.02,2.93,6.94,6.42,6.94C104.93,33.11,107.64,30.18,107.64,26.16z M120.97,3.06v33.89h-5.07V3.06H120.97z M140.89,29.92l3.93,2.62c-1.27,1.88-4.32,5.11-9.61,5.11c-6.55,0-11.28-5.07-11.28-11.53c0-6.86,4.77-11.53,10.71-11.53c5.98,0,8.91,4.76,9.87,7.34l0.52,1.31l-15.42,6.38c1.18,2.31,3.01,3.49,5.59,3.49C137.79,33.11,139.58,31.84,140.89,29.92zM128.79,25.77l10.31-4.28c-0.57-1.44-2.27-2.45-4.28-2.45C132.24,19.04,128.66,21.31,128.79,25.77z"/> </svg>Workspace </a> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/workspace" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Home" track-name="home" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Home" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Home </span> </a> </li> <li class="devsite-nav-item"> <a href="/apps-script" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Apps Script" track-name="apps script" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Apps Script" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Apps Script </span> </a> <ul class="devsite-nav-responsive-tabs"> <li class="devsite-nav-item"> <a href="/apps-script" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Overview" track-name="overview" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Overview" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Overview </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/apps-script/overview" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Guides" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip menu="_book"> Guides </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="_book"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/apps-script/reference" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Reference" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Reference </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/apps-script/samples" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Samples" track-name="samples" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Samples" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Samples </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/apps-script/support" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Support" track-name="support" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Support" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Support </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/workspace/products-menu" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: All products" track-name="all products" data-category="Site-Wide Custom Events" data-label="Responsive Tab: All products" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > All products </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: All products" track-name="all products" > <span class="devsite-nav-text" tooltip menu="All products"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="All products"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/workspace/resources-menu" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Resources" track-name="resources" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Resources" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Resources </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Resources" track-name="resources" > <span class="devsite-nav-text" tooltip menu="Resources"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Resources"> </span> </span> </li> </ul> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item"><a href="/apps-script/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li> <li class="devsite-nav-item"><a href="/apps-script/guides/dashboard" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/dashboard" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/dashboard" ><span class="devsite-nav-text" tooltip>Apps Script dashboard</span></a></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Explore the development environment</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/apps-script/guides/projects" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/projects" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/projects" ><span class="devsite-nav-text" tooltip>Script projects</span></a></li><li class="devsite-nav-item"><a href="/apps-script/concepts/manifests" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/concepts/manifests" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/concepts/manifests" ><span class="devsite-nav-text" tooltip>Manifests</span></a></li><li class="devsite-nav-item"><a href="/apps-script/concepts/scopes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/concepts/scopes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/concepts/scopes" ><span class="devsite-nav-text" tooltip>Scopes</span></a></li><li class="devsite-nav-item"><a href="/apps-script/concepts/deployments" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/concepts/deployments" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/concepts/deployments" ><span class="devsite-nav-text" tooltip>Deployments</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/cloud-platform-projects" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/cloud-platform-projects" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/cloud-platform-projects" ><span class="devsite-nav-text" tooltip>Google Cloud projects</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/logging" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/logging" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/logging" ><span class="devsite-nav-text" tooltip>Logging</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/client-verification" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/client-verification" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/client-verification" ><span class="devsite-nav-text" tooltip>OAuth client verification</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/libraries" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/libraries" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/libraries" ><span class="devsite-nav-text" tooltip>Libraries</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/versions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/versions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/versions" ><span class="devsite-nav-text" tooltip>Versions</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/collaborating" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/collaborating" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/collaborating" ><span class="devsite-nav-text" tooltip>Collaboration</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/clasp" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/clasp" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/clasp" ><span class="devsite-nav-text" tooltip>Command line interface</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Apps Script runtimes</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/apps-script/guides/v8-runtime" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/v8-runtime" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/v8-runtime" ><span class="devsite-nav-text" tooltip>V8 Runtime overview</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/v8-runtime/migration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/v8-runtime/migration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/v8-runtime/migration" ><span class="devsite-nav-text" tooltip>Migrating to the V8 runtime</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Google services and external APIs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/apps-script/guides/services" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/services" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/services" ><span class="devsite-nav-text" tooltip>Built-in Google services</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/services/advanced" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/services/advanced" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/services/advanced" ><span class="devsite-nav-text" tooltip>Advanced Google services</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/services/authorization" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/services/authorization" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/services/authorization" ><span class="devsite-nav-text" tooltip>Authorization</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/services/external" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/services/external" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/services/external" ><span class="devsite-nav-text" tooltip>External APIs</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Types of scripts</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/apps-script/guides/standalone" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/standalone" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/standalone" ><span class="devsite-nav-text" tooltip>Standalone</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/bound" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/bound" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/bound" ><span class="devsite-nav-text" tooltip>Bound to Google Workspace documents</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Extend Google Workspace</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Google Docs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/apps-script/guides/docs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/docs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/docs" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/docs/tabs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/docs/tabs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/docs/tabs" ><span class="devsite-nav-text" tooltip>Work with tabs</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Google Sheets</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/apps-script/guides/sheets" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/sheets" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/sheets" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/sheets/functions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/sheets/functions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/sheets/functions" ><span class="devsite-nav-text" tooltip>Custom functions</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/sheets/macros" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/sheets/macros" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/sheets/macros" ><span class="devsite-nav-text" tooltip>Macros</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/sheets/connected-sheets" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/sheets/connected-sheets" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/sheets/connected-sheets" ><span class="devsite-nav-text" tooltip>Connected Sheets</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Google Slides</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/apps-script/guides/slides" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/slides" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/slides" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/slides/presentations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/slides/presentations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/slides/presentations" ><span class="devsite-nav-text" tooltip>Structure of a presentation</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/slides/moving-elements" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/slides/moving-elements" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/slides/moving-elements" ><span class="devsite-nav-text" tooltip>Sizing and positioning page elements</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/slides/selecting" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/slides/selecting" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/slides/selecting" ><span class="devsite-nav-text" tooltip>Selecting items in a presentation</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/slides/editing-styling" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/slides/editing-styling" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/slides/editing-styling" ><span class="devsite-nav-text" tooltip>Editing and styling text</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/slides/lifecycle" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/slides/lifecycle" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/slides/lifecycle" ><span class="devsite-nav-text" tooltip>Life cycle of an update</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Menus, dialogs, and sidebars</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/apps-script/guides/menus" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/menus" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/menus" ><span class="devsite-nav-text" tooltip>Custom Menus in Google Workspace</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/dialogs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/dialogs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/dialogs" ><span class="devsite-nav-text" tooltip>Dialogs and sidebars in Google Workspace</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>User interfaces</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/apps-script/guides/html" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/html" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/html" ><span class="devsite-nav-text" tooltip>Create and serve HTML</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/html/communication" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/html/communication" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/html/communication" ><span class="devsite-nav-text" tooltip>Client-to-server communication</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/html/templates" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/html/templates" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/html/templates" ><span class="devsite-nav-text" tooltip>Templated HTML</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/html/restrictions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/html/restrictions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/html/restrictions" ><span class="devsite-nav-text" tooltip>Restrictions</span></a></li><li class="devsite-nav-item"><a href="/apps-script/migration/iframe" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/migration/iframe" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/migration/iframe" ><span class="devsite-nav-text" tooltip>Migrate to IFRAME</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/web" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/web" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/web" ><span class="devsite-nav-text" tooltip>Web apps</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/html/best-practices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/html/best-practices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/html/best-practices" ><span class="devsite-nav-text" tooltip>Best practices</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Store and serve data</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/apps-script/guides/properties" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/properties" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/properties" ><span class="devsite-nav-text" tooltip>Script, user, and document properties</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/jdbc" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/jdbc" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/jdbc" ><span class="devsite-nav-text" tooltip>External databases via JDBC</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/content" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/content" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/content" ><span class="devsite-nav-text" tooltip>Content service</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Admin management</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/apps-script/guides/admin/assign-cloud-permissions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/admin/assign-cloud-permissions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/admin/assign-cloud-permissions" ><span class="devsite-nav-text" tooltip>Assign permissions for Google Cloud projects</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/admin/monitor-restrict-oauth-scopes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/admin/monitor-restrict-oauth-scopes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/admin/monitor-restrict-oauth-scopes" ><span class="devsite-nav-text" tooltip>Monitor and restrict data access</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/admin/monitor-use" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/admin/monitor-use" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/admin/monitor-use" ><span class="devsite-nav-text" tooltip>Monitor and control Apps Script use</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/admin/view-cloud-projects" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/admin/view-cloud-projects" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/admin/view-cloud-projects" ><span class="devsite-nav-text" tooltip>View or edit Google Cloud projects</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Convert VBA Macros to Apps Script</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/apps-script/guides/macro-converter/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/macro-converter/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/macro-converter/overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/macro-converter/compatibility-report" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/macro-converter/compatibility-report" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/macro-converter/compatibility-report" ><span class="devsite-nav-text" tooltip>Determine VBA compatibility</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/macro-converter/convert-files" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/macro-converter/convert-files" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/macro-converter/convert-files" ><span class="devsite-nav-text" tooltip>Convert VBA macros to Apps Script</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/macro-converter/fix-conversion-errors" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/macro-converter/fix-conversion-errors" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/macro-converter/fix-conversion-errors" ><span class="devsite-nav-text" tooltip>Fix conversion errors</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/macro-converter/address-conversion-issues" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/macro-converter/address-conversion-issues" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/macro-converter/address-conversion-issues" ><span class="devsite-nav-text" tooltip>Address common issues</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/macro-converter/tutorials" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/macro-converter/tutorials" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/macro-converter/tutorials" ><span class="devsite-nav-text" tooltip>Watch video tutorials</span></a></li><li class="devsite-nav-item"><a href="/apps-script/guides/macro-converter/compatible-vba-apis" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/macro-converter/compatible-vba-apis" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/macro-converter/compatible-vba-apis" ><span class="devsite-nav-text" tooltip>View list of compatible VBA APIs</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Use the REST API</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/apps-script/api/concepts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/api/concepts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/api/concepts" ><span class="devsite-nav-text" tooltip>Introduction</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Quickstarts</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/apps-script/api/quickstart/js" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/api/quickstart/js" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/api/quickstart/js" ><span class="devsite-nav-text" tooltip>JavaScript</span></a></li><li class="devsite-nav-item"><a href="/apps-script/api/quickstart/go" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/api/quickstart/go" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/api/quickstart/go" ><span class="devsite-nav-text" tooltip>Go</span></a></li><li class="devsite-nav-item"><a href="/apps-script/api/quickstart/java" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/api/quickstart/java" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/api/quickstart/java" ><span class="devsite-nav-text" tooltip>Java</span></a></li><li class="devsite-nav-item"><a href="/apps-script/api/quickstart/nodejs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/api/quickstart/nodejs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/api/quickstart/nodejs" ><span class="devsite-nav-text" tooltip>Node.js</span></a></li><li class="devsite-nav-item"><a href="/apps-script/api/quickstart/python" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/api/quickstart/python" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/api/quickstart/python" ><span class="devsite-nav-text" tooltip>Python</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Concepts</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/apps-script/api/concepts/processes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/api/concepts/processes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/api/concepts/processes" ><span class="devsite-nav-text" tooltip>Processes</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>How To...</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/apps-script/api/how-tos/enable" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/api/how-tos/enable" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/api/how-tos/enable" ><span class="devsite-nav-text" tooltip>Enable script authorization and access</span></a></li><li class="devsite-nav-item"><a href="/apps-script/api/how-tos/manage-projects" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/api/how-tos/manage-projects" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/api/how-tos/manage-projects" ><span class="devsite-nav-text" tooltip>Manage script projects</span></a></li><li class="devsite-nav-item"><a href="/apps-script/api/how-tos/manage-deployments" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/api/how-tos/manage-deployments" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/api/how-tos/manage-deployments" ><span class="devsite-nav-text" tooltip>Manage script deployments</span></a></li><li class="devsite-nav-item"><a href="/apps-script/api/how-tos/manage-versions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/api/how-tos/manage-versions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/api/how-tos/manage-versions" ><span class="devsite-nav-text" tooltip>Manage script versions</span></a></li><li class="devsite-nav-item"><a href="/apps-script/api/how-tos/view-processes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/api/how-tos/view-processes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/api/how-tos/view-processes" ><span class="devsite-nav-text" tooltip>View process information</span></a></li><li class="devsite-nav-item"><a href="/apps-script/api/how-tos/execute" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/api/how-tos/execute" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/api/how-tos/execute" ><span class="devsite-nav-text" tooltip>Execute a function</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Troubleshoot</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/apps-script/api/troubleshoot-authentication-authorization" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/api/troubleshoot-authentication-authorization" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/api/troubleshoot-authentication-authorization" ><span class="devsite-nav-text" tooltip>Troubleshoot authentication & authorization</span></a></li></ul></div></li></ul></div></li> </ul> <ul class="devsite-nav-list" menu="All products" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Google Workspace apps </span> </span> </li> <li class="devsite-nav-item"> <a href="/admin-sdk" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Admin console" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Admin console </span> </a> </li> <li class="devsite-nav-item"> <a href="/cloud-search" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cloud Search" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cloud Search </span> </a> </li> <li class="devsite-nav-item"> <a href="/gmail" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Gmail" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Gmail </span> </a> </li> <li class="devsite-nav-item"> <a href="/calendar" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Calendar" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Calendar </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/chat" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Chat" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Chat </span> </a> </li> <li class="devsite-nav-item"> <a href="/classroom" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Classroom" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Classroom </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Docs" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Docs </span> </a> </li> <li class="devsite-nav-item"> <a href="/drive" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Drive" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Drive </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > </span> </span> </li> <li class="devsite-nav-item"> <a href="/workspace/forms" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Forms" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Forms </span> </a> </li> <li class="devsite-nav-item"> <a href="/keep" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Keep" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Keep </span> </a> </li> <li class="devsite-nav-item"> <a href="/meet" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Meet" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Meet </span> </a> </li> <li class="devsite-nav-item"> <a href="/sheets" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Sheets" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Sheets </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/sites" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Sites" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Sites </span> </a> </li> <li class="devsite-nav-item"> <a href="/slides" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Slides" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Slides </span> </a> </li> <li class="devsite-nav-item"> <a href="/tasks" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Tasks" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Tasks </span> </a> </li> <li class="devsite-nav-item"> <a href="/vault" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Vault" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Vault </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Extend, automate & share </span> </span> </li> <li class="devsite-nav-item"> <a href="/workspace/add-ons" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Add-ons" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Add-ons </span> </a> </li> <li class="devsite-nav-item"> <a href="/apps-script" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Apps Script" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Apps Script </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/chat/overview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Chat apps" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Chat apps </span> </a> </li> <li class="devsite-nav-item"> <a href="/drive/api/guides/about-apps" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Drive apps" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Drive apps </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/marketplace" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Marketplace" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Marketplace </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Resources" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Tools </span> </span> </li> <li class="devsite-nav-item"> <a href="https://admin.google.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Admin console" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Admin console </span> </a> </li> <li class="devsite-nav-item"> <a href="https://script.google.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Apps Script dashboard" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Apps Script dashboard </span> </a> </li> <li class="devsite-nav-item"> <a href="https://console.cloud.google.com/workspace-api" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud console" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud console </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/explore" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: APIs Explorer" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > APIs Explorer </span> </a> </li> <li class="devsite-nav-item"> <a href="https://addons.gsuite.google.com/uikit/builder" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Card Builder" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Card Builder </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Training & support </span> </span> </li> <li class="devsite-nav-item"> <a href="/workspace/guides/get-started" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: How to get started" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > How to get started </span> </a> </li> <li class="devsite-nav-item"> <a href="https://codelabs.developers.google.com/?product=googleworkspace" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Codelabs" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Codelabs </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/support" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Developer support" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Developer support </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Updates </span> </span> </li> <li class="devsite-nav-item"> <a href="https://developers.googleblog.com/search/?query=Google+Workspace" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Blog" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Blog </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/preview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Developer Previews" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Developer Previews </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/newsletters" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Newsletter" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Newsletter </span> </a> </li> <li class="devsite-nav-item"> <a href="https://twitter.com/workspacedevs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: X (Twitter)" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > X (Twitter) </span> </a> </li> <li class="devsite-nav-item"> <a href="https://www.youtube.com/channel/UCUcg6az6etU_gRtZVAhBXaw" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: YouTube" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > YouTube </span> </a> </li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" id="main-content" class="devsite-main-content" has-book-nav > <devsite-content> <article class="devsite-article"> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://developers.google.com/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="" > Home </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/workspace" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="Google Workspace" > Google Workspace </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/apps-script" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="3" track-type="globalNav" track-name="breadcrumb" track-metadata-position="3" track-metadata-eventdetail="Google Apps Script" > Apps Script </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/apps-script/overview" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="4" track-type="globalNav" track-name="breadcrumb" track-metadata-position="4" track-metadata-eventdetail="" > Guides </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <devsite-feedback position="header" project-name="Apps Script" product-id="717201" bucket="apps-script" context="" version="t-devsite-webserver-20250211-r00-rc00.466928320959134316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="header" class="nocontent" project-feedback-url="https://issuetracker.google.com/issues/new?component=191640&template=824113" project-icon="https://www.gstatic.com/images/branding/product/2x/apps_script_48dp.png" project-support-url="https://developers.google.com/apps-script/support" > <button> Send feedback </button> </devsite-feedback> <h1 class="devsite-page-title" tabindex="-1"> Use Connected Sheets </h1> <devsite-feature-tooltip ack-key="AckCollectionsBookmarkTooltipDismiss" analytics-category="Site-Wide Custom Events" analytics-action-show="Callout Profile displayed" analytics-action-close="Callout Profile dismissed" analytics-label="Create Collection Callout" class="devsite-page-bookmark-tooltip nocontent" dismiss-button="true" id="devsite-collections-dropdown" dismiss-button-text="Dismiss" close-button-text="Got it"> <devsite-bookmark></devsite-bookmark> <span slot="popout-heading"> Stay organized with collections </span> <span slot="popout-contents"> Save and categorize content based on your preferences. </span> </devsite-feature-tooltip> <devsite-key-takeaways></devsite-key-takeaways> <div class="devsite-page-title-meta"><devsite-view-release-notes></devsite-view-release-notes></div> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded > </devsite-toc> <div class="devsite-article-body clearfix "> <p><a href="https://cloud.google.com/blog/products/g-suite/connected-sheets-is-generally-available" target="_blank" class="external">Connected Sheets</a> is a Google Sheets feature that lets you analyze BigQuery and Looker data directly within Sheets. You can access Connected Sheets programmatically with the Spreadsheet service.</p> <h2 id="common_actions" data-text="Common Connected Sheets actions" tabindex="-1">Common Connected Sheets actions</h2> <p>Use the <code translate="no" dir="ltr">DataSource</code> classes and objects to connect to BigQuery or Looker and analyze data. The following table lists the most common <code translate="no" dir="ltr">DataSource</code> actions and how to create them in Apps Script:</p> <table> <thead> <tr> <th>Action</th> <th>Google Apps Script class</th> <th>Method to use</th> </tr> </thead> <tbody> <tr> <td>Connect a sheet to a supported data source</td> <td><a href="/apps-script/reference/spreadsheet/data-source-spec"><code translate="no" dir="ltr">DataSourceSpec</code></a></td> <td><code translate="no" dir="ltr">SpreadsheetApp.newDataSourceSpec()</code></td> </tr> <tr> <td>Choose a data source</td> <td><a href="/apps-script/reference/spreadsheet/data-source"><code translate="no" dir="ltr">DataSource</code></a></td> <td><code translate="no" dir="ltr">Spreadsheet.insertDataSourceSheet().getDataSource()</code></td> </tr> <tr> <td>Add a data source sheet</td> <td><a href="/apps-script/reference/spreadsheet/data-source-sheet"><code translate="no" dir="ltr">DataSourceSheet</code></a></td> <td><code translate="no" dir="ltr">Spreadsheet.insertDataSourceSheet()</code></td> </tr> <tr> <td>Add a pivot table</td> <td><a href="/apps-script/reference/spreadsheet/data-source-pivot-table"><code translate="no" dir="ltr">DataSourcePivotTable</code></a></td> <td><code translate="no" dir="ltr">Range.insertDataSourcePivotTable()</code></td> </tr> <tr> <td>Pull data into an extract</td> <td><a href="/apps-script/reference/spreadsheet/data-source-table"><code translate="no" dir="ltr">DataSourceTable</code></a></td> <td><code translate="no" dir="ltr">Range.insertDataSourceTable()</code></td> </tr> <tr> <td>Use a formula</td> <td><a href="/apps-script/reference/spreadsheet/data-source-formula"><code translate="no" dir="ltr">DataSourceFormula</code></a></td> <td><code translate="no" dir="ltr">Range.setFormula()</code></td> </tr> <tr> <td>Add a chart</td> <td><a href="/apps-script/reference/spreadsheet/data-source-chart"><code translate="no" dir="ltr">DataSourceChart</code></a></td> <td><code translate="no" dir="ltr">Sheet.insertDataSourceChart()</code></td> </tr> </tbody> </table> <h2 id="add_required_authorization_scopes" data-text="Add required authorization scopes" tabindex="-1">Add required authorization scopes</h2> <p>To access BigQuery data, you must include the <code translate="no" dir="ltr">enableBigQueryExecution()</code> method in your Google Apps Script code. This method adds the required <code translate="no" dir="ltr">bigquery.readonly</code> OAuth scope to your Google Apps Script project.</p> <p>The following sample shows the <code translate="no" dir="ltr">SpreadsheetApp.enableBigQueryExecution()</code> method called within a function:</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="GDScript"><span class="devsite-syntax-n">function</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">addDataSource</span><span class="devsite-syntax-p">()</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">SpreadsheetApp</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">enableBigQueryExecution</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">spreadsheet</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">SpreadsheetApp</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">getActive</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span></pre></devsite-code> <p>To access Looker data, you must include the <code translate="no" dir="ltr">enableLookerExecution()</code> method in your Google Apps Script code. Accessing Looker in Apps Script will reuse your existing Google Account Link with Looker.</p> <p>The following sample shows the <code translate="no" dir="ltr">SpreadsheetApp.enableLookerExecution()</code> method called within a function:</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="GDScript"><span class="devsite-syntax-n">function</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">addDataSource</span><span class="devsite-syntax-p">()</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">SpreadsheetApp</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">enableLookerExecution</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">spreadsheet</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">SpreadsheetApp</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">getActive</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span></pre></devsite-code> <h3 id="add_additional_oauth_scopes_to_the_manifest_file" data-text="Add additional OAuth scopes to the manifest file" tabindex="-1">Add additional OAuth scopes to the manifest file</h3> <p>When connecting with BigQuery, most OAuth scopes are automatically added to the manifest file based on the functions used in your code. If you need additional scopes to access certain BigQuery data, you can <a href="/apps-script/concepts/scopes#setting_explicit_scopes">set explicit scopes</a>.</p> <p>For example, to <a href="https://cloud.google.com/bigquery/external-data-drive#api" target="_blank" class="external">query BigQuery data hosted within Google Drive</a>, you must add a Drive OAuth scope to your manifest file.</p> <p>The following sample shows the <code translate="no" dir="ltr">oauthScopes</code> portion of a manifest file. It adds a drive OAuth scope in addition to the minimum required <code translate="no" dir="ltr">spreadsheet</code> and <code translate="no" dir="ltr">bigquery.readonly</code> OAuth scopes:</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Text only">{ ... "oauthScopes": [ "https://www.googleapis.com/auth/bigquery.readonly", "https://www.googleapis.com/auth/spreadsheets", "https://www.googleapis.com/auth/drive" ], ... }</pre></devsite-code> <h2 id="example_create_and_refresh_a_data_source_object" data-text="Example: Create and refresh a data source object" tabindex="-1">Example: Create and refresh a data source object</h2> <p>The following examples shows how to add a data source, create a data source object from the data source, refresh the data source object, and get the execution status.</p> <h3 id="add_a_data_source" data-text="Add a data source" tabindex="-1">Add a data source</h3> <p>The following examples show how to add a BigQuery and a Looker data source respectively.</p> <h4 id="adding-a-bigquery-data-source" data-text="BigQuery" tabindex="-1">BigQuery</h4> <p>To add a BigQuery data source to a spreadsheet, insert a data source sheet with a data source spec. The data source sheet is automatically refreshed to fetch preview data.</p> <p>Replace <code translate="no" dir="ltr"><YOUR_PROJECT_ID></code> below with a valid Google Cloud project ID.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="GDScript"><code translate="no" dir="ltr"><span class="devsite-syntax-o">//</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">For</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">operations</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">that</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">fetch</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">data</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">BigQuery</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">enableBigQueryExecution</span><span class="devsite-syntax-p">()</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">must</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">be</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">called</span><span class="devsite-syntax-o">.</span> <span class="devsite-syntax-n">SpreadsheetApp</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">enableBigQueryExecution</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-k">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">spreadsheet</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">SpreadsheetApp</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">create</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'Test connected sheets'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-n">Logger</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">log</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'New test spreadsheet: </span><span class="devsite-syntax-si">%s</span><span class="devsite-syntax-s1">'</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">spreadsheet</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">getUrl</span><span class="devsite-syntax-p">());</span> <span class="devsite-syntax-o">//</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Build</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">data</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">source</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">spec</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">by</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">selecting</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">a</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">table</span><span class="devsite-syntax-o">.</span> <span class="devsite-syntax-k">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">dataSourceSpec</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">SpreadsheetApp</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">newDataSourceSpec</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">asBigQuery</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">setProjectId</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'<YOUR_PROJECT_ID>'</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">setTableProjectId</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'bigquery-public-data'</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">setDatasetId</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'ncaa_basketball'</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">setTableId</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'mbb_historical_tournament_games'</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-o">//</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Add</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">data</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">source</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">and</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">its</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">associated</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">data</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">source</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">sheet</span><span class="devsite-syntax-o">.</span> <span class="devsite-syntax-k">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">dataSourceSheet</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">spreadsheet</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">insertDataSourceSheet</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">dataSourceSpec</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-k">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">dataSource</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">dataSourceSheet</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">getDataSource</span><span class="devsite-syntax-p">();</span> </code></pre></devsite-code> <h4 id="looker" data-text="Looker" tabindex="-1">Looker</h4> <p>To add a Looker data source to a spreadsheet, insert a data source sheet with a data source spec. The data source sheet is automatically refreshed to fetch preview data.</p> <p>Replace <code translate="no" dir="ltr"><INSTANCE_URL></code>,<code translate="no" dir="ltr"><MODEL_NAME></code>, <code translate="no" dir="ltr"><EXPLORE_NAME></code> in the following sample with a valid Looker instance URL, model name and explore name respectively.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="GDScript"><code translate="no" dir="ltr"><span class="devsite-syntax-o">//</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">For</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">operations</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">that</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">fetch</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">data</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Looker</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">enableLookerExecution</span><span class="devsite-syntax-p">()</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">must</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">be</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">called</span><span class="devsite-syntax-o">.</span> <span class="devsite-syntax-n">SpreadsheetApp</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">enableLookerExecution</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-k">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">spreadsheet</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">SpreadsheetApp</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">create</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'Test connected sheets'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-n">Logger</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">log</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'New test spreadsheet: </span><span class="devsite-syntax-si">%s</span><span class="devsite-syntax-s1">'</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">spreadsheet</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">getUrl</span><span class="devsite-syntax-p">());</span> <span class="devsite-syntax-o">//</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Build</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">data</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">source</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">spec</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">by</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">selecting</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">a</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">table</span><span class="devsite-syntax-o">.</span> <span class="devsite-syntax-k">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">dataSourceSpec</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">SpreadsheetApp</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">newDataSourceSpec</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">asLooker</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">setInstanceUrl</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'<INSTANCE_URL>'</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">setModelName</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'<MODEL_NAME>'</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">setExploreName</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'<EXPLORE_NAME>'</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-o">//</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Add</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">data</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">source</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">and</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">its</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">associated</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">data</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">source</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">sheet</span><span class="devsite-syntax-o">.</span> <span class="devsite-syntax-k">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">dataSourceSheet</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">spreadsheet</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">insertDataSourceSheet</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">dataSourceSpec</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-k">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">dataSource</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">dataSourceSheet</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">getDataSource</span><span class="devsite-syntax-p">();</span> </code></pre></devsite-code> <h3 id="add_a_data_source_object" data-text="Add a data source object" tabindex="-1">Add a data source object</h3> <p>Once the data source is added to the spreadsheet, data source objects can be created from the data source. In this example, a pivot table is created using <code translate="no" dir="ltr">DataSourcePivotTable</code> on the BigQuery <code translate="no" dir="ltr">dataSource</code> created in <a href="#adding-a-bigquery-data-source">the code sample which adds a BigQuery datasource</a>.</p> <p>Unlike regular data in grid sheets that are referenced by cell index or A1 notations, data from data sources are usually referenced by column names. Therefore, most property setters on data source objects use column name as input.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="GDScript"><code translate="no" dir="ltr"><span class="devsite-syntax-k">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">rootCell</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">spreadsheet</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">insertSheet</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'pivotTableSheet'</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">getRange</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'A1'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-o">//</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Add</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">data</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">source</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">pivot</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">table</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">and</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">set</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">data</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">source</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">specific</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">configurations</span><span class="devsite-syntax-o">.</span> <span class="devsite-syntax-k">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">dataSourcePivotTable</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">rootCell</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">createDataSourcePivotTable</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">dataSource</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-k">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">rowGroup</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">dataSourcePivotTable</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">addRowGroup</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'season'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-n">rowGroup</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">sortDescending</span><span class="devsite-syntax-p">()</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">setGroupLimit</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-mi">5</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-n">dataSourcePivotTable</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">addColumnGroup</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'win_school_ncaa'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-n">dataSourcePivotTable</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">addPivotValue</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'win_pts'</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">SpreadsheetApp</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">PivotTableSummarizeFunction</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">AVERAGE</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-n">dataSourcePivotTable</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">addPivotValue</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'game_date'</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">SpreadsheetApp</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">PivotTableSummarizeFunction</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">COUNTA</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-k">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">filterCriteria</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">SpreadsheetApp</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">newFilterCriteria</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">whenTextEqualToAny</span><span class="devsite-syntax-p">([</span><span class="devsite-syntax-s1">'Duke'</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'North Carolina'</span><span class="devsite-syntax-p">])</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-n">dataSourcePivotTable</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">addFilter</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'win_school_ncaa'</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">filterCriteria</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-o">//</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Get</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">a</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">regular</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">pivot</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">table</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instance</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">and</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">set</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">shared</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">configurations</span><span class="devsite-syntax-o">.</span> <span class="devsite-syntax-k">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">pivotTable</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">dataSourcePivotTable</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">asPivotTable</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-n">pivotTable</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">setValuesDisplayOrientation</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">SpreadsheetApp</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">Dimension</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">ROWS</span><span class="devsite-syntax-p">);</span> </code></pre></devsite-code> <h3 id="refresh_a_data_source_object" data-text="Refresh a data source object" tabindex="-1">Refresh a data source object</h3> <p>You can refresh data source objects to fetch the latest data from BigQuery based on the data source specs and object configurations.</p> <p>The process to refresh data is asynchronous. To refresh a data source object, use the following methods:</p> <ol> <li><code translate="no" dir="ltr">refreshData()</code> starts the data refresh execution.</li> <li><code translate="no" dir="ltr">waitForCompletion()</code> returns the end state once the data execution is completed. This eliminates the need to keep polling the execution status.</li> <li><code translate="no" dir="ltr">DataExecutionStatus.getErrorCode()</code> gets the error code in case the data execution fails.</li> </ol> <p>The sample below illustrates a refresh of the pivot table data:</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="GDScript"><code translate="no" dir="ltr"><span class="devsite-syntax-k">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">status</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">dataSourcePivotTable</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">getStatus</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-n">Logger</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">log</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'Initial state: </span><span class="devsite-syntax-si">%s</span><span class="devsite-syntax-s1">'</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">status</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">getExecutionState</span><span class="devsite-syntax-p">());</span> <span class="devsite-syntax-n">dataSourcePivotTable</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">refreshData</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-n">status</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">dataSourcePivotTable</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">waitForCompletion</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-o">/*</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">timeoutInSeconds</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">*/</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-mi">60</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-n">Logger</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">log</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'Ending state: </span><span class="devsite-syntax-si">%s</span><span class="devsite-syntax-s1">'</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">status</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">getExecutionState</span><span class="devsite-syntax-p">());</span> <span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">status</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">getExecutionState</span><span class="devsite-syntax-p">()</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">==</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">SpreadsheetApp</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">DataExecutionState</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">ERROR</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Logger</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">log</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'Error: </span><span class="devsite-syntax-si">%s</span><span class="devsite-syntax-s1"> (</span><span class="devsite-syntax-si">%s</span><span class="devsite-syntax-s1">)'</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">status</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">getErrorCode</span><span class="devsite-syntax-p">(),</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">status</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">getErrorMessage</span><span class="devsite-syntax-p">());</span> <span class="devsite-syntax-p">}</span> </code></pre></devsite-code> <h2 id="use_triggers_with" data-text="Use triggers with Connected Sheets" tabindex="-1">Use triggers with Connected Sheets</h2> <p>Automate your Connected Sheets data source functions with <a href="https://developers.google.com/apps-script/guides/triggers/installable">triggers and events</a>. For example, use <a href="https://developers.google.com/apps-script/guides/triggers/installable#time-driven_triggers">time-driven triggers</a> to refresh data source objects repeatedly at a specific time, and use spreadsheet <a href="https://developers.google.com/apps-script/guides/triggers/installable#g_suite_application_triggers">event triggers</a> to trigger data execution on a predefined event.</p> <p>The following sample adds a BigQuery data source with a query parameter and refreshes the data source sheet when the query parameter is edited.</p> <p>Replace <code translate="no" dir="ltr"><YOUR_PROJECT_ID></code> below with a valid Google Cloud project ID.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="MySQL"><code translate="no" dir="ltr"><span class="devsite-syntax-o">//</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">Add</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">data</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">source</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">with</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">query</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">parameter</span><span class="devsite-syntax-p">.</span> <span class="devsite-syntax-k">function</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">addDataSource</span><span class="devsite-syntax-p">()</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-err">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">SpreadsheetApp</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">enableBigQueryExecution</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">spreadsheet</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">SpreadsheetApp</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">getActive</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">//</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">Add</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">a</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">sheet</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">and</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">use</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">A1</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">cell</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">as</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">the</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">parameter</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">cell</span><span class="devsite-syntax-p">.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">parameterCell</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">spreadsheet</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">insertSheet</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'parameterSheet'</span><span class="devsite-syntax-p">).</span><span class="devsite-syntax-n">getRange</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'A1'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-n">parameterCell</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-k">set</span><span class="devsite-syntax-n">Value</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'Duke'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">//</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">Add</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">data</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">source</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">with</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">query</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">parameter</span><span class="devsite-syntax-p">.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">dataSourceSpec</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">SpreadsheetApp</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">newDataSourceSpec</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">asBigQuery</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-k">set</span><span class="devsite-syntax-n">ProjectId</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'<YOUR_PROJECT_ID>'</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-k">set</span><span class="devsite-syntax-n">RawQuery</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'select * from `bigquery-public-data`.`ncaa_basketball`.`mbb_historical_tournament_games` WHERE win_school_ncaa = @SCHOOL'</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-k">set</span><span class="devsite-syntax-n">ParameterFromCell</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'SCHOOL'</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'parameterSheet!A1'</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">dataSourceSheet</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">spreadsheet</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">insertDataSourceSheet</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">dataSourceSpec</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">dataSourceSheet</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">asSheet</span><span class="devsite-syntax-p">().</span><span class="devsite-syntax-k">set</span><span class="devsite-syntax-n">Name</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'ncaa_data'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-err">}</span> <span class="devsite-syntax-o">//</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">Function</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">used</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">to</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">configure</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">event</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">trigger</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">to</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">refresh</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">data</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">source</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">sheet</span><span class="devsite-syntax-p">.</span> <span class="devsite-syntax-k">function</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">refreshOnParameterEdit</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">e</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-err">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">editedRange</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">e</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-k">range</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">editedRange</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">getSheet</span><span class="devsite-syntax-p">().</span><span class="devsite-syntax-n">getName</span><span class="devsite-syntax-p">()</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'parameterSheet'</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-err">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-err">}</span> <span class="devsite-syntax-o">//</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">Check</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">that</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">the</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">edited</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">range</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">includes</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">A1</span><span class="devsite-syntax-p">.</span> <span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">editedRange</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">getRow</span><span class="devsite-syntax-p">()</span><span class="devsite-syntax-w"> > </span><span class="devsite-syntax-mi">1</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">||</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">editedRange</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">getColumn</span><span class="devsite-syntax-p">()</span><span class="devsite-syntax-w"> > </span><span class="devsite-syntax-mi">1</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-err">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-err">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">spreadsheet</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">e</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-k">source</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">SpreadsheetApp</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">enableBigQueryExecution</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">spreadsheet</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">getSheetByName</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'ncaa_data'</span><span class="devsite-syntax-p">).</span><span class="devsite-syntax-n">asDataSourceSheet</span><span class="devsite-syntax-p">().</span><span class="devsite-syntax-n">refreshData</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-err">}</span> </code></pre></devsite-code> <p>In the above sample, the <code translate="no" dir="ltr">addDataSource()</code> function adds a data source to the spreadsheet. After you execute <code translate="no" dir="ltr">addDataSource()</code>, create an event trigger in the Apps Script editor. To learn how to create an event trigger, see <a href="https://developers.google.com/apps-script/guides/triggers/installable">Installable triggers</a>.</p> <p>Select the following options for your trigger:</p> <ul> <li><strong>Event source</strong>: <strong>From spreadsheet</strong></li> <li><strong>Event type</strong>: <strong>On edit</strong></li> <li><strong>Function to run</strong>: <strong><code translate="no" dir="ltr">refreshOnParameterEdit</code></strong></li> </ul> <p>Once the trigger is created, the data source sheet refreshes automatically every time the parameter cell is edited.</p> <h2 id="troubleshoot" data-text="Troubleshoot" tabindex="-1">Troubleshoot</h2> <table> <thead> <tr> <th>Error message</th> <th>Resolution</th> </tr> </thead> <tbody> <tr> <td>Use <code translate="no" dir="ltr">enableBigQuery()</code> to enable data executions for BIGQUERY data sources.</td> <td>This error indicates that <code translate="no" dir="ltr">SpreadsheetApp.enableBigQueryExecution()</code> is not called before fetching BigQuery data.<br/>Call <code translate="no" dir="ltr">SpreadsheetApp.enableBigQueryExecution()</code> in functions that use methods for BigQuery execution. <br/>Such as, <code translate="no" dir="ltr">refreshData()</code> on data source objects, <code translate="no" dir="ltr">Spreadsheet.insertDataSourceTable()</code>, and <code translate="no" dir="ltr">DataSource.updateSpec()</code>. <br/>These methods require an additional bigquery.readonly OAuth scope to work.</td> </tr> <tr> <td>Not permitted to act on data sources. <br/>Please contact your administrator to enable the feature.</td> <td>This error indicates that the account doesn’t have Connected Sheets enabled.<br/>Connected Sheets is only available to Google Workspace users with certain subscriptions. <br/>Contact your administrator to enable the feature.</td> </tr> </tbody> </table> <devsite-hats-survey class="nocontent" hats-id="tebPb3nt10eGRuQsCn30V3hnH7RQ" listnr-id="717201"></devsite-hats-survey> </div> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <devsite-feedback position="footer" project-name="Apps Script" product-id="717201" bucket="apps-script" context="" version="t-devsite-webserver-20250211-r00-rc00.466928320959134316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="footer" class="nocontent" project-feedback-url="https://issuetracker.google.com/issues/new?component=191640&template=824113" project-icon="https://www.gstatic.com/images/branding/product/2x/apps_script_48dp.png" project-support-url="https://developers.google.com/apps-script/support" > <button> Send feedback </button> </devsite-feedback> <div class="devsite-floating-action-buttons"> </div> </article> <devsite-content-footer class="nocontent"> <p>Except as otherwise noted, the content of this page is licensed under the <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 License</a>, and code samples are licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a>. For details, see the <a href="https://developers.google.com/site-policies">Google Developers Site Policies</a>. Java is a registered trademark of Oracle and/or its affiliates.</p> <p>Last updated 2024-12-19 UTC.</p> </devsite-content-footer> <devsite-notification > </devsite-notification> <div class="devsite-content-data"> <template class="devsite-thumb-rating-feedback"> <devsite-feedback position="thumb-rating" project-name="Apps Script" product-id="717201" bucket="apps-script" context="" version="t-devsite-webserver-20250211-r00-rc00.466928320959134316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="thumb-rating" class="nocontent" project-feedback-url="https://issuetracker.google.com/issues/new?component=191640&template=824113" project-icon="https://www.gstatic.com/images/branding/product/2x/apps_script_48dp.png" project-support-url="https://developers.google.com/apps-script/support" > <button> Need to tell us more? </button> </devsite-feedback> </template> <template class="devsite-content-data-template"> [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-12-19 UTC."],[[["Connected Sheets enables you to analyze BigQuery and Looker data directly within Google Sheets, accessible programmatically through the Spreadsheet service."],["To access data, use the `DataSource` classes and objects, ensuring to include `enableBigQueryExecution()` or `enableLookerExecution()` in your Apps Script code for BigQuery or Looker access, respectively."],["You might need to add additional OAuth scopes in your manifest file for specific data access, like using a Drive OAuth scope for BigQuery data hosted within Google Drive."],["Data source objects, like pivot tables, can be created and refreshed to fetch the latest data, with asynchronous refresh handled using methods like `refreshData()` and `waitForCompletion()`."],["Automate your data source functions with Apps Script triggers, such as time-driven triggers for regular refreshes or event triggers to refresh on specific spreadsheet events like parameter edits."]]],[]] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> <nav class="devsite-footer-promos nocontent" aria-label="Promotions"> <ul class="devsite-footer-promos-list"> <li class="devsite-footer-promo"> <a href="https://developers.googleblog.com/search/?query=Google+Workspace" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Promo - Google Workspace Developers Blog" target="_blank" data-category="Workspace Footer" > <picture> <img class="devsite-footer-promo-icon" src="https://www.gstatic.com/images/branding/product/2x/google_cloud_64dp.png" loading="lazy" alt="Blog"> </picture> <span class="devsite-footer-promo-label"> Blog </span> </a> <div class="devsite-footer-promo-description">Read the Google Workspace Developers blog</div> </li> <li class="devsite-footer-promo"> <a href="http://stackoverflow.com/questions/tagged/google-apps-script" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-category="Workspace Footer" target="_blank" data-label="Promo - Stack Overflow" > <picture> <img class="devsite-footer-promo-icon" src="/static/site-assets/logo-stack-overflow.svg" loading="lazy" alt="Stack Overflow"> </picture> <span class="devsite-footer-promo-label"> Stack Overflow </span> </a> <div class="devsite-footer-promo-description">Ask a question under the google-apps-script tag</div> </li> <li class="devsite-footer-promo"> <a href="/apps-script/samples" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-category="Workspace Footer" data-label="Promo - Code Samples" > <picture> <img class="devsite-footer-promo-icon" src="/static/site-assets/developers_64dp.png" loading="lazy" alt="Code Samples"> </picture> <span class="devsite-footer-promo-label"> Code Samples </span> </a> <div class="devsite-footer-promo-description">Explore our code samples or copy them to build your own</div> </li> <li class="devsite-footer-promo"> <a href="https://www.youtube.com/channel/UCUcg6az6etU_gRtZVAhBXaw" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Promo - Videos" data-category="Workspace Footer" target="_blank" > <picture> <img class="devsite-footer-promo-icon" src="https://www.gstatic.com/images/icons/material/product/2x/youtube_64dp.png" loading="lazy" alt="Videos"> </picture> <span class="devsite-footer-promo-label"> Videos </span> </a> <div class="devsite-footer-promo-description">Watch Apps Script tutorials</div> </li> </ul> </nav> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Google Workspace for Developers</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/workspace" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-category="Workspace Footer"data-label="Linkbox - Platform overview"> Platform overview </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/workspace/products" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Linkbox - Developer products"data-category="Workspace Footer"> Developer products </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/workspace/support" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-category="Workspace Footer"data-label="Linkbox - Developer support"> Developer support </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/workspace/terms" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Linkbox - Terms of Service"data-category="Workspace Footer"> Terms of Service </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Tools</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="https://admin.google.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Linkbox - Admin console"data-category="Workspace Footer"target="admin-console"> Admin console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://script.google.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" target="_blank"data-category="Workspace Footer"data-label="Linkbox - Apps Script Dashboard"> Apps Script Dashboard </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://console.cloud.google.com/workspace-api" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" target="console"data-category="Workspace Footer"data-label="Linkbox - Google Cloud console"> Google Cloud console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/workspace/explore" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Linkbox - APIs Explorer"data-category="Workspace Footer"> APIs Explorer </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Connect</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="https://developers.googleblog.com/search/?query=Google+Workspace" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-category="Workspace Footer"target="_blank"data-label="Linkbox - Blog"> Blog </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/workspace/newsletters" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Linkbox - Newsletter"data-category="Workspace Footer"> Newsletter </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://twitter.com/workspacedevs" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" target="_blank"data-category="Workspace Footer"data-label="Linkbox - X (Twitter)"> X (Twitter) </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://www.youtube.com/channel/UCUcg6az6etU_gRtZVAhBXaw" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-category="Workspace Footer"target="_blank"data-label="Linkbox - YouTube"> YouTube </a> </li> </ul> </li> </ul> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-sites" aria-label="Other Google Developers websites"> <a href="https://developers.google.com/" class="devsite-footer-sites-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Developers Link"> <picture> <img class="devsite-footer-sites-logo" src="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers/images/lockup-google-for-developers.svg" loading="lazy" alt="Google Developers"> </picture> </a> <ul class="devsite-footer-sites-list"> <li class="devsite-footer-sites-item"> <a href="//developer.android.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Android Link" > Android </a> </li> <li class="devsite-footer-sites-item"> <a href="//developer.chrome.com/home" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Chrome Link" > Chrome </a> </li> <li class="devsite-footer-sites-item"> <a href="//firebase.google.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Firebase Link" > Firebase </a> </li> <li class="devsite-footer-sites-item"> <a href="//cloud.google.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Cloud Platform Link" > Google Cloud Platform </a> </li> <li class="devsite-footer-sites-item"> <a href="//ai.google.dev/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google AI Link" > Google AI </a> </li> <li class="devsite-footer-sites-item"> <a href="/products" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer All products Link" > All products </a> </li> </ul> </nav> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/terms/site-terms" data-category="Site-Wide Custom Events" data-label="Footer Terms link" > Terms </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link" > Privacy </a> </li> <li class="devsite-footer-utility-item glue-cookie-notification-bar-control"> <a class="devsite-footer-utility-link gc-analytics-event" href="#" data-category="Site-Wide Custom Events" data-label="Footer Manage cookies link" aria-hidden="true" > Manage cookies </a> </li> <li class="devsite-footer-utility-item devsite-footer-utility-button"> <span class="devsite-footer-utility-description">Sign up for the Google for Developers newsletter</span> <a class="devsite-footer-utility-link gc-analytics-event" href="/newsletter/subscribe" data-category="Site-Wide Custom Events" data-label="Footer Subscribe link" > Subscribe </a> </li> </ul> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es" >Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> <devsite-concierge data-info-panel data-ai-panel data-api-explorer-panel > </devsite-concierge> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip ></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics> <script type="application/json" analytics>[{"dimensions": {"dimension11": false, "dimension6": "en", "dimension3": false, "dimension4": "Apps Script", "dimension5": "en", "dimension1": "Signed out"}, "gaid": "UA-24532603-1", "metrics": {"ratings_count": "metric2", "ratings_value": "metric1"}, "purpose": 1}]</script> <script type="application/json" tag-management>{"at": "True", "ga4": [{"id": "G-272J68FCRF", "purpose": 1}, {"id": "G-YYP88VSJWR", "purpose": 0}], "ga4p": [{"id": "G-272J68FCRF", "purpose": 1}], "gtm": [], "parameters": {"internalUser": "False", "language": {"machineTranslated": "False", "requested": "en", "served": "en"}, "pageType": "article", "projectName": "Apps Script", "signedIn": "False", "tenant": "developers", "recommendations": {"sourcePage": "", "sourceType": 0, "sourceRank": 0, "sourceIdenticalDescriptions": 0, "sourceTitleWords": 0, "sourceDescriptionWords": 0, "experiment": ""}, "experiment": {"ids": ""}}}</script> </devsite-analytics> <devsite-badger></devsite-badger> <script nonce="iCgs+VIO5FoEcKWswsztMZZnEnhys2"> (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i; t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0]; E.parentNode.insertBefore(t,E);})(window, document, 'script', 'https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers/js/app_loader.js', '[1,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers","https://developers-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/developers/manifest.json","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers/images/favicon-new.png","https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg","developers.google.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["Profiles__enable_completequiz_endpoint","Cloud__enable_cloud_shell_fte_user_flow","Cloud__enable_cloudx_experiment_ids","CloudShell__cloud_code_overflow_menu","Cloud__enable_legacy_calculator_redirect","Concierge__enable_key_takeaways","Experiments__reqs_query_experiments","CloudShell__cloud_shell_button","TpcFeatures__enable_unmirrored_page_left_nav","MiscFeatureFlags__enable_variable_operator","Profiles__enable_public_developer_profiles","Search__enable_ai_eligibility_checks","EngEduTelemetry__enable_engedu_telemetry","Profiles__enable_stripe_subscription_management","Profiles__enable_complete_playlist_endpoint","Search__enable_page_map","TpcFeatures__enable_mirror_tenant_redirects","DevPro__enable_developer_subscriptions","Cloud__enable_cloud_shell","MiscFeatureFlags__developers_footer_image","Profiles__require_profile_eligibility_for_signin","MiscFeatureFlags__enable_firebase_utm","Cloud__enable_cloudx_ping","Concierge__enable_concierge_restricted","MiscFeatureFlags__enable_explain_this_code","Profiles__enable_page_saving","MiscFeatureFlags__emergency_css","Search__enable_suggestions_from_borg","Profiles__enable_developer_profiles_callout","Profiles__enable_recognition_badges","DevPro__enable_cloud_innovators_plus","Profiles__enable_profile_collections","Cloud__enable_llm_concierge_chat","Cloud__enable_cloud_facet_chat","Profiles__enable_join_program_group_endpoint","MiscFeatureFlags__developers_footer_dark_image","Search__enable_dynamic_content_confidential_banner","Cloud__enable_free_trial_server_call","Analytics__enable_clearcut_logging","Concierge__enable_pushui","Search__enable_ai_search_summaries","Significatio__enable_by_tenant","Search__enable_ai_search_summaries_restricted","Concierge__enable_concierge","Profiles__enable_dashboard_curated_recommendations","Profiles__enable_completecodelab_endpoint","Cloud__enable_cloud_dlp_service","Profiles__enable_awarding_url","MiscFeatureFlags__enable_project_variables","Profiles__enable_release_notes_notifications","MiscFeatureFlags__enable_view_transitions","BookNav__enable_tenant_cache_key"],null,null,"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE","https://developerscontentserving-pa.clients6.google.com","AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k","https://developerscontentsearch-pa.clients6.google.com",1,4,null,"https://developerprofiles-pa.clients6.google.com",[1,"developers","Google for Developers","developers.google.com",null,"developers-dot-devsite-v2-prod.appspot.com",null,null,[1,1,[1],null,null,null,null,null,null,null,null,[1],null,null,null,null,null,null,[1],[1,null,null,[1,20],"/recommendations/information"],null,null,null,[1,1,1],[1,1,null,1,1]],null,[null,null,null,null,null,null,"/images/lockup-new.svg","/images/touchicon-180-new.png",null,null,null,null,1,null,null,null,null,null,null,null,null,1,null,null,null,"/images/lockup-dark-theme-new.svg",[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[6,1,14,15,20,22,23,29,32,36],null,[[null,null,null,[3,7,10,2,39,17,4,32,24,11,12,13,34,15,25],null,null,[1,[["docType","Choose a content type",[["Tutorial",null,null,null,null,null,null,null,null,"Tutorial"],["Guide",null,null,null,null,null,null,null,null,"Guide"],["Sample",null,null,null,null,null,null,null,null,"Sample"]]],["product","Choose a product",[["Android",null,null,null,null,null,null,null,null,"Android"],["ARCore",null,null,null,null,null,null,null,null,"ARCore"],["ChromeOS",null,null,null,null,null,null,null,null,"ChromeOS"],["Firebase",null,null,null,null,null,null,null,null,"Firebase"],["Flutter",null,null,null,null,null,null,null,null,"Flutter"],["Assistant",null,null,null,null,null,null,null,null,"Google Assistant"],["GoogleCloud",null,null,null,null,null,null,null,null,"Google Cloud"],["GoogleMapsPlatform",null,null,null,null,null,null,null,null,"Google Maps Platform"],["GooglePay",null,null,null,null,null,null,null,null,"Google Pay & Google Wallet"],["GooglePlay",null,null,null,null,null,null,null,null,"Google Play"],["Tensorflow",null,null,null,null,null,null,null,null,"TensorFlow"]]],["category","Choose a topic",[["AiAndMachineLearning",null,null,null,null,null,null,null,null,"AI and Machine Learning"],["Data",null,null,null,null,null,null,null,null,"Data"],["Enterprise",null,null,null,null,null,null,null,null,"Enterprise"],["Gaming",null,null,null,null,null,null,null,null,"Gaming"],["Mobile",null,null,null,null,null,null,null,null,"Mobile"],["Web",null,null,null,null,null,null,null,null,"Web"]]]]]],[1,1],null,1],[[["UA-24532603-1"],["UA-22084204-5"],null,null,["UA-24532603-5"],null,null,[["G-272J68FCRF"],null,null,[["G-272J68FCRF",2]]],[["UA-24532603-1",2]],null,[["UA-24532603-5",2]],null,1],[[12,9],[1,1],[16,13],[4,3],[6,5],[14,11],[13,10],[5,4],[3,2],[11,8],[15,12]],[[1,1],[2,2]]],null,4,null,null,null,null,null,null,null,null,null,null,null,null,null,"developers.devsite.google"],null,"pk_live_5170syrHvgGVmSx9sBrnWtA5luvk9BwnVcvIi7HizpwauFG96WedXsuXh790rtij9AmGllqPtMLfhe2RSwD6Pn38V00uBCydV4m",1]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>