• Twitter
  • Github
  • Youtube
  • Gitter
  • Slideshare
  • LinkedIn

Desktop Liberation

The definitive resource for Google Apps Script and Microsoft Office automation

  • Home
    • About Desktop Liberation
    • Reusing code from this site
    • My Public GAS Library
    • Privacy and Usage Policy
  • Blog
    • Access all published posts
  • Downloads
  • APIS
    • Google API
      • Slides
      • Chrome
      • Docs
      • Drive
      • Execution
      • KnowledgeGraph
      • People
      • Sheets
    • Microsoft API
      • OneDrive
    • REST
    • Video Intelligence
    • Vimeo
    • Vision
  • Apps Script & Java Script
    • Apps Script v8
    • Add-ons
    • Javascript
    • From VBA to Google Apps Script
    • Office JavaScript API
    • Snippets
  • Cloud Platform
    • BigQuery
    • Cloud Functions
    • Firebase
    • Kubernetes
    • Google Cloud Platform
    • Google Cloud Storage
  • Databases
    • BigQuery
    • CockroachDB
    • Database abstraction
    • Elastic
    • Firebase
    • GraphQL
  • Office & VBA
    • From VBA to Google Apps Script
    • Optimization
  • Elastic
  • Full Stack
  • GraphQL
  • Kubernetes
  • Node.js
  • Redis- Vuejs
