Skip to main content

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). See src/meetingtime/aliases.py for the full list.
  • --date — source date as YYYYMMDD, e.g. 20260710.
  • --time — source time as 24-hour HHMM, e.g. 0900.
  • --to — one or more target zones/cities. If --profile is given, these are added on top of the profile's zones. If omitted with no profile, falls back to the timezones list 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 --to and --profile.
  • --format — a format name defined in [format], a literal template string using {city} {date} {time} {abbr} {tz} placeholders, or the special value markdown for 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 via date_format in 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 via time_format in 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meetingtime-0.3.0.tar.gz (21.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

meetingtime-0.3.0-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file meetingtime-0.3.0.tar.gz.

File metadata

  • Download URL: meetingtime-0.3.0.tar.gz
  • Upload date:
  • Size: 21.1 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

Hashes for meetingtime-0.3.0.tar.gz
Algorithm Hash digest
SHA256 1ff7e8b02e61727e6c0438eaf8448da49f5c3b60413fbd1a2835619ea4afca69
MD5 8d2591be0c08667796999323e53de07b
BLAKE2b-256 e98bbd96712a4934086b6d0564ac8d3e6ea27b7e571255c4795ec956dc47c14d

See more details on using hashes here.

File details

Details for the file meetingtime-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: meetingtime-0.3.0-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

Hashes for meetingtime-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 859084073de34c2d304154cbf431563b8afbed57b50338249f5031c34213053e
MD5 54b4c0575d797ce0437d48d9ddaaa510
BLAKE2b-256 2a82b985076c2240a1d1bb9a59fba76a0f49bdbcc176512419d922e5bba95d32

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page