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 |
Metadata
Release files for meetingtime 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| meetingtime-0.3.1.tar.gz | 21.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| meetingtime-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.4 kB
Release files / meetingtime-0.3.1.tar.gz
| Download URL | meetingtime-0.3.1.tar.gz |
|---|---|
| Size | 21.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3baee2375eb97117d7d4bdadce77ffca89a682de240feb510da2c5a684677ca6
|
|
BLAKE2b-256 checksum How to use checksums |
e7e5ee4b9b0350179d404585a377a881b40d722ad7ee3d4e97a7e4c79a131802
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / meetingtime-0.3.1-py3-none-any.whl
| Download URL | meetingtime-0.3.1-py3-none-any.whl |
|---|---|
| Size | 10.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
06dc7ac6848a3627a588da2235682d6bffe737e7724c4bfd590e10bd15c6a36a
|
|
BLAKE2b-256 checksum How to use checksums |
4946faa40a9c16c3a021dd3d2c73cec26833bd24824eee1297261c8ad6d69ea0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|