Global Time Utility (gtime) - A modern, colorful Python CLI utility for global time zone lookup, comparison, and management. It supports fuzzy search, favorites, city comparison, meeting time conversion, and a live/watch mode
Project description
Global Time Utility (gtime)
Stop Googling time zones.
Recorded in Ghostty. Some output may look off in the GIF but works perfectly in a real terminal. Best with Ghostty or Kitty.
If this saves you from one more "what time is it in Tokyo?" search, give it a star.
A modern, colorful Python CLI for global time zone lookup, comparison, and management. Fuzzy search, favorites, live updates, meeting time conversion, and beautiful terminal output.
Installation
# With uv (recommended)
uv tool install gtime
# Or with pip
pip install gtime
# From source
git clone https://github.com/savitojs/gtime.git
cd gtime && uv sync
uv run gtime --help
Quick Start
gtime London # Look up any city (fuzzy search)
gtime add Tokyo Singapore "New York" # Add favorites
gtime # Show all favorites
gtime compare London Tokyo Sydney # Compare times side by side
gtime meeting at "2:00 PM" # Convert across favorites
gtime meeting at "3 PM UTC" # With timezone support
gtime watch # Live monitoring (refreshes every 60s)
Features
Smart search - Fuzzy matching, case-insensitive, works with typos (gtime toky finds Tokyo), and country names (gtime india finds Delhi).
Favorites - Save your most-used cities. Sorted by UTC offset for a natural reading order.
gtime add London Tokyo Mumbai Berlin # Add multiple cities
gtime remove Berlin # Remove a city
gtime # View all favorites
Meeting planner - Convert a meeting time across all your favorite cities. Supports 12/24-hour format and timezone abbreviations.
gtime meeting at "10:00 AM" # Your local time across favorites
gtime meeting at "15:30" # 24-hour format
gtime meeting at "9:00 AM EST" # Eastern Standard Time
gtime meeting at "3 PM UTC" # Coordinated Universal Time
Live watch mode - Real-time updates for favorites or specific cities.
gtime watch # Monitor all favorites
gtime compare London Tokyo --watch # Watch specific cities
GNOME Desktop Widget
Display your favorite cities on your GNOME desktop using the Desktop Widgets (azclock) extension.
Three styles available:
gtime widget # Style A (default) - flags, color-coded time, status
gtime widget b # Grouped by status (Working, Sleeping, etc.)
gtime widget c # Compact cards with hour diff from local
Style A - Flags + color-coded time + status:
🇺🇸 New York 23:05 ● Sleeping UTC-4
🇨🇿 Brno 04:05 +1d ● Sleeping UTC+1
🇮🇳 Delhi 09:35 +1d ● Working UTC+5:30
🇦🇺 Melbourne 14:05 +1d ● Working UTC+11
Style B - Grouped by status:
💻 Working
🇮🇳 Delhi 09:35 +1d
🇦🇺 Melbourne 14:05 +1d
💤 Sleeping
🇺🇸 New York 23:05
🇨🇿 Brno 04:05 +1d
Style C - Compact cards:
🇺🇸 New York 🌙
23:05 ● Sleeping local
🇮🇳 Delhi 🌅
09:35 +1d ● Working +9.5h
Setup
- Install the Desktop Widgets GNOME extension
- Add a widget with a Command Label element
- Set the command to
gtime widget a(orb/c) - Enable Polling with interval
60000(1 minute)
A reference dconf config is included at gtime/widget-azclock-sidebar.dconf:
# Back up first
dconf dump /org/gnome/shell/extensions/azclock/ > backup.dconf
# Import the sidebar layout
dconf load /org/gnome/shell/extensions/azclock/ < gtime/widget-azclock-sidebar.dconf
Development
uv venv .venv && source .venv/bin/activate
uv sync
pytest tests/
Contributions welcome! Fork, branch, make changes, add tests, and open a PR.
License
MIT - see LICENSE.
Report bugs or request features.
Made with ❤️ for developers working across time zones
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gtime-0.8.3.tar.gz.
File metadata
- Download URL: gtime-0.8.3.tar.gz
- Upload date:
- Size: 33.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0650433ff0a07291197c276f8eeb2b270e0dc91a2d2e5a1a40e68372a34b8232
|
|
| MD5 |
04abaf31f79c895e4697903c8dd37702
|
|
| BLAKE2b-256 |
24d9ae581db3184783b9ca7b883ac4c398839ec3e30e65a1ccefbe9cd92d2ab5
|
Provenance
The following attestation bundles were made for gtime-0.8.3.tar.gz:
Publisher:
test.yml on savitojs/gtime
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gtime-0.8.3.tar.gz -
Subject digest:
0650433ff0a07291197c276f8eeb2b270e0dc91a2d2e5a1a40e68372a34b8232 - Sigstore transparency entry: 1635263233
- Sigstore integration time:
-
Permalink:
savitojs/gtime@88511d7396bb2352a313213ba9429fcc3e229ce9 -
Branch / Tag:
refs/tags/v0.8.3 - Owner: https://github.com/savitojs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
test.yml@88511d7396bb2352a313213ba9429fcc3e229ce9 -
Trigger Event:
push
-
Statement type:
File details
Details for the file gtime-0.8.3-py3-none-any.whl.
File metadata
- Download URL: gtime-0.8.3-py3-none-any.whl
- Upload date:
- Size: 27.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
98b8c0d051fa149c7e1fb701330a76387ab18e05df2f0d66b7bd9ff64d2ccaae
|
|
| MD5 |
2b61bf917a709c622fac19edcb1ba68b
|
|
| BLAKE2b-256 |
4d71749f7bde88c21b1c431b9dd7ef8793994f2cd84e90f3d73c78aa632d49ab
|
Provenance
The following attestation bundles were made for gtime-0.8.3-py3-none-any.whl:
Publisher:
test.yml on savitojs/gtime
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gtime-0.8.3-py3-none-any.whl -
Subject digest:
98b8c0d051fa149c7e1fb701330a76387ab18e05df2f0d66b7bd9ff64d2ccaae - Sigstore transparency entry: 1635263251
- Sigstore integration time:
-
Permalink:
savitojs/gtime@88511d7396bb2352a313213ba9429fcc3e229ce9 -
Branch / Tag:
refs/tags/v0.8.3 - Owner: https://github.com/savitojs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
test.yml@88511d7396bb2352a313213ba9429fcc3e229ce9 -
Trigger Event:
push
-
Statement type: