UNDERTIME(1)
๐ UNDERTIME ๐
undertime โ pick a meeting time ๐๏ธโจ
okay so bestie, you know that thing where you're trying to schedule a call with people in three different countries and your brain just goes static? yeah. that's what this fixes. welcome to the group chat of time zones. ๐ซถ
โจ SYNOPSIS โจ
undertime [OPTIONS] [--timezones ZONES] [WHEN]
undertime [-l|--list-zones] [-V|--version]
undertime --selftest
๐ธ DESCRIPTION ๐ธ
undertime is the program that lets you quickly pick a meeting time across a whole bunch of time zones โ conference calls, coordinated events, whatever y'all are planning. It shows you all the times of a given day for every time zone you selected, laid out in a table that lines the times up so that one single line = one simultaneous moment across every zone. ๐
And because it's not a coward, it takes daylight savings and other weird little time peculiarities into account โ provided your local time zone database is up to date, fr fr โ so you can schedule meetings in the future too, not just for today. ๐ฎ
Now, the time zone guessing. An educated guess is made to find the relevant zones, and it goes like this: the local time zone gets guessed first and added to the list, then your command line arguments get looked up in the internal time zone database. Spaces in arguments are replaced by underscores, and all-caps versions of lowercase strings are tried too. If it can't match something you handed it against the internal list, it emits a warning (not me getting a warning ๐ญ). Want the whole list of time zones? Pass --list-zones and it will show you everything. ๐
You can also throw offsets in there instead of time zones, with the syntax UTC{+|-}offset or GMT{+|-}offset โ like UTC+2 for CEST, or GMT-4 for EDT. But listen, those are discouraged because daylight savings are not taken into account, so the computed time might not be the local time you were actually expecting. ๐
And do not confuse those patterns with the "standard" time zones Etc/GMT{+|-}X โ they are the inverse of each other. i.e. EDT, UTC-4 is Etc/GMT+4. yes. that's confusing. I know. ๐ To specify the Etc time zones you have to give the full time zone, for example Etc/GMT-2. Those should also be avoided โ just use normal, location-based zones instead of those arbitrary offsets, bestie, please. ๐
Colors! They're used to highlight the "work hours" where possible meeting times could overlap, and the current time is marked in bold. If colors are disabled, colors get replaced by an underscore suffix and the current time by a star. โญ You can change those work hours with the --start and --end flags. ๐
Because daylight savings may actually change time, you should also pick an arbitrary time for the meeting โ that's the WHEN โ using natural language (as parsed by the parsedatetime library). The current time is also shown, in bold. ๐
๐ OPTIONS ๐
--timezones ZONESโ target date for the meeting, supports arbitrary dates like "in two weeks" (yes that's genuinely what the manpage says for this one, I'm not making it up ๐)-s HOUR,--start HOURโ start of working day, in hours โ๏ธ-e HOUR,--end HOURโ end of working day, in hours ๐--no-colors,--colorsโ do not show colors. enabled by default if output is a terminal. ๐จ--no-default-zone,--default-zoneโ do not show current time zone first--no-unique,--uniqueโ deduplicate time zones ๐งน--no-overlap,--overlapโ do not show the overlap column (labeledn), displayed by default.--overlap-min Nโ show only times withNoverlapping time zones. ๐ค--format FORMATโ passFORMATto thetabulatepackage to format the main table.--config FILEโ load YAML configFILEas defaults.-v,--verboseโ enable verbose messages ๐ฃ๏ธ--debugโ enable debugging messages ๐-l,--list-zonesโ show valid time zones and exit-V,--versionโ show version number and exit--selftestโ run test suite ๐งช-h,--helpโ show summary of options and defaults
๐ ENVIRONMENT ๐
TZโ Default time zone.NO_COLORโ If this environment variable is defined, no color will be shown unless the--colorsflag is passed. Conforming to the NO_COLOR informal standard โhttps://no-color.org/
๐ฆ FILES ๐ฆ
~/.config/undertime.yml,$XDG_CONFIG_DIR/undertime.ymlโ the configuration file loaded by default, if present. ๐
The configuration file is formatted as a YAML dictionary, where the keys are the long option names (without dashes) and the values are their values. Comments start with the # character. Options provided as arguments override the defaults set in the configuration file โ particularly time zones. So for example, this means time zones specified in the configuration file are ignored ignored when also specified as arguments. ๐
The --config parameter lets you load another configuration file, on top of the default one, using the same logic โ which is how you get to have multiple "presets". ๐
โญ EXAMPLE โญ
Command line options
undertime --timezones "New York" "Los Angeles" Paris
Display possible meeting times for three major cities. ๐๏ธ
undertime -s 8 -e 18 2014-03-15
Show a longer work day in march 2014.
undertime --overlap-min 3 2014-03-15
Show only times that match in three time zones.
undertime --timezones "New York" "Los Angeles" Paris -- tomorrow
Show times for those three timezones, but for tomorrow. Note the options separator (--) is required, otherwise the date will be parsed as a timezone. โ ๏ธ
Configuration file
A sample configuration file should be available in $XDG_CONFIG_DIR/undertime.yml, for example /etc/undertime.yml.
๐ SEE ALSO ๐
tzselect(8)tzfile(5)- Time zones list โ
https://en.wikipedia.org/wiki/List_of_tz_database_time_zones parsedatetimePython package โhttps://pypi.python.org/pypi/parsedatetime/
okay that's the whole thing, you're officially a time zone girlie now ๐ง๐ this was the General Commands Manual page for UNDERTIME(1), dated June 2020 โ go forth and schedule something iconic, no cap. โจ๐
๐ฆ where this page comes from
- debian trixie: undertime 4.3.0 ยท AGPL-3.0-or-later
- ubuntu questing: undertime 4.3.0
- ubuntu resolute: undertime 4.3.1 ยท AGPL-3.0-or-later
- ubuntu stonking: undertime 4.3.1 ยท AGPL-3.0-or-later
- Copyright 2018 anarcat anarcat@debian.org
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms