Caledonia: Command-Line and Emacs Calendar Client

2 hours ago 1

Published 21 Apr. 2025.

Caledonia is a calendar client with command-line and Emacs front-ends. It operates on a vdir directory of .ics files as managed by tools like vdirsyncer, which allows it to interact with CalDAV servers. The command-line has the list, search, show, add, delete, and edit subcommands, and has full timezone support.

An example list invocation is,

$ caled list personal 2025-04-04 Fri 13:00 - 14:00 (America/New_York) New York 8am meeting 054bb346-b24f-49f4-80ab-fcb6040c19a7 family 2025-04-06 Sun 21:00 - 22:00 (UTC) Family chat @Video call 3B84B125-6EFC-4E1C-B35A-97EFCA61110E work 2025-04-09 Wed 15:00 - 16:00 (Europe/London) Weekly Meeting 4adcb98dfc1848601e38c2ea55edf71fab786c674d7b72d4c263053b23560a8d personal 2025-04-10 Thu 11:00 - 12:00 (UTC) Dentist ccef66cd4d1e87ae7319097f027f8322de67f758 family 2025-04-13 Sun 21:00 - 22:00 (UTC) Family chat @Video call 3B84B125-6EFC-4E1C-B35A-97EFCA61110E personal 2025-04-15 Tue - 2025-04-17 Thu John Doe in town 33cf18ec-90d3-40f8-8335-f338fbdb395b personal 2025-04-15 Tue 21:00 - 21:30 (UTC) Grandma call 8601c255-65fc-4bc9-baa9-465dd7b4cd7d work 2025-04-16 Wed 15:00 - 16:00 (Europe/London) Weekly Meeting 4adcb98dfc1848601e38c2ea55edf71fab786c674d7b72d4c263053b23560a8d personal 2025-04-19 Sat Jane Doe's birthday [email protected] family 2025-04-20 Sun 21:00 - 22:00 (UTC) Family chat @Video call 3B84B125-6EFC-4E1C-B35A-97EFCA61110E personal 2025-04-22 Tue 21:00 - 21:30 (UTC) Grandma call 8601c255-65fc-4bc9-baa9-465dd7b4cd7d work 2025-04-23 Wed 15:00 - 16:00 (Europe/London) Weekly Meeting 4adcb98dfc1848601e38c2ea55edf71fab786c674d7b72d4c263053b23560a8d family 2025-04-27 Sun 21:00 - 22:00 (UTC) Family chat @Video call 3B84B125-6EFC-4E1C-B35A-97EFCA61110E personal 2025-04-29 Tue 21:00 - 21:30 (UTC) Grandma call 8601c255-65fc-4bc9-baa9-465dd7b4cd7d work 2025-04-30 Wed 15:00 - 16:00 (Europe/London) Weekly Meeting 4adcb98dfc1848601e38c2ea55edf71fab786c674d7b72d4c263053b23560a8d

The Emacs client communicates with caled server using a S-expression based protocol.

Installation

With opam,

$ git clone https://tangled.sh/@ryan.freumh.org/caledonia $ opam install ./caledonia

With Nix,

$ nix shell 'git+https://tangled.sh/@ryan.freumh.org/caledonia?ref=main'

Configuration

Caledonia looks for calendars in the directory specified by the CALENDAR_DIR environment variable or in ~/.calendars/ by default.

Thanks

To Patrick for suggesting the name, and all the developers of the dependencies used, especially icalendar and timere.

Source

Read Entire Article