Awesome Open Source
Awesome Open Source

Google Apps Script Development 💯

The Google Apps Script Starker kit supports the new V8 JavaScript runtime that powers Chrome and Node.js. You can write code using modern ECMAScript syntax like Arrow functions, Classes, Template Literals, Destructuring and more.

Google Apps Script Development with ES6

Please follow the 👉 step-by-step video tutorial 👈 for quickly getting started with Apps Script development inside Visual Studio Code.

You can build GSuite add-ons (for Google Docs, Slides, Gmail and Google Sheets), web applications and workflow automation routines with next-generation JavaScript.

The starter kit is used by Digital Inspiration for building popular Google add-ons including Gmail Mail Merge, Google Forms Notifications and Document Studio.

Build with Google Apps Script 🚀

Setting up a modern development environment for building Google Apps Script projects is easy and quick (video tutorial).

You also need to install Node.js which includes the npm package manager.

📦 Getting Started

1. Clone the repository and install npm dependencies and utilities.

git clone https://github.com/labnol/apps-script-starter my-project
cd my-project
npm install

Update: The git clone command adds a .git folder to your folder that pertains to the Apps Script Starter project and not your local project. You should either re-init the repository or use degit to clone the repository.

npx degit labnol/apps-script-starter my-project

2. Log in to Google clasp and authorize using your Google account.

npx clasp login

3. Create a new Google Script bound to a Google Sheet (or set the type as standalone to create a standalone script in your Google Drive)

npx clasp create --type sheets --title "My Apps Script Project" --rootDir ./dist

4. Include the necessary OAuth Scopes in the appsscript.json file

  1. Deploy the project (development)
npm run deploy

The dist directory contains the bundled code that is pushed to Google Apps Script.

6. Deploy the project (production mode)

npm run deploy:prod

Google Apps Script - Setup Development Environment

Enable JavaScript v8 Runtim

Inside the Google Apps Script editor, select View > Show project manifest to open the appsscript.json manifest file in the editor. Add a new runtimeVersion field and set the value to V8. Save your script.

Google Apps Script - v8 Runtime

Development vs Production mode

In production mode, the function names and variable names are shrinked and the output code is auto-minified. The production flag is not recommended for testing and debugging the Apps Script code.

The .claspignore file

The .claspignore file allows you to specify file and directories that you do not wish to not upload to your Google Apps Script project via clasp push.

The default .claspignore file in the Apps Script Starter kit will push all the JS and HTML inside the rootDir folder and ignore all the other files.

🔰 Using Git with Google Apps Script

Google Apps Script - Github

Create a new repository in Github and make a note of the URL of the new repository. Next, open the terminal and run the above commands to push your Apps Script project to Github.

Custom Google Sheet function

Please read the tutorial on how to write custom functions for Google Sheets using Apps Script.

🔥 Meet the Developer

Amit Agarwal is a web geek, Google Developers Expert (GSuite, Google Apps Script) and author of labnol.org, a popular tech how-to website.

He frequently uses Google Apps Script to automate workflows and enhance productivity. Reach him on Twitter or email [email protected]

🌸 Contribution

Contributions and feature requests are welcome. If you are using the Google Apps Script starter package and fixed a bug for yourself, please consider submitting a PR!

🔒 License

MIT License (c) Amit Agarwal


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
javascript (67,992) 
gmail (46) 
google-sheets (44) 
google-apps-script (33) 

Find Open Source By Browsing 7,000 Topics Across 59 Categories

Advertising 📦 10
All Projects
Application Programming Interfaces 📦 124
Applications 📦 192
Artificial Intelligence 📦 78
Blockchain 📦 73
Build Tools 📦 113
Cloud Computing 📦 80
Code Quality 📦 28
Collaboration 📦 32
Command Line Interface 📦 49
Community 📦 83
Companies 📦 60
Compilers 📦 63
Computer Science 📦 80
Configuration Management 📦 42
Content Management 📦 175
Control Flow 📦 213
Data Formats 📦 78
Data Processing 📦 276
Data Storage 📦 135
Economics 📦 64
Frameworks 📦 215
Games 📦 129
Graphics 📦 110
Hardware 📦 152
Integrated Development Environments 📦 49
Learning Resources 📦 166
Legal 📦 29
Libraries 📦 129
Lists Of Projects 📦 22
Machine Learning 📦 347
Mapping 📦 64
Marketing 📦 15
Mathematics 📦 55
Media 📦 239
Messaging 📦 98
Networking 📦 315
Operating Systems 📦 89
Operations 📦 121
Package Managers 📦 55
Programming Languages 📦 245
Runtime Environments 📦 100
Science 📦 42
Security 📦 396
Social Media 📦 27
Software Architecture 📦 72
Software Development 📦 72
Software Performance 📦 58
Software Quality 📦 133
Text Editors 📦 49
Text Processing 📦 136
User Interface 📦 330
User Interface Components 📦 514
Version Control 📦 30
Virtualization 📦 71
Web Browsers 📦 42
Web Servers 📦 26
Web User Interface 📦 210