5. Options

All of the calcurse parameters are configurable from the Configuration menu available when pressing C. You are then driven to a submenu with five possible choices : pressing C again will lead you to the Color scheme configuration, pressing L allows you to choose the layout of the main calcurse screen (in other words, where to put the three different panels on screen), pressing G permits you to choose between different general options, pressing K opens the key bindings configuration menu, and last you can modify the notify-bar settings by pressing N.

5.1. General options

These options control calcurse general behavior, as described below:

general.autosave (default: yes)
This option allows to automatically save the user’s data (if set to yes) when quitting. <p class="rq"><span class="valorise">warning:</span> No data will be automatically saved if general.autosave is set to no. This means the user must press S (for saving) in order to retrieve its modifications.
general.autogc (default: no)
Automatically run the garbage collector for note files when quitting.
general.periodicsave (default: 0)
If different from 0, user’s data will be automatically saved every general.periodicsave minutes. When an automatic save is performed, two asterisks (i.e. **) will appear on the top right-hand side of the screen).
general.confirmquit (default: yes)
If set to yes, confirmation is required before quitting, otherwise pressing Q will cause calcurse to quit without prompting for user confirmation.
general.confirmdelete (default: yes)
If this option is set to yes, pressing D for deleting an item (either a todo, appointment, or event), will lead to a prompt asking for user confirmation before removing the selected item from the list. Otherwise, no confirmation will be needed before deleting the item.
general.systemdialogs (default: yes)
Setting this option to no will result in skipping the system dialogs related to the saving and loading of data. This can be useful to speed up the input/output processes.
general.progressbar (default: yes)
If set to no, this will cause the disappearing of the progress bar which is usually shown when saving data to file. If set to yes, this bar will be displayed, together with the name of the file being saved (see section calcurse files).
appearance.calendarview (default: 0)
If set to 0, the monthly calendar view will be displayed by default otherwise it is the weekly view that will be displayed.
general.firstdayofweek (default: monday)
One can choose between Monday and Sunday as the first day of the week. If general.firstdayofweek is set to monday, Monday will be first in the calendar view. Otherwise, Sunday will be the first day of the week.
format.outputdate (default: %D)
This option indicates the format to be used when displaying dates in non-interactive mode. Using the default values, dates are displayed the following way: mm/dd/aa. You can see all of the possible formats by typing man 3 strftime inside a terminal.
format.inputdate (default: 1)

This option indicates the format that will be used to enter dates in calcurse. Four choices are available:

  1. mm/dd/yyyy
  2. dd/mm/yyyy
  3. yyyy/mm/dd
  4. yyyy-mm-dd

5.2. Key bindings

One can define ones own key bindings within the Keys configuration menu. The default keys look like the one used by the vim editor, especially the displacement keys. Anyway, within this configuration menu, users can redefine all of the keys available from within calcurse’s user interface.

To define new key bindings, first highlight the action to which it will apply. Then, delete the actual key binding if necessary, and add a new one. You will then be asked to press the key corresponding to the new binding. It is possible to define more than one key binding for a single action.

An automatic check is performed to see if the new key binding is not already set for another action. In that case, you will be asked to choose a different one. Another check is done when exiting from this menu, to make sure all possible actions have a key associated with it.

The following keys can be used to define bindings:

  • lower-case, upper-case letters and numbers, such as a, Z, 0
  • CONTROL-key followed by one of the above letters
  • escape, horizontal tab, and space keys
  • arrow keys (up, down, left, and right)
  • HOME and END keys

While inside the key configuration menu, an online help is available for each one of the available actions. This help briefly describes what the highlighted action is used for.


As of calcurse 3.0.0, displacement commands can be preceded by an optional number to repeat the command. For example, 10k will move the cursor ten weeks forwards if you use default key bindings.

5.3. Color themes

calcurse color theme can be customized to suit user’s needs. To change the default theme, the configuration page displays possible choices for foreground and background colors. Using arrows or calcurse displacement keys to move, and X or space to select a color, user can preview the theme which will be applied. It is possible to keep the terminal’s default colors by selecting the corresponding choice in the list.

The chosen color theme will then be applied to the panel borders, to the titles, to the keystrokes, and to general informations displayed inside status bar. A black and white theme is also available, in order to support non-color terminals.


Depending on your terminal type and on the value of the $TERM environment variable, color could or could not be supported. An error message will appear if you try to change colors whereas your terminal does not support this feature. If you do know your terminal supports colors but could not get calcurse to display them, try to set your $TERM variable to another value (such as xterm-xfree86 for instance).

5.4. Layout configuration

The layout corresponds to the position of the panels inside calcurse screen. The default layout makes the calendar panel to be displayed on the top-right corner of the terminal, the todo panel on the bottom-right corner, while the appointment panel is displayed on the left hand-side of the screen (see the figure in section Interactive mode for an example of the default layout). By choosing another layout in the configuration screen, user can customize calcurse appearance to best suit his needs by placing the different panels where needed.

The following option is used to modify the layout configuration:

appearance.layout (default: 0)
Eight different layouts are to be chosen from (see layout configuration screen for the description of the available layouts).

5.5. Sidebar configuration

The sidebar is the part of the screen which contains two panels: the calendar and, depending on the chosen layout, either the todo list or the appointment list.

The following option is used to change the width of the sidebar:

appearance.sidebarwidth (default: 0)
Width (in percentage, 0 being the minimum width) of the side bar.

5.6. Notify-bar settings

The following options are used to modify the notify-bar behavior:

appearance.notifybar (default: yes)
This option indicates if you want the notify-bar to be displayed or not.
format.notifydate (default: %a %F)
With this option, you can specify the format to be used to display the current date inside the notification bar. You can see all of the possible formats by typing man 3 strftime inside a terminal.
format.notifytime (default: %T)
With this option, you can specify the format to be used to display the current time inside the notification bar. You can see all of the possible formats by typing man 3 strftime inside a terminal.
notification.warning (default: 300)
When there is an appointment which is flagged as important within the next notification.warning seconds, the display of that appointment inside the notify-bar starts to blink. Moreover, the command defined by the notification.command option will be launched. That way, the user is warned and knows there will be soon an upcoming appointment.
notification.command (default: printf \a)

This option indicates which command is to be launched when there is an upcoming appointment flagged as important. This command will be passed to the user’s shell which will interpret it. To know what shell must be used, the content of the $SHELL environment variable is used. If this variable is not set, /bin/sh is used instead.

Say the mail command is available on the user’s system, one can use the following command to get notified by mail of an upcoming appointment (the appointment description will also be mentioned in the mail body):

$ calcurse --next | mail -s "[calcurse] upcoming appointment!" user@host.com
notification.notifyall (default: no)
Invert the sense of flagging an appointment as important. If this is enabled, all appointments will be notified - except for flagged ones.
daemon.enable (default: no)
If set to yes, daemon mode will be enabled, meaning calcurse will run into background when the user’s interface is exited. This will allow the notifications to be launched even when the interface is not running. More details can be found in section Background mode.
daemon.log (default: no)
If set to yes, calcurse daemon activity will be logged (see section files).