Random blog posts
  • [ June 21, 2021 ] Google Apps Script – What a difference 5 years make – Episode 2 Apps Script & Java Script
  • [ June 15, 2021 ] Google Apps Script – What a difference 5 years make Apps Script
  • [ October 16, 2019 ] Looping through files in a directory VBA
  • [ July 15, 2019 ] Use a spreadsheet as a database in 5 minutes Microsoft Office & VBA
  • [ June 13, 2019 ] 2019 – a decade in Apps Script Yearly posts
  • [ February 7, 2019 ] 2018 – yet another year in and out of Google Apps Script Yearly posts
  • [ September 22, 2017 ] Apps Script Back end platform – some thoughts on a different approach Apps Script & Java Script
  • [ August 3, 2017 ] Is it still worth creating blogposts ? Yearly posts
  • [ March 3, 2017 ] How about free VM for Chromebook owners? Docker
  • [ December 28, 2016 ] 2016 – Another year in Apps Script Yearly posts
  • [ December 1, 2016 ] App Maker – Build engaging custom apps on G Suite with minimal coding AppMaker
  • [ August 19, 2016 ] Using an Apps Script webapp to distribute assets Apps Script & Java Script
  • [ August 4, 2016 ] Change from project key to scriptid Apps Script & Java Script
  • [ May 13, 2016 ] What I’ve learned from my first play around with BigQuery/Sheets integration BigQuery
  • [ April 13, 2016 ] Targeting training material for Google Apps Scripters Apps Script & Java Script
  • [ March 14, 2016 ] A belated post – 2015 – a year in Apps Script Yearly posts
  • [ November 6, 2015 ] Null should mean something Apps Script & Java Script
  • [ June 25, 2015 ] Running JavaScript directly from Excel makes ‘going Google’ easier Javascript
  • [ March 24, 2015 ] GitHub and VBA integration GitHub
  • [ February 6, 2015 ] Some best practise notes on DbAbstraction usage Database abstraction
  • [ January 21, 2015 ] First shot at Polymer Deprecated
  • [ January 4, 2015 ] A year in the desktop liberation blog Yearly posts
  • [ January 1, 2015 ] A year in apps script and my bucket list Yearly posts
  • [ December 12, 2014 ] Google Apps Script locking and optimum wait times and the golden ratio Apps Script & Java Script
  • [ September 22, 2014 ] How many requests a second can you throw at your Google Apps Script webapp Apps Script & Java Script
  • [ July 24, 2014 ] Using universal analytics to track your Google Apps Script library usage Apps Script & Java Script
  • [ May 29, 2014 ] Parse.com as a substitute for ScriptDB in Google Apps Script Apps Script & Java Script
  • [ May 16, 2014 ] Eurovision song contest voting oddities – interactive visualization Google Visualization
  • [ May 1, 2014 ] Universal analytics – really hotting up Google Analytics
  • [ March 17, 2014 ] I’ve just been recognised as a Google Developer Expert Yearly posts
  • [ February 6, 2014 ] Google Universal Analytics – getting insight into desktop apps too Microsoft Office & VBA
  • [ February 5, 2014 ] More cool stuff you can do with Google Apps ScriptDb Apps Script & Java Script
  • [ January 27, 2014 ] Are the new Google Sheets faster than the old? Sheets specific
  • [ January 8, 2014 ] Google Apps Script Content Service – Cross Domain Puzzle Apps Script & Java Script
  • [ January 1, 2014 ] Get post data from Blogger into a google Spreadsheet with the Google Blogger API Sheets specific
  • [ December 30, 2013 ] Blog posts’ half life – why bother? Analytics
  • [ December 13, 2013 ] Accessing parse.com and scriptDB noSQL databases from Excel Databases
  • [ December 3, 2013 ] Dealing with Unix timestamps in Excel Microsoft Office & VBA
  • [ November 28, 2013 ] Shared Encryption/decryption library for Google Apps Script. Apps Script & Java Script
  • [ November 20, 2013 ] Tracking your Excel Workbooks with Google Analytics Google Analytics
  • [ November 15, 2013 ] Mitigating for changes in REST API rules and formats Microsoft Office & VBA
  • [ October 30, 2013 ] XML and JSON conversion in VBA Json
  • [ September 30, 2013 ] Excel custom functions that can lookup data in Google Apps Script ScriptDB From VBA to Google Apps Script
  • [ September 27, 2013 ] REST access to list management cloud based functions – plus a VBA example Microsoft Office & VBA
  • [ September 19, 2013 ] Validation and lookups using shared scriptDB lists scriptDB
  • [ September 1, 2013 ] Pinyin Tone converter – Google Apps Script custom functions Apps Script & Java Script
  • [ August 9, 2013 ] What does Google Autocomplete show all over the world ? Google Search
  • [ August 6, 2013 ] Google Docs to Excel Asynchronously Docs
  • [ July 9, 2013 ] Using ScriptDB as a noSQL database for non-Google Apps Script clients Databases
  • [ July 3, 2013 ] Concept browser for site navigation with d3 Apps Script & Java Script
  • [ July 1, 2013 ] Sankey diagrams direct from Excel – update Microsoft Office & VBA
  • [ June 26, 2013 ] Exploring blogs and sites by d3 tag visualization and effect on site visits Apps Script & Java Script
  • [ June 18, 2013 ] Google Fusion Big Data and D3 integration: flight data visualization D3
  • [ June 18, 2013 ] jQuery promises and exponential backoff Apps Script & Java Script
  • [ June 5, 2013 ] Playing around with Tableau Public D3
  • [ June 3, 2013 ] Visualization of Sites to Tags with d3.js D3
  • [ May 28, 2013 ] Create biased random test data in VBA Microsoft Office & VBA
  • [ May 21, 2013 ] Digest authentication and Google Apps Script Apps Script & Java Script
  • [ May 14, 2013 ] parse.com and d3.js mashup D3
  • [ May 8, 2013 ] Connections in electoral data – D3 and VBA follow on from oUseful post ScraperWiki
  • [ May 6, 2013 ] Mashing up electoral data – follow on from oUseful post ScraperWiki
  • [ April 30, 2013 ] Finding nearest match and other palettes in other fixed color schemes Colors
  • [ April 24, 2013 ] Parse.com and ScriptDB performance comparison Colors
  • [ April 19, 2013 ] More playing around with color, parse.com, scriptDb and Google Apps Script Apps Script & Java Script
  • [ April 15, 2013 ] Very interesting GAS performance results – run locally using htmlservice Apps Script & Java Script
  • [ April 10, 2013 ] Executing Google Apps Script Code directly in javascript – GAS as a CDN Apps Script & Java Script
  • [ April 3, 2013 ] Google Apps Script “execution time exceeded” woes Apps Script & Java Script
  • [ April 2, 2013 ] Google Apps Script Color Space Conversions. Apps Script & Java Script
  • [ March 30, 2013 ] Automatic documentation from VBA – including function arguments Microsoft Office & VBA
  • [ March 25, 2013 ] Using jSon/javaScript like structures in VBA Json
  • [ March 23, 2013 ] VBA procedures for CIE LabLch and HSL color scheming Colors
  • [ March 14, 2013 ] Playing around with Color on Google Apps Script Apps Script & Java Script
  • [ March 13, 2013 ] Example of automatic code updating for VBA VBA
  • [ March 12, 2013 ] VBA string manipulation optimization with custom classes Microsoft Office & VBA
  • [ March 8, 2013 ] Inherit link colors from cells – D3 sankey from Excel Microsoft Office & VBA
  • [ March 6, 2013 ] Strings and the garbage collector in VBA : optimizing string concatenation VBA
  • [ February 28, 2013 ] API of the Day: facebook fql direct from Excel and Google APPs API Specific
  • [ February 23, 2013 ] Adventures in serializing VBA classes – automatically documenting your modules Microsoft Office & VBA
  • [ February 20, 2013 ] Unused tube stations: discovered via scraperwiki- mapped with Excel and Google Maps Integrating Excel with Maps and Earth
  • [ February 18, 2013 ] Scraperwiki horsemeat data to Sankey, via Excel. Microsoft Office & VBA
  • [ January 21, 2013 ] ‘Hot doughnut’ chart in Excel Colors
  • [ January 11, 2013 ] Can you make any adSense money with a blog ? adsense
  • [ January 10, 2013 ] Calculating a friendly font color based on the fill color – Google Apps Script Colors
  • [ January 7, 2013 ] I’m awarding badges – Google Apps Script integration with Persona and Mozilla Openbadges Badges
  • [ December 20, 2012 ] Playing around with awarding badges on sites Badges
  • [ December 9, 2012 ] Getting physical again No category
  • [ December 8, 2012 ] Selecting and publishing a function from a web source Apps Script & Java Script
  • [ December 7, 2012 ] Publish and prettify source directly from a url Apps Script & Java Script
  • [ December 2, 2012 ] Zoomable d3.js partition charts straight from Excel D3
  • [ November 22, 2012 ] Select, prettify publish snippets in multiple languages from within a GIST module Apps Script & Java Script
  • [ November 22, 2012 ] Selecting specific Gist and GAS functions for publication Apps Script & Java Script
  • [ November 20, 2012 ] Publishing and prettifying Gists through google apps script Apps Script & Java Script
  • [ November 17, 2012 ] Using Google Cache to persist data across function calls Apps Script & Java Script
  • [ November 12, 2012 ] Google Apps Script Liberation – publishing your stuff Apps Script & Java Script
  • [ November 6, 2012 ] Publishing Google Apps Script code snippets Apps Script & Java Script
  • [ November 5, 2012 ] Google Apps Script – a new day – a new feature Apps Script & Java Script
  • [ November 2, 2012 ] Delegating processing to the cloud from Excel and other platforms Apps Script & Java Script
  • [ November 1, 2012 ] Keeping all those Google Apps script ‘shortcuts’ under control Apps Script & Java Script
  • [ October 31, 2012 ] Somewhere to keep those API keys: google apps script rest library entry Apps Script & Java Script
  • [ October 31, 2012 ] API library entry of the day: use builtwith.com to see how websites are built Apps Script & Java Script
  • Twitter
  • Github
  • Youtube
  • Gitter
  • Slideshare
  • LinkedIn
