Apps Script

Here are some examples of tools, templates and apps I have created using Apps Script. For most of them, you will be able to re-use the code for your own projects once I take the time to create copies available for download. If you're in a hurry or simply curious, simply message me.

Productivity

  • Action item tracker – automatically centralising action items from various documents and sending reminders when deadlines are approaching; something simple that is always useful for any project involving multiple team members.
  • Centralised to-do list – a personal, automated to-do list, automatically hiding finished tasks and sorting them, as well as using conditional formatting and checkboxes to display things nicely; this comes associated with a Google form to easily submit tasks and works offline. An Action on Google was also developed to also be able to add a task verbally and to potentially hear out remaining tasks for the day. This to-do list has also been supplemented with a "regular reminders" section, which I've been pondering to spin off as its own project/product: those reminders touch upon various matters – administrative (e.g. passport renewal), medical (e.g. vaccine injection renewal), financial (e.g. tax returns, bills), entertainment (e.g. checking latest film releases), etc. – that always need to come back to my attention on a regular basis (every X days, weeks, months or years).
  • Meeting countdown timer – a simple countdown to finish meetings on time but without being distracted by minutes trickling down (the countdown shows remaining time in increments of 5 minutes, then 1 minute once close to reaching zero).
  • Easy calendaring – scheduling everything in a spreadsheet and automatically porting it all into a calendar; very useful when planning for complex travel schedules and team offsites.
  • Custom emailing – otherwise known as "mail merge", automatically sending personalised emails to various recipients; expect response rates from your recipients to go from 30% (when emailing them in a group) to 80% (when emailing them individually).
  • Summary generation – automatically generating summaries of work done from emails sent to a specific email address by team members; useful to easily share what everyone has been working on over the past week, and what they are planning to do.
  • Daily updates – capturing one-line snippets sent over email by each team member and sending a daily, nicely-formatted summary email that also includes excerpts from books I have read. This came to my mind after reading about Ray Dalio's Daily Update Tool.
  • People app – recording all the personal notes I take of people I meet professionally or personally. These are not action items (captured in the “centralised to-do list" mentioned above) but biographical details that are worth remembering for the next time I meet those people (and show that I care). My memory is simply not good enough at times (not aided by the fact that I do interact with a number of people); that tool is also a better option than the emails I would otherwise send to myself and retrieve prior to meetings. Added bonus of the app: I can easily add new details via a mobile-friendly form and the underlying spreadsheet automatically displays the latest 3 updates per person, which also get sent to me an hour before I meet with the corresponding individuals (based on the meetings present in my calendar). An additional feature, which I haven't developed yet, would be for me to get the same information attached to any new email I receive from someone I haven't heard of in X months.

Bots

  • Hangouts chatbot – creating my own clone at work using the Hangouts Chat API; for now, it's a dumb, rule-based chatbot, but I'll see if I can add some Machine Learning functionality (it would be great if Dialogflow could be integrated, just like I used for the Action on Google mentioned above).

Education

  • Teacher scoring – automatically creating access-restricted spreadsheets for students, displaying their scores, rankings, and teacher comments.

Content creation & distribution

  • Website creation – creating properly HTML-formatted webpages from Google documents; bonus: this script generates a Bootstrap-compliant website, with automatically-generated indexes of stories (this is what I'm using for this website, then hosting everything onto Firebase).
  • Chapter-by-chapter distribution – sharing creative work on a piece-meal basis and depending on access rights of potential readers (in particular to check for mandatory age requirements in the case of art forms not suitable for children); also a good way to see which book chapters prove popular and where readers lose interest.
  • Update about children – automatically updating Google documents (one for each child) based on the input submitted in a form. I created this for my brother so he can more easily keep track of key information related to his children (health, school, extracurricular activities) and which he needs to share with his ex-wife. Features include: a review stage for each content piece submitted through the form; auto-validation of content after 36 hours; grouped email notifications to the other party; hiding of data that has been fully processed; detection of new categories, transformed into corresponding document headings; specific style added to actions required from the other party.

Financial

  • Asset portfolio tracking – consisting of alerts automatically notifying me over email when market values and other asset classes reach specific thresholds, whether upwards or downwards; market values include currencies (USD, CHF, EUR, GBP, IDR) and stock (GOOG, CAC40), while other asset classes include loan repayment deadlines of funds I have lent and accounts which can incur fees depending on minimum/maximum values.
  • Dying with nothing – computing multiple scenarios to know how much to spend every month on leisure & entertainment with the goal to die with nothing left in my bank account. This is inspired from the book Die with Zero. The dichotomy computation is quite elegant, as well as all the various settings that I can play with: retirement ages, life expectancy, decrease in health, inflation & interest rates, foreign exchange rates, basic but also health expenses, rent, etc. If you're interested, contact me and I'll share a template for you to play with.

Well-being & sports

  • Happiness tracker – allowing to self-track or track someone else's happiness level (on a range from 0 to 10) with a chart that updates automatically and with an email notification to someone who cares when happiness levels drop below a certain threshold.
  • Weather – notifying of any upcoming sunny day (with a maximum cloud coverage for that day, or a low probability of rain) or any upcoming day with a temperature above a certain threshold, over the next 7 days, for any location in the world of my choosing. This uses the OpenWeather API (I also have a version working with the AccuWeather API but it provides less data and only for the upcoming 4 days). Any global API is not necessarily as reliable as local weather services but at least it's free and works for any location worldwide. My code could obviously equally work to notify of any upcoming day with a high chance of rain or temperatures going below a certain threshold. I designed this to better plan my weekends and my meetings during the work week.
  • Fitness competition – inciting participants to walk more by creating competitions and daily leaderboards (total number of steps, cumulative number of times ranking first, cumulative number of points, etc.); this captures Google Fit data through its API and sends an email every day/week to announce results – see the screenshot below.
  • Volleyball court booking – making it easier and quicker to book the public beach volleyball courts in Letten in Zürich. The current setup is to go around the courts and ask who's playing next; it's sometimes unclear or confusing and always time-consuming when either a simple pen & paper solution or this simple digital solution could do the job. The form allows to create a booking (no login required), cancel a booking, mark it as complete (and automatically create a new booking if requested) and change the name on the boooking. The form is updated live with each submission – see the form in operation.

Miscellaneous

  • Predictions – the infrastructure for making my own predictions, reusing code from the "People app" (for automatically updating the prediction input form with the latest categories) and the "Centralised to-do list" (for capturing the latest form submission, for sorting rows, and for sending reminder emails when prediction deadlines have expired).