LinuxCommandLibrary

khal

Manage and view calendar events

TLDR

Start Khal on interactive mode

$ ikhal
copy

Print all events scheduled in personal calendar for the next seven days
$ khal list -a [personal] [today] [7d]
copy

Print all events scheduled not in personal calendar for tomorrow at 10:00
$ khal at -d [personal] [tomorrow] [10:00]
copy

Print a calendar with a list of events for the next three months
$ khal calendar
copy

Add new event to personal calendar
$ khal new -a [personal] [2020-09-08] [18:00] [18:30] "[Dentist appointment]"
copy

SYNOPSIS

khal [OPTIONS] COMMAND [ARGS...]

Example:
khal interactive
khal list --today
khal new '2023-10-27 10:00 Meeting with John'

PARAMETERS

--config FILE
    Specifies an alternative configuration file to use.

--logfile FILE
    Directs log messages to the specified file.

--log-level LEVEL
    Sets the verbosity level for logging messages (e.g., DEBUG, INFO, WARNING, ERROR).

--version
    Displays the installed khal version and exits.

-h, --help
    Shows general help message or help for a specific subcommand.

DESCRIPTION

khal is a robust and highly configurable command-line calendar program. It provides a comprehensive interface for managing events and todos directly from the terminal, making it an excellent choice for users who prefer a minimalist workflow or operate in server environments. Designed to work in conjunction with vdirsyncer, khal can synchronize calendars from various sources, including online services like Google Calendar or Nextcloud, by leveraging the ical standard.

Users can interact with khal through its curses-based graphical user interface by running khal interactive, offering a familiar calendar view and intuitive navigation. Alternatively, khal provides a rich set of subcommands for scripting and direct command-line operations, such as khal list to display upcoming events, khal new to create new appointments, khal import for importing ical files, and khal search to find specific entries. Its flexibility allows for precise control over calendar data, including support for recurring events and multiple calendars, making it a powerful tool for efficient personal and professional scheduling without leaving the command line.

CAVEATS

Requires external synchronization tools like vdirsyncer for syncing with remote calendar services. Initial configuration can be complex, involving setting up paths to calendar directories and defining collection properties.

SUBCOMMANDS AND FUNCTIONALITY

khal's core functionality is accessed via a variety of subcommands, each designed for a specific task. Common subcommands include interactive for the ncurses-based UI, list for viewing events, new for creating events, import for ical files, search for querying, and delete or edit for managing existing entries. Each subcommand often has its own set of specific options to tailor its behavior.

CONFIGURATION

khal is highly configurable through its configuration file, typically located at ~/.config/khal/config. This file defines calendar collections, display formats, keybindings, and other preferences, allowing users to customize khal extensively to fit their workflow.

HISTORY

khal is a modern command-line calendar program developed primarily by geier.sued@gmail.com and schmitt.robin@gmail.com. It emerged to fill the need for a robust, feature-rich calendar client that integrates seamlessly with text-based environments and the vdirsyncer synchronization tool. Its development is active, with continuous improvements and feature additions, making it a popular choice in the FOSS community for terminal-centric calendar management.

SEE ALSO

vdirsyncer(1), cal(1), date(1), remind(1)

Copied to clipboard