A collection of personal productivity scripts built on Google Apps Script. These tools are designed to automate repetitive tasks across Gmail, Google Drive, and Google Docs, helping you reclaim your time and keep your digital workspace organized.
Open sourced under the MIT License to help others build their own automation workflows.
| Script Name | Description | Documentation |
|---|---|---|
| Gmail to Drive By Labels | Automatically archives emails from specific Gmail labels into a Google Doc (text) and Google Drive Folder (attachments). Features robust text cleaning (removing quoted replies/legal footers) and smart content-based attachment de-duplication. | View Readme |
| Calendar to Sheets | Syncs Google Calendar events into a Google Sheet, keeping rows up to date on changes and deletions. | View Readme |
Deploy and configure any script directly from your browser — no command line or manual ID-hunting required.
- Open the deployment page —
deploy/index.html(or the hosted GitHub Pages version if available). - Review authentication details — the deployment page uses a preconfigured OAuth Client ID defined in
deploy/index.html. If you are using this repository as-is, you do not need to create or enter your own client ID. If you fork this repo and want to use your own, see the GCP setup section below and deploy/index.html for details. - Sign in with Google — authorise the page to create Apps Script projects and read your Gmail labels, calendars, and Drive resources on your behalf.
- Select a script and click Deploy — the page fetches the latest source files from this repository, uploads them to your account, and creates a new Apps Script project with an auto-generated name. A direct link to the new project is shown on success.
- Configure your script (Step 4) — after deployment a Configure panel appears automatically for each deployed script. Use the dropdowns and Drive Pickers to select your resources (Gmail labels, calendars, Google Docs, Drive folders/spreadsheets), then click Save Configuration. This writes the settings directly to your Apps Script project's
config.gs— no manual editing required.
- Browse the Catalog: Check the table above to find a script that fits your needs.
- Open the Folder: Navigate to the specific script folder (e.g.,
/src/gmail-to-drive-by-labels). - Code & Config Convention: Each script places the runnable code in
code.gsand configuration values inconfig.gs. - Copy the Code: Open
code.gs(andconfig.gs) in the folder and copy them into a new Google Apps Script project. - Configure: Update
config.gsvalues (spreadsheet id, sheet name, etc.) and follow the specific setup instructions in that script'sREADME.md.
If you fork this repository and want to use the browser-based deployment page or the GAS Installer Web App, you must manually configure your Google Cloud Platform project once before anything will work.
-
Go to your Google Cloud Console.
-
Navigate to APIs & Services → Library and enable the following APIs:
API Used for Google Apps Script API Creating and updating Apps Script projects (deploy steps 1–3) Gmail API Populating Gmail label dropdowns in Step 4 (configure) Google Calendar API Populating calendar dropdowns in Step 4 (configure) Google Drive API Drive Picker for selecting Docs, folders, and spreadsheets in Step 4 (configure)
-
Navigate to APIs & Services → OAuth consent screen. Set it to External (so anyone can use it).
-
Add the following OAuth scopes so the page can deploy and configure scripts:
Scope Purpose https://www.googleapis.com/auth/script.projectsCreate and update Apps Script projects https://www.googleapis.com/auth/drive.readonlyDrive Picker — browse and select Docs, folders, and sheets https://www.googleapis.com/auth/gmail.labelsRead Gmail label names for the config dropdowns https://www.googleapis.com/auth/calendar.readonlyRead calendar list for the config dropdowns -
Add any test users while your app is in Testing mode (you can publish it later if needed).
- Navigate to APIs & Services → Credentials.
- Click Create Credentials → OAuth client ID.
- Choose Web application.
- Under Authorised JavaScript origins, add the origin(s) from which you will serve
deploy/index.html(e.g.https://<your-username>.github.iofor GitHub Pages, orhttp://localhost:<port>for local testing). - Copy the generated Client ID and replace the
OAUTH_CLIENT_IDconstant indeploy/index.html.
Note your Project Number from the GCP dashboard. You will enter this into the Settings → "Google Cloud Platform (GCP) Project" section of your Installer GAS project if you are using the GAS Installer web app.
Contributions are welcome! If you have ideas for improvements or new scripts to add to the suite:
- Fork the repository.
- Create a feature branch (
git checkout -b feature/AmazingScript). - Commit your changes.
- Open a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
Note: These scripts are provided "as is". Always test on a small batch of data before running on important files.
