notes from /dev/null

by Charles Choi 최민수


02 Jun 2025

Announcing Casual Timezone

Because the Internet, it is a blessing of our time that interacting with people in different time zones is commonplace. In this, the question is often raised: “what time is it there?” This is routinely answered using a clock app or a website.

While Emacs has long had the ability to make time zone calculations, it seemed overdue to have tooling that takes advantage of it.

Announcing Casual Timezone, now available as part of the Casual v2.5.0 update on MELPA.

The following screencast shows Casual Timezone in action, in this case a meeting planner (command: casual-timezone-planner) that compares the hours with your local time zone with that of another.

Casual Timezone also lets you directly ask:

  • “What time is it over there?” (command: casual-timezone-local-time-to-remote)
  • “That time over there, what is it here?” (command: casual-timezone-remote-time-to-local)

Note that at current, Casual Timezone only supports Unix-variant systems as it relies on the tz database. It has been tested on macOS 15.5 and Ubuntu Linux 22.04. Sorry Windows users, but I’m open for a PR for Windows support if a workaround for zoneinfo is available.

Closing Thoughts

With experience, I’ve learned to be humble about working with time APIs. While I’ve done much to ensure the results are accurate, I would not be surprised if there are bugs, especially for a first release. Let me know if you find any.

On reflection, putting Casual Timezone together was relatively easy as it was largely an exercise in integrating different Elisp packages:

  • From Org, the command org-read-date provided the date picker UI.
  • Built-in completion provided the UI for selecting a time zone.
  • vtable provided the table interface for casual-timezone-planner.
  • The table interface was configured as a derived mode to provide mode-specific behavior.
  • The built-in time functions were used for time zone calculations and formatting.
  • Transient provided support for menus.

Gonna call this an Elisp code-reuse success story.

References

emacs

Past Articles

8
MAY
2025

Opening the Emacs Initialization File, or First Impressions Matter

Opening the Emacs initialization file for new users is harder than it needs to be.

read more
28
APR
2025

Announcing Scrim - An Org Protocol Proxy for Emacs on macOS

Announcing Scrim, an Org Protocol proxy for Emacs on macOS.

read more
25
APR
2025

Sorting Strings in a Line in Emacs

Need to sort strings in a line? Emacs sort-regexp-fields to the rescue.

read more
14
APR
2025

Making an App, Looking for Beta Testers

Scrim is a macOS utility I've written to act as a proxy for Org Protocol requests. It is in BETA test and I’m looking for testers.

read more
23
MAR
2025

NFDN Finally Supporting OS Appearance Changes

Better late than never. This blog now supports OS appearance changes.

read more
13
MAR
2025

Announcing Casual Make

Announcing Casual Make, an interface for editing Makefiles.

read more
10
MAR
2025

Announcing Calle 24

Announcing Calle 24, an Emacs package to substitute tool bar icons with SF Symbols. Now available on MELPA.

read more
25
FEB
2025

Moment - Tuesday February 25, 2025 17:25 PST

Photo taken Tuesday February 25, 2025 17:25 PST at Fort Point.

read more
18
FEB
2025

macOS Native Emoji Picking in Emacs from the Edit Menu

Do you miss “Emoji & Symbols” at the bottom of the Edit menu for NS Emacs? This post shows how to fix that.

read more

Page 1 / 15   >

 

AboutMastodonBlueskyGitHub

Feeds & Tags
Get Scrim for macOSGet Captee for macOS

Powered by Pelican