Convert a single date/time into a nicely formatted summary across many time zones.
Project description
meetingtime
Convert one date + time into a nicely formatted summary across many time zones.
meetingtime --from America/Toronto --date 20260710 --time 0900 \
--to Toronto London 'Los Angeles' Tokyo
Toronto (Jul 10, 09:00 EDT); London (Jul 10, 14:00 BST); Los Angeles (Jul 10, 06:00 PDT); Tokyo (Jul 10, 22:00 JST)
Install / run
With uv (no install needed):
uvx --from /path/to/meetingtime meetingtime --from Toronto --date 20260710 --time 0900 --to London Tokyo
Or install it as a persistent tool:
uv tool install /path/to/meetingtime
meetingtime --from Toronto --date 20260710 --time 0900 --to London Tokyo
Or with plain pip:
pip install /path/to/meetingtime
Usage
meetingtime --from ZONE --date YYYYMMDD --time HHMM [--to ZONE [ZONE ...]]
[--profile NAME] [--exclude ZONE [ZONE ...]]
[--format TEMPLATE] [--date-format STRFTIME] [--time-format STRFTIME]
[--separator SEP] [--config PATH]
--from— source time zone. Accepts an IANA name (America/Toronto) or a friendly city alias (Toronto). Seesrc/meetingtime/aliases.pyfor the full list.--date— source date asYYYYMMDD, e.g.20260710.--time— source time as 24-hourHHMM, e.g.0900.--to— one or more target zones/cities. If--profileis given, these are added on top of the profile's zones. If omitted with no profile, falls back to thetimezoneslist in your config file, or just the source zone.--profile— use a named[profiles.NAME]section from the config file as the base zone list.--exclude— zones/cities to remove from the final output. Takes precedence over all other zone sources including--toand--profile.--format— a format name defined in[format], a literal template string using{city} {date} {time} {abbr} {tz}placeholders, or the special valuemarkdownfor a table. Default:'{city} ({date}, {time} {abbr})'.--date-format— strftime pattern for the{date}field. Default:%b %-d(e.g.Jul 10). Example:--date-format '%Y-%m-%d'→2026-07-10. Can also be set viadate_formatin the config file.--time-format— strftime pattern for the{time}field. Default:%H:%M(e.g.14:00). Example:--time-format '%I:%M %p'→02:00 PM. Can also be set viatime_formatin the config file.--separator— string used to join entries (default'; ').--config— path to a TOML config file (default~/.config/meetingtime/config.toml).
Config file
Avoid retyping your team's zones every time by creating
~/.config/meetingtime/config.toml:
date_format = '%Y-%m-%d'
time_format = '%I:%M %p'
[format]
short = '{city} {time} {abbr}'
compact = '{city} ({time})'
[profiles.work]
timezones = ['America/Toronto', 'Europe/London', 'Asia/Tokyo']
format = 'short'
[profiles.asia]
timezones = ['Asia/Singapore', 'Asia/Hong_Kong', 'Asia/Tokyo']
See examples/config.toml for a more complete example.
Then run with a profile:
meetingtime --from Toronto --date 20260710 --time 0900 --profile work
Add extra zones on top of the profile:
meetingtime --from Toronto --date 20260710 --time 0900 --profile work --to Singapore
Exclude a zone from the output:
meetingtime --from Toronto --date 20260710 --time 0900 --profile work --exclude Tokyo
Markdown table output
meetingtime --from Toronto --date 20260710 --time 0900 --to Toronto London Tokyo --format markdown
| City | Time |
| --- | --- |
| Toronto | Jul 10, 09:00 EDT |
| London | Jul 10, 14:00 BST |
| Tokyo | Jul 10, 22:00 JST |
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 meetingtime-0.3.1.tar.gz.
File metadata
- Download URL: meetingtime-0.3.1.tar.gz
- Upload date:
- Size: 21.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3baee2375eb97117d7d4bdadce77ffca89a682de240feb510da2c5a684677ca6
|
|
| MD5 |
1e9027bc31c6e28a31a864700999c083
|
|
| BLAKE2b-256 |
e7e5ee4b9b0350179d404585a377a881b40d722ad7ee3d4e97a7e4c79a131802
|
File details
Details for the file meetingtime-0.3.1-py3-none-any.whl.
File metadata
- Download URL: meetingtime-0.3.1-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06dc7ac6848a3627a588da2235682d6bffe737e7724c4bfd590e10bd15c6a36a
|
|
| MD5 |
cb4681b917a7a8fd2fa9fd8a29ea4a39
|
|
| BLAKE2b-256 |
4946faa40a9c16c3a021dd3d2c73cec26833bd24824eee1297261c8ad6d69ea0
|