First MailApp run
User clicks Run on sendReport. Google asks to allow the script to send email on their behalf. After approval, the time trigger works overnight.
Scopes are permission strings your script requests to access Google services: read spreadsheets, send email, fetch external URLs, or read Drive files. The first time a function needs a scope, Google shows an authorization dialog. Users and admins must approve before MailApp, UrlFetchApp, or advanced APIs work in triggers and web apps.
Understand scopes when you add services, deploy to a team, or hit Authorization required errors: know which function pulled in which scope and how to minimize scary permission screens.
You do not manually pick scopes in most beginner scripts. Apps Script infers them from the services you call. Focus on scopes when auditing security or Workspace admin review.
Calling MailApp adds email send scope. UrlFetchApp adds external request scope. SpreadsheetApp adds spreadsheet access.
Run a function manually once so the owner approves permissions before triggers run unattended.
View Project Settings > Scopes in the Apps Script editor to see the list for this project.
appsscript.json can declare oauthScopes explicitly for tighter control in advanced projects.
Sensitive or restricted scopes may need Google OAuth verification for public add-ons.
Workspace admins can block or allow certain scopes by policy.
User clicks Run on sendReport. Google asks to allow the script to send email on their behalf. After approval, the time trigger works overnight.
Deploy with Execute as User accessing the app. Each visitor grants scopes the script uses, which can feel heavy for simple tools.
Replace GmailApp with MailApp when you only send mail, reducing requested Gmail read scopes for easier admin approval.
Build this without starting from a blank cell
Use a Better Sheets tool for Apps Script scopes, then watch a walkthrough when you want the full pattern.
Watch how Apps Script scopes works
Guides that explain Apps Script scopes in more depth.
Nothing is better than Google Sheets. You just need to learn more about the unlimited power of Google Sheets. Functions, Formulas, Apps Script and more.
Read post →If you know how to code, you'll learn in this step-by-step tutorial how to code in Google Sheets.
Read post →Automate Google Sheets! Learn to create custom add-ons, decipher code, and automate daily tasks using Apps Scripts. Optimize your spreadsheets.
Read post →The Script Editor is the Apps Script workspace inside your spreadsheet where you write JavaScript that talks to Sheets, Gmail, and other Google services. You open it from Extensions > Apps Script. Every function you save can be run manually, bound to a trigger, or linked from a custom menu.
Read guide →MailApp is an Apps Script service that sends email from your Google account without opening Gmail. You call MailApp.sendEmail with a recipient, subject, and body, often using cell values as the content. It is the fastest way to notify someone when a row is added or a deadline hits in a tracker.
Read guide →A web app turns your script into a URL that runs doGet or doPost when someone visits or posts data. The page can read and write your spreadsheet behind the scenes, which is useful for simple forms, internal tools, and lightweight APIs without standing up a separate server.
Read guide →Triggers tell Apps Script when to run a function: on edit, on open, on a schedule, or when a form is submitted. Simple triggers use reserved names like onEdit. Installable triggers are created in the Apps Script Triggers page and can do more, including running as a specific user or on a timer.
Read guide →Done reading about Apps Script scopes?
Membership unlocks 636+ tutorials, unlimited generators, and every template. Practical lessons. Zero fluff.
Need this once
Jump to a free tool or a single tutorial for this topic.
Learning Sheets for real
Unlock the full library, generators, and templates with membership.