A Google Apps Script library for intelligent task automation, integrating Google Tasks, Todoist, Google Calendar, and Gemini AI.
Sterling is a Google Apps Script library that you deploy once and use across multiple projects.
1. Node.js and npm
- Download from nodejs.org
2. Google Cloud Project
Create a new Google Cloud Project:
- Go to Google Cloud Console
- Create a new project (or select existing)
- Note your Project Number from the Dashboard (you'll need this later)
📚 How to find your project number
Note: Apps Script will automatically request permissions for required services (Tasks, Calendar, Drive, etc.) when you first run the script.
# Install clasp (Google Apps Script CLI)
npm install -g @google/clasp
clasp login
# Clone Sterling
git clone https://github.com/Portauw/sterling.git
cd sterling
# Create Apps Script project and push files
clasp create --type standalone --title "Sterling Library"
clasp push
# Open in Apps Script editor
clasp open-scriptIn the Apps Script editor:
-
Link Google Cloud Project:
- Click Project Settings → Change project
- Enter your GCP project number
-
Deploy as Library:
- Click Deploy → New deployment
- Select type: Library
- Click Deploy and copy the Script ID
-
Share Access:
- Give view permissions to anyone who will use the library
📚 How to use Sterling in your projects →
- Examples & Setup Guide - Complete setup instructions and usage examples
- API Reference - Detailed API documentation
- Architecture - System flows and technical architecture
- AGENTS.md - Comprehensive technical documentation and implementation details
Sterling provides intelligent automation for your task management workflow:
- Automatically sync Google Tasks to Todoist
- Mark completed tasks in Google Tasks
- Smart label assignment based on task type
- Enhance tasks with Gemini AI insights
- Context-aware suggestions using Drive files
- Natural language task understanding
- Conversational task refinement with comments
- Automatic meeting preparation task creation
- Smart scheduling that respects your work hours
- AI-generated meeting prep prompts
- Just-in-time task preparation
- Automatic Drive file sync for AI context
- Smart caching (uploads only changed files)
- Supports multiple folder sources
- 10-minute TTL for fresh context
- Daily briefing with critical focus items
- Quick wins identification (2-minute tasks)
- Schedule conflict detection
- Priority task highlighting
The Sterling.main() function returns a Processor instance with these methods:
| Method | Description | Typical Schedule |
|---|---|---|
processGoogleTasks() |
Sync Google Tasks → Todoist | Every 10 minutes |
enrichTodoistTasks() |
AI-enhance tasks with 'enrich' label | Every 10 minutes |
processCalendarItems() |
Create meeting preparation tasks | Daily, 6-7 AM |
processContextData(forceUpdate?) |
Upload Drive files to AI context | Every 5 minutes |
| Method | Description | Typical Schedule |
|---|---|---|
enrichTodaysTasksForLabel(label) |
Batch enrich tasks with specific label | Daily, 7-8 AM |
generateDailyBriefing() |
Create executive summary task | Daily, 6-7 AM |
generateQuickWinsSummary() |
Identify 2-minute tasks from inbox | Daily, 6-7 AM |
📚 See detailed API documentation →
📚 See complete architecture documentation →
Sterling is open source software licensed under the MIT License.
Contributions are welcome! Feel free to:
- Report bugs and request features via GitHub Issues
- Submit pull requests
- Fork and adapt for your own use
Built with ❤️ by Pieter Portauw
