This site runs best with JavaScript enabled.

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 Interrupter
3// @namespace http://dustindavis.me/
4// @version 0.1
5// @description Interrupt me to get my attention where there is a meeting!
6// @author Dustin Davis
7// @match https://calendar.google.com/calendar/*
8// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
9// @grant none
10// @run-at document-start
11// ==/UserScript==
12
13;(function () {
14 'use strict'
15
16 var alrtScope
17 if (typeof unsafeWindow === 'undefined') {
18 alrtScope = window
19 } else {
20 alrtScope = unsafeWindow
21 }
22
23 alrtScope.alert = function (msg) {
24 console.log('Intercepted alert: ', msg)
25
26 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/>')
50
51 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 }
57
58 function openWindow(url, width, height) {
59 var myWindow
60 var center_left = screen.width / 2 - width / 2
61 var center_top = screen.height / 2 - height / 2
62
63 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 myWindow
77 }
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:

  1. Install the Tampermonkey extension on your favorite browser.
  2. Install my script - Google Calendar Alert Interrupter.
  3. 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.
  4. Keep your calendar open all day. I pin my calendar tab to keep it open.

Discuss on Twitter • Edit post on GitHub

Share article
Dustin Davis

Dustin Davis is a software engineer, people manager, hacker, and entreprenuer. He loves to develop systems and automation. He lives with his wife and five kids in Utah.

Join the Newsletter



Dustin Davis