← ClaudeAtlas

google-apps-scriptlisted

Comprehensive guide for Google Apps Script development covering all built-in services (SpreadsheetApp, DocumentApp, GmailApp, DriveApp, CalendarApp, FormApp, SlidesApp), triggers, authorisation, error handling, and performance optimisation. Use when automating Google Sheets operations, creating Google Docs, managing Gmail/email, working with Google Drive files, automating Calendar events, implementing triggers (time-based, event-based), building custom functions, creating add-ons, handling OAuth scopes, optimising Apps Script performance, working with UrlFetchApp for API calls, using PropertiesService for persistent storage, or implementing CacheService for temporary data. Covers batch operations, error recovery, and JavaScript ES6+ runtime. Do NOT use for standalone Node.js scripts, Google Cloud Functions, Cloud Run, or any non-Apps-Script JavaScript runtime - those use different APIs and quotas.
henkisdabro/wookstar-claude-plugins · ★ 86 · Data & Documents · score 75
Install: claude install-skill henkisdabro/wookstar-claude-plugins
# Google Apps Script ## Overview Cloud-based JavaScript platform for automating Google Workspace services. Server-side V8 runtime with automatic OAuth integration across Sheets, Docs, Gmail, Drive, Calendar, and more. ## Core Services 1. **SpreadsheetApp** - Google Sheets automation (read, write, format, data validation) 2. **DocumentApp** - Google Docs creation and editing 3. **GmailApp & MailApp** - Email operations (send, search, manage labels) 4. **DriveApp** - File and folder management, sharing, permissions 5. **CalendarApp** - Calendar events, recurring appointments, reminders 6. **Triggers & ScriptApp** - Time-based and event-driven automation ## Quick Start ```javascript function generateWeeklyReport() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheetByName('Data'); const data = sheet.getRange('A2:D').getValues(); const report = data.filter(row => row[0]); const summarySheet = ss.getSheetByName('Summary') || ss.insertSheet('Summary'); summarySheet.clear(); summarySheet.appendRow(['Name', 'Value', 'Status']); report.forEach(row => summarySheet.appendRow([row[0], row[1], row[2]])); MailApp.sendEmail({ to: Session.getEffectiveUser().getEmail(), subject: 'Weekly Report Generated', body: `Report generated with ${report.length} records.` }); } ``` ## Best Practices - **Batch operations** - read/write ranges in bulk, never cell-by-cell in loops - **Cache data** - use CacheService (25 min TTL) for frequent