ical
Display and manipulate iCalendar data
TLDR
Display the current month's calendar
Convert a Gregorian date to a Hijri date
Convert a Hirji date to a Gregorian date
SYNOPSIS
ical [options...] [month [year]]
PARAMETERS
-h
Display help summary and exit.
-s startdate
Start viewing from date (YYYY/MM/DD or MM/DD format).
-e enddate
End viewing at date (YYYY/MM/DD or MM/DD format).
-f file
Use alternate calendar file (default: ~/.calendar).
-w
Display week numbers in calendar grid.
-c
Enable color output if terminal supports it.
-S
Do not bold "stone" days (Sundays).
-m
Month-at-a-glance mode (non-interactive).
-a
Append calendar view continuously.
DESCRIPTION
ical is a lightweight, ncurses-based program for displaying and navigating calendars directly in the terminal. It provides a full-screen, interactive grid view of months, highlighting the current date and allowing keyboard-driven navigation across days, weeks, months, and years. Users can view appointments from plain-text calendar files, making it perfect for remote servers, embedded systems, or CLI enthusiasts.
Appointments are stored in files like ~/.calendar, with simple format: MM/DD description, supporting multiple entries per day and internationalization via LC_TIME. Key features include scrolling with arrow keys or h/j/k/l, jumping to dates, toggling week numbers (-w), colors (-C), and month-only mode (-m). It handles date ranges via -s and -e, custom files with -f, and append mode (-a) for ongoing views.
Unlike cal(1), ical is interactive and appointment-aware, but requires manual calendar file setup. Ideal for quick checks without GUI dependencies, it supports Gregorian calendar only and runs efficiently on low-resource systems.
CAVEATS
Not installed by default (install via apt install ical or equivalent). Requires ncurses library. Calendar file ~/.calendar must be manually created and formatted correctly. Limited to Gregorian calendar; no editing capabilities.
CALENDAR FILE FORMAT
Entries in ~/.calendar:
12/25 Christmas Day!
02/14:* Valentine's (asterisk for all years).
Supports comments with #.
KEYBOARD NAVIGATION
h/l or arrows: left/right month.
j/k: down/up year.
g: today. /: search date. q: quit.
HISTORY
Developed by Bill Davidsen in 1993 for BSD/Linux console tools. Ported widely, included in Debian/Ubuntu as ical package since early 2000s. Minimal updates since, focusing on stability for CLI use.


