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.1.tar.gz (21.2 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.1-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

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

Hashes for meetingtime-0.3.1.tar.gz
Algorithm Hash digest
SHA256 3baee2375eb97117d7d4bdadce77ffca89a682de240feb510da2c5a684677ca6
MD5 1e9027bc31c6e28a31a864700999c083
BLAKE2b-256 e7e5ee4b9b0350179d404585a377a881b40d722ad7ee3d4e97a7e4c79a131802

See more details on using hashes here.

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

Hashes for meetingtime-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 06dc7ac6848a3627a588da2235682d6bffe737e7724c4bfd590e10bd15c6a36a
MD5 cb4681b917a7a8fd2fa9fd8a29ea4a39
BLAKE2b-256 4946faa40a9c16c3a021dd3d2c73cec26833bd24824eee1297261c8ad6d69ea0

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