Stop Being Late for Virtual Meetings
Photo by Andy Beales on Unsplash
Tampermonkey script that completely interrupts your workflow to remind you of meetings.
I spent a lot of time in Google Meet (formerly Hangouts). I just counted my meetings for the week, and I have 27 on the calendar (and I have this Friday off). When people ask what I do for a living, I used to say I'm a programmer. Now I say, "I mostly attend virtual meetings."
This post is not really about meetings, their needs, or their effectiveness. It is about getting there on time. I tend to zone out when I'm in the middle of a project, and I have effectively learned to ignore the little toaster notifications that MacOS provides.
I once ran across a nice Chrome extension called Checker Plus for Google Calendarâ„¢ by Jason Savard. There was only one feature that I relied upon. When it was time for a meeting, a new browser window would open in the middle of my screen to alert me. This window got in my way and totally interrupted my workflow. I know most people would hate that, but for me, it was needed to grab my attention and say, "Stop working! It is time for your 1:1 meeting with your boss."
Unfortunately, our company cracked down on tools that are allowed to access our Google accounts. Therefore, I can no longer use that extension as it requires API access to my Google Calendar.
Frustratingly, I found myself being late, or missing meetings altogether again. It was embarrassing.
So I set out to write a replacement that does the same thing, without the need to access my Google account. I came up with the following Tampermonkey script:
1// ==UserScript==2// @name Google Calendar Alert Interrupter3// @namespace http://dustindavis.me/4// @version 0.15// @description Interrupt me to get my attention where there is a meeting!6// @author Dustin Davis7// @match https://calendar.google.com/calendar/*8// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==9// @grant none10// @run-at document-start11// ==/UserScript==1213;(function () {14 'use strict'1516 var alrtScope17 if (typeof unsafeWindow === 'undefined') {18 alrtScope = window19 } else {20 alrtScope = unsafeWindow21 }2223 alrtScope.alert = function (msg) {24 console.log('Intercepted alert: ', msg)2526 window.name = 'gcal'27 var newWin = openWindow('', 900, 600)28 var html = `29 <style>30 body {31 background: #4185f4 }32 section {33 background: black;34 color: white;35 border-radius: 1em;36 padding: 1em;37 position: absolute;38 top: 50%;39 left: 50%;40 margin-right: -50%;41 cursor: pointer;42 transform: translate(-50%, -50%) }43 </style>44 <section id="go">45 <h1>${msg}</h1>46 </section>47 `48 newWin.document.write(html)49 newWin.document.write('<script/>')5051 var g = newWin.document.createElement('script')52 var s = newWin.document.getElementsByTagName('script')[0]53 g.text =54 'document.getElementById("go").addEventListener("click", () => { window.open("", window.opener.name); window.close();})'55 s.parentNode.insertBefore(g, s)56 }5758 function openWindow(url, width, height) {59 var myWindow60 var center_left = screen.width / 2 - width / 261 var center_top = screen.height / 2 - height / 26263 myWindow = window.open(64 url,65 'Title',66 'scrollbars=1, width=' +67 width +68 ', height=' +69 height +70 ', left=' +71 center_left +72 ', top=' +73 center_top,74 )75 myWindow.focus()76 return myWindow77 }78})()
What it Does
This script will basically override the default alert
function on
calendar.google.com
. Instead of showing a browser alert message, it will open
a new window - essentially doing the same thing as my other script by getting my
attention.
Making it Work for You
If you would like to use this script, do the following:
- Install the Tampermonkey extension on your favorite browser.
- Install my script - Google Calendar Alert Interrupter.
- Set up Google Calendar to show alerts in your browser for calendar events. You can do this by going to Settings -> General -> Notification Settings. I have mine set to alert 1 minute before events. I've found I never need more than a 1-minute notice.
- Keep your calendar open all day. I pin my calendar tab to keep it open.