Agent skill · Backend & API

google-apps-script

Build Google Apps Script automation for Sheets and Workspace. Custom menus, triggers (onEdit / time-driven / form submit), dialogs, sidebars, email batches, PDF export, external API. Use whenever the user wants to automate a Google Sheet, build a Sheets menu / sidebar / dialog, hit a Sheets row from email or a webhook, schedule a Sheets workflow, or asks 'how do I script this in Sheets'.

jezwebgithub.com/jezwebGitHub ↗
claude-codeMIT
Install
npx skills add jezweb/claude-skills --skill google-apps-script --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 1
SKILL.md size: 18 KB
Bundled scripts: none
Requires: claude-code-only
Path: plugins/integrations/skills/google-apps-script/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 954
Language: Python

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

Review
written from the skill's own SKILL.md · Aug 5, 2026

What it does

Build automation scripts for Google Sheets and Workspace apps. Scripts run server-side on Google's infrastructure with a generous free tier.

How it works

  • Produces Apps Script code to be pasted into Extensions > Apps Script, creating custom menus, dialogs, sidebars, and automated triggers (on edit, time-driven, form submit).
  • Generates scripts with a header comment, configuration constants, and an onOpen function to set up menus.
  • Provides a structured Script Structure Template showing public function patterns, a menu setup, and example functions.
  • Includes patterns for UI elements (toasts, alerts, prompts) and a sidebar example using google.script.run for server calls.
  • Demonstrates triggers: simple onEdit, and installable triggers (via ScriptApp.newTrigger) for time-driven, onEdit with full permissions, and onFormSubmit.
  • Shows examples for emailing from Sheets, exporting PDFs, and external API calls via UrlFetchApp.
  • Emphasizes batch data operations (getRange().getValues() / setValues()) for performance.
  • Describes data validation, Properties Service, and common workflows like auto-archiving, duplicate highlighting, batch emails, and a summary dashboard generation across multiple sheets.

When to use it

Use when you want to automate a Google Sheet workflow, build a Sheets menu / sidebar / dialog, trigger actions from sheet edits, schedule tasks, or respond to form submissions. Suitable for automations that involve email, PDFs, and API integrations within Google Workspace.

What it can touch

  • Extensions > Apps Script (where code is pasted)
  • SpreadsheetApp, Ui, HtmlService, MailApp, UrlFetchApp, UrlFetchApp, Cache/Properties services (as shown in examples)
  • ScriptApp for creating triggers
  • Html/Client-server communication via google.script.run in sidebars

Caveats

  • Public functions (no trailing underscore) are required for dialog access and menu actions; underscore-suffixed functions are private and cannot be called from client HTML.
  • Bulk read/write patterns are emphasized for performance; individual cell loops are discouraged.
  • Some operations (like PDF export URL construction) rely on undocumented URL parameters and may vary.
  • OAuth consent is required on first run for unverified scripts; users must approve via Advanced > Go to [Project Name] > Allow.
  • Runtime and quota details follow Google Apps Script limitations (no explicit numeric values provided here beyond examples in the snippets).
From the SKILL.md

# Google Apps Script Build automation scripts for Google Sheets and Workspace apps. Scripts run server-side on Google's infrastructure with a generous free tier. ## What You Produce - Apps Script code pasted into Extensions > Apps Script - Custom menus, dialogs, sidebars - Automated triggers (on edit, time-driven, form submit) - Email notifications, PDF exports, API integrations ## Workflow ### Step 1: Understand the Automation Ask what the user wants automated. Common scenarios: - Custom menu with actions (report generation, data processing) - Auto-triggered behaviour (on edit, on form submit, scheduled) - Sidebar app for data entry - Email notifications from sheet data - PDF export and distribution ### Step 2: Generate the Script Follow the structure template below. Every script needs a header comment, configuration constants at top, and `onOpen()` for menu setup. ### Step 3: Provide Installation Instructions All scripts install the same way: 1. Open the Google Sheet 2. **Extensions > Apps Script** 3. Delete any existing code in the editor 4. Paste the script 5. Click **Save** 6. Close the Apps Script tab 7. **Reload the spreadsheet** (onOpen runs on page load) ### Step 4: First-

What's inside
Steps it walks through
  1. What You Produce
  2. Workflow
  3. Step 1: Understand the Automation
  4. Step 2: Generate the Script
  5. Step 3: Provide Installation Instructions
  6. Step 4: First-Time Authorisation
  7. Script Structure Template
  8. Critical Rules
  9. Public vs Private Functions
  10. Batch Operations (Critical for Performance)
  11. V8 Runtime
  12. Flush Before Returning
  13. Simple vs Installable Triggers
  14. Custom Spreadsheet Functions
More from claude-skills
All skills →
About this skill
What does the google-apps-script skill do?

Build Google Apps Script automation for Sheets and Workspace. Custom menus, triggers (onEdit / time-driven / form submit), dialogs, sidebars, email batches, PDF export, external API. Use whenever the user wants to automate a Google Sheet, build a Sheets menu / sidebar / dialog, hit a Sheets row from email or a webhook, schedule a Sheets workflow, or asks 'how do I script this in Sheets'.

How do I install it?

Run `npx skills add jezweb/claude-skills --skill google-apps-script --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From jezweb/claude-skills, a repository with 954 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going