DEV Community

mamareza
mamareza

Posted on

I got tired of doing timezone math in Google Meet, so I built an open-source, zero-permission Chrome extension

If you work on an asynchronous, globally distributed engineering team, you know this exact feeling:

You're 25 minutes into a Google Meet call with teammates in Tokyo, London, New York, and Mumbai. Discussion runs long, and someone suggests:

"Let's push this architecture review by another 45 minutes, or maybe reschedule for tomorrow morning."

Immediately, everyone freezes and starts doing mental gymnastics:

  • Wait, what time is it for Alex right now?
  • Is 8:00 AM my time 11:30 PM for Priya?
  • Are we asking Yuki to review a pull request at 2:00 in the morning?

Timezones are painful enough on calendars, but during live video calls, calculating them on the fly breaks conversational flow.

To solve this, I built Meet Clocks — a lightweight, open-source Chrome extension that brings ambient timezone awareness and meeting planning directly into Google Meet.


⚡ What it Does

1. 🕒 Stationary Video Tile Badges

Instead of opening world clock tabs or checking widgets on your phone, frosted-glass clock pills pin neatly to each participant's video tile in Google Meet.

Meet Clocks Video Tile Badges

  • Displays local time, timezone offset (+3h, −13h), and day shifts (yesterday / tomorrow).
  • Badges automatically detect free space in tile corners and fade smoothly on hover so they never cover Google Meet's native microphone/camera buttons or attendee names.

2. ☀️ Daylight & Sleep Status Dots

A glanceable visual indicator next to each person's badge:

  • ☀️ Working Hours (09:00 – 18:00): Green dot.
  • 🌙 Off-Hours (18:00 – 22:30 / 06:30 – 09:00): Amber dot.
  • 💤 Night / Sleep (22:30 – 06:30): Red sleep warning so you never schedule late-night calls by accident.

3. ✨ 30-Minute Overlap Scrubber (Golden Hours Finder)

When planning a follow-up call, click Plan in the meeting dock to reveal a 24-hour overlap ribbon with 30-minute intervals:

Meet Clocks Golden Hour Planner

As you drag the slider:

  • All participants' clocks scrub synchronously in 30-minute intervals.
  • The planner automatically flags ✨ Golden Hour when all participants are in their waking/working window, or displays warnings like ⚠️ Yuki Asleep when someone is offline.

You can also test this right now without installing anything via the Interactive 4-Person Web Playground.

4. 💬 1-Click Chat Proposal

Click Share to format and paste a clean summary into Google Meet's in-call chat:

Meeting Timezones:
• Alex: 09:00 AM (New York) ☀️
• Sarah: 10:00 PM (Tokyo) 🌙
• Dev: 06:30 PM (Mumbai) ☀️
— via Meet Clocks
Enter fullscreen mode Exit fullscreen mode

🛠️ Under the Hood: Engineering & Privacy

When building browser extensions for workplace communication tools, privacy and performance must come first.

🔒 1. Zero-Trust Permission Architecture

Most meeting extensions ask for extensive permissions like <all_urls>, web request interceptors, or browser history access.

Meet Clocks is engineered with minimal footprint:

  • Only 1 Permission Requested: "storage" — strictly used to save your local 12h/24h format preference in chrome.storage.local.
  • Scoped Content Script: Only runs on https://meet.google.com/*. It cannot read bookmarks, browsing history, or other open tabs.
  • Zero Media Access: No access to camera, microphone, or meeting speech transcripts.

🌐 2. Ephemeral In-Call Presence

For teammates who both have the extension installed, times sync ephemerally through a lightweight, open-source Cloudflare Worker relay.

  • No user accounts, passwords, or persistent profiles.
  • Room tokens are hashed with SHA-256.
  • All presence data self-destructs 30 minutes after your meeting ends.
  • If you don't want to sync, you can add names and timezones manually offline.

🧩 3. Collision-Free DOM Observation

Google Meet's video layout is highly dynamic — tiles resize, reorder, and split into pagination grids as participants join or share screens.

Rather than thrashing the DOM with frequent re-renders, Meet Clocks uses a throttled MutationObserver combined with bounding-rect collision checks to anchor badges firmly in available negative space without jitter.


🚀 Try It Out (100% Free & Open Source)

If you find it helpful for your distributed team, PRs, feedback, and GitHub stars ⭐ are very welcome!

Top comments (0)