HomeGoogle Apps Script snippetsCopying to new host location

Copying to new host location

Select a Category

My Books and Videos

going gas

All formats are available from O'Reilly, Amazon and all good bookshops. You can also read a preview on O'Reilly

A video course over about 8 hours and 70 lessons taking you through the basics of Apps Script and JavaScript. Available at O'Reilly, Amazon, Infinite Skills & all good media outlets

Google Apps Script for Beginners: A video course over about 8 hours and 70 lessons taking you through the basics of Apps Script and JavaScript. Available from O'Reilly, Infinite Skills and all good media outlets

bruce mcpherson is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. Based on a work at http://www.mcpher.com. Permissions beyond the scope of this license may be available at code use guidelines

Book : Going Gas

Whether you’re moving from Microsoft Office to Google Docs or simply want to learn how to automate Docs with Google Apps Script, this practical guide shows you by example how to work with each of the major Apps Script services. The book introduces JavaScript basics for experienced developers unfamiliar with the language, and demonstrates ways to build real-world apps using all of the Apps Script services previously covered.

Video: Apps Script for developers

In this Google Apps Script for Developers training course, expert author Bruce Mcpherson will teach you how to customize, enhance, and automate your Google Docs, Sheets, and Gmail with Google Apps Script. This course is designed for the absolute beginner, meaning no previous experience with Google Apps Script is required.

Once you have completed this computer based training course, you will have learned how to customize, enhance, and automate your Docs, Sheets, and Gmail with Google Apps Script.

Video: Apps Script for beginners

The key to using Google Apps Script is understanding its underlying language – JavaScript. The course teaches you enough of the concepts and syntax of JavaScript that you’ll come away with the ability to confidently code Google Apps Script tasks on your own.

  • Twitter
  • Github
  • Youtube
  • Gitter
  • Slideshare
  • LinkedIn

bruce mcpherson is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. Based on a work at http://www.mcpher.com. Permissions beyond the scope of this license may be available at code use guidelines