calcurse
Manage calendar, appointments, and tasks
TLDR
Start calcurse on interactive mode
Print the appointments and events for the current day and exit
Remove all local calcurse items and import remote objects
Remove all remote objects and push local calcurse items
Copy local objects to the CalDAV server and vice versa
SYNOPSIS
calcurse [-a | -d days | -g pattern | -i file | -n | -r | -s | -t | -x file] [-c file] [-D dir] [-N] [-v] [-h]
PARAMETERS
-a, --appointment
Displays all appointments on standard output, ignoring the interactive interface.
-c file, --calendar-file=file
Uses the specified file as the calendar data file instead of the default apts file in the data directory.
-d days, --days=days
Displays appointments for the next days from the current date on standard output.
-D dir, --data-dir=dir
Uses the specified dir as the data directory where configuration and data files (appointments, to-dos, notes) are stored.
-g pattern, --grep=pattern
Searches for and displays all appointments and to-do items matching the specified pattern on standard output.
-h, --help
Displays a brief help message with command-line options and exits.
-i file, --import=file
Imports appointments and to-do items from the specified iCalendar (.ics) file into the calcurse data.
-N, --dont-check-config
Prevents calcurse from checking for an existing configuration directory and automatically creating it on startup. Useful for specialized scripting.
-n, --next-appointment
Displays details of the next upcoming appointment on standard output.
-r, --remote
Sends commands to a running calcurse daemon. Primarily used for external scripts or notification systems to interact with the active instance.
-s, --status
Displays a concise status line showing the next appointment and pending to-dos. Ideal for integration into shell prompts or status bars.
-t, --todo
Displays all to-do items on standard output, ignoring the interactive interface.
-v, --version
Displays version information for calcurse and exits.
-x file, --export=file
Exports all appointments and to-do items from calcurse into the specified iCalendar (.ics) file.
DESCRIPTION
calcurse is a powerful, customizable, and user-friendly text-based calendar and scheduling application for Linux and Unix-like systems. It operates entirely within the terminal, leveraging the ncurses library to provide an interactive, pseudo-graphical interface. Users can efficiently manage appointments, to-dos, and notes without leaving the command line.
Key features include persistent storage of data in plain text files, customizable color schemes, interactive filtering of events, and robust support for recurring appointments. It's ideal for command-line enthusiasts, system administrators, or anyone who prefers a lightweight yet full-featured personal information manager. Its flexibility allows for seamless integration into various workflows, including scripting and cron jobs for reminders. The plain text data storage simplifies backup, synchronization, and programmatic parsing.
CAVEATS
As a purely text-based application, calcurse requires a terminal emulator to run and cannot directly provide graphical desktop notifications. While its plain text data files offer simplicity and ease of backup, they do not include built-in encryption, which might be a consideration for users storing sensitive personal information.
<B>INTERACTIVE INTERFACE</B>
When launched without specific command-line options, calcurse presents an interactive three-panel interface: a date panel (showing a calendar view), an appointments panel (listing events for the selected date), and a to-do/notes panel. Users navigate and interact primarily using intuitive keybindings rather than mouse clicks, enabling a highly efficient workflow for managing schedules and tasks.
<B>KEYBINDINGS AND NAVIGATION</B>
calcurse's interactive mode is almost entirely controlled by keyboard shortcuts, making it very fast for power users. Common actions include 'a' (add appointment), 't' (add todo), 'n' (new entry), 'd' (delete entry), 'q' (quit), and arrow keys for navigation between panels and entries. A comprehensive list of keybindings is always available within the application by pressing the '?' key.
<B>CONFIGURATION AND DATA FILES</B>
All calcurse data and user-specific configurations are stored in plain text files within the ~/.calcurse/ directory by default. Key files include apts (for appointments), todo (for to-do items), notes (for notes linked to events), and conf (the main configuration file controlling colors, layout, and general settings). This plain text approach greatly simplifies backups, synchronization across different systems, and integration with other scripts.
HISTORY
calcurse was initiated by Frederic Culot and first publicly released around 2004. Developed in C and leveraging the ncurses library, it aimed to provide a robust, user-friendly, and efficient command-line calendar. Its development has been active and consistent, leading to a stable and feature-rich application that has gained a dedicated following among Linux and Unix users who prioritize efficient terminal-based tools for personal information management.