khal
Manage and view calendar events
TLDR
Start Khal on interactive mode
Print all events scheduled in personal calendar for the next seven days
Print all events scheduled not in personal calendar for tomorrow at 10:00
Print a calendar with a list of events for the next three months
Add new event to personal calendar
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.