LinuxCommandLibrary

ical

Display and manipulate iCalendar data

TLDR

Display the current month's calendar

$ ical
copy

Convert a Gregorian date to a Hijri date
$ ical --gregorian [yyyymmdd]
copy

Convert a Hirji date to a Gregorian date
$ ical --hijri [yyyymmdd]
copy

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.

SEE ALSO

cal(1), ncal(1), calendar(1)

Copied to clipboard