Provided by: calcurse_4.8.1-1.1_amd64 bug

NAME

       calcurse - terminal-based organizer for interactive and command line use

SYNOPSIS

       calcurse [-D datadir] [-C confdir] [-c calendar-file]

       calcurse -Q [--from date] [--to date | --days number]

       calcurse -a | -d date | -d number | -n | -r[number] | -s[date] | -t[number]

       calcurse -G [filter options] [format options] | -P [filter options] [format options]

       calcurse -h | --status | -g | -i file | -x[file] | --daemon

       The first form shows how to invoke calcurse interactively; the remainder is command line forms.

       The second form shows queries (as opposed to interactive use). For convenience, common queries have
       abbreviated forms shown in the third line. All queries may be combined with filter options as well as
       format options.

       The fourth form shows operations on the calcurse data files, one for display of entries, the other for
       removal of them.

       The fifth form is miscellaneous help and support functions.

       All details are in OPTIONS.

DESCRIPTION

       calcurse is a calendar and scheduling application for use in a terminal session (terminal emulator). When
       invoked without options, calcurse enters interactive mode; in most other cases, calcurse produces output
       on the terminal and exits. It helps keeping track of events, appointments and everyday tasks. Interactive
       mode is used when data are entered or when already existing entries are inspected or edited. All data are
       saved to disk as text files. Command line mode is used for queries and administrative tasks and for
       automating tasks in scripts.

       The interactive interface is based on ncurses and can be customized to suit user preferences.
       Customization includes program behaviour as well as visual appearance and key bindings, and is performed
       interactively; the result is automatically saved to disk and loaded on every invocation. Available
       actions are documented in an online help system. A configurable notification system issues reminders of
       upcoming deadlines.

       When leaving the interactive program, a background daemon may continue running and issue reminders; it
       stops automatically when the interactive mode is reentered.

       This man page mainly describes the command-line mode. The following two subsections contain some general
       descriptions of command line options and usage.

   Input and Output Date Format
       Many options require a date argument, and query results per day are set apart by a leading date line.

       The input format of date options and the output format of date lines are taken from the configuration
       file (see FILES). The formats are set in the "General Options" submenu in interactive mode. Particularly
       in scripts it may be desirable that formats are independent of the local user configuration. For this
       purpose use the options --input-datefmt and --output-datefmt.

       An input date consists of date, month and year. Here day must be in the range 1-31 and month in 1-12.
       Depending on the operating system year must be in the range 1902-2037 or 1902-?. Additionally, some short
       forms are allowed with the obvious meaning: today, tomorrow, yesterday, now and weekdays mon, ..., sun.

       Optionally, a date argument for a filter option (see Filter Options) may be followed by a time-of-day
       specification in hours and minutes (24-hour clock). The specification has the fixed format hh:mm
       (example: "2018-12-1 20:30" when the input date format is the ISO standard format). Note that the entire
       date specification must be quoted to create one argument.

   Filter, format and day range options
       These options do not accomplish anything in and of themselves. They influence other options and are in a
       way opposites: filter options affect the input to, format and day range options the output from calcurse.
       Specifically, filter options limit what is loaded from the data files into calcurse, day range options
       limit what is output (see -Q), and format options describe how it is presented.

       Filter options have effect on queries (-Q and query short-forms), grep (-G), purge (-P) and export (-x).
       Format options have effect on queries, grep and --dump-imported. Day range options have effect on queries
       only.

OPTIONS

       Most options imply command line mode. Options compatible with interactive mode are marked "(also
       interactively)".

       -a, --appointment
           Print the appointments and events for the current day. Equivalent to -Q --filter-type cal.

       -c file, --calendar file
           (also interactively) Specify the calendar file to use. The default calendar is located at
           <datadir>/apts (see FILES). If file is not an absolute path name, it is interpreted relative to the
           current working directory. The option has precedence over -D.

       -C dir, --confdir dir
           (also interactively) Specify the configuration directory to use. See section FILES for the default
           directory and the interaction with -D.

       -D dir, --datadir dir
           (also interactively) Specify the (data) directory to use. See section FILES for the default directory
           and the interaction with -C.

       -d date|num, --day date|num
           Print appointments and events for the given date or given range of days, depending on the argument
           format:

           •   a date

           •   a number num

           In the first case, appointments and events for date are returned, while in the second case those for
           num days are returned. Positive values of num means the future, negative the past; the range either
           starts or ends with the current day. As an example calcurse -d 3 displays appointments and events for
           today, tomorrow and the day after tomorrow, while calcurse -d -2 displays those for yesterday and
           today. The first form is equivalent to -Q --filter-type cal --from date, the second to -Q
           --filter-type cal --days num.

       --daemon
           Start calcurse in background mode; restart, if the daemon was already running. Usually done
           automatically by setting the configuration option daemon.enable in the Notify submenu in interactive
           mode.

       --days num
           Specify the range of days when used with -Q. Can be combined with --from, but not with --to. Without
           --from, the first day of the range defaults to the current day. The number may be negative, see -Q
           --query.

       --dump-imported
           When importing items, print each newly created object to stdout. Format options can be used to
           specify which details are printed. See also Format Options.

       --export-uid
           When exporting items, add the hash of each item to the exported object as a UID property.

       --from date
           Specify the start date of the day range when used with -Q. When used without -to or --days the range
           is one day (the specified day), see -Q --query.

       -F, --filter
           Deprecated, see -P. Note that this option is for backward compatibility and not the same as -P (it
           does not use the invert filter option).

       -g, --gc
           Run the garbage collector for note files. The garbage collector removes files from the notes
           directory (see FILES) that are no longer linked to an item. Usually done automatically by setting the
           configuration option general.autogc in the General Options submenu in interactive mode.

       -G, --grep
           Print appointments, events and TODO items in calcurse data file format.

       -h, --help
           Print a short help text describing the supported command-line options.

       -i file, --import file
           Import the icalendar data contained in file.

       --input-datefmt format
           For command line and script use only: override the configuration file setting of the option
           format.inputdate (General Options submenu in interactive mode). A valid format is any of 1, 2, 3, or
           4, with 1 = mm/dd/yyyy, 2 = dd/mm/yyyy, 3 = yyyy/mm/dd, 4 = yyyy-mm-dd.

       -l num, --limit num
           Limit the number of results printed to num.

       -n, --next
           Print the first appointment within the next 24 hours. The printed time is the number of hours and
           minutes left before this appointment.

       --output-datefmt format
           For command line and script use only: override the configuration file setting of the option
           format.outputdate (General Options submenu in interactive mode). A valid format is any strftime(3)
           format string.

       -P, --purge
           Load items from the data files and save them back; the items are described by suitable filter options
           (see Filter Options). It may be used to drop specific items from the data files, see EXAMPLES.

           The matching items are (silently) removed from the data files. Any combination of filter options,
           except --filter-invert, may be used in describing the items to be removed. The invert filter is used
           internally by the purge option, and its simultaneous use on the command line may result in
           unpredictable behaviour.

           Warning: Be careful with this option, specifying the wrong filter options may result in data loss. It
           is highly recommended to test with -G first and fine-tune the filters to show the items to be
           removed. Then run the same command with -P instead of -G. In any case, make a backup of the data
           files in advance.

       -q, --quiet
           (also interactively) Be quiet. Do not show system dialogs.

       -Q, --query
           Print all appointments and events in a given range of days followed by all TODO items. The calendar
           part is displayed per day with a leading line containing the date and a trailing empty line (much
           like the calendar panel in interactive mode).

           The day range defaults to the current day and is changed with the options --from and --to/--days. The
           range --from a --to z includes both a and z. The range --from a --days n, includes a as the first
           day, if n is positive, or last day, if n is negative.

           Day range has an effect on queries only.

       -r[num], --range[=num]
           Print appointments and events for num number of days starting with the current day. If num is left
           out, a range of 1 day is used. The number may be negative in which case the range is in the past,
           ending with the current day. Equivalent to -Q --filter-type cal --days num.

       --read-only
           (also interactively) Do not save configuration nor appointments and todos.

           Warning: If you run calcurse interactively in read-only mode, all changes from that session will be
           lost without warning!

       -s[date], --startday[=date]
           Print events and appointments from the optional date; default is the current day. Equivalent to -Q
           --filter-type cal --from date.

       -S regex, --search regex
           When used with any of -a, -d, -r, -s, or -t print only the items having a description that matches
           the given regular expression. Equivalent to -Q --filter-pattern regex.

       --status
           Display the status of running instances of calcurse, interactive or background mode. The process pid
           is also printed.

       -t[num], --todo[=num]
           Print the todo list. If the optional number num is given, then only uncompleted (open) todos having a
           priority equal to num will be returned. The priority number must be between 1 (highest) and 9
           (lowest). It is also possible to specify 0 for the priority, in which case only completed (closed)
           tasks will be shown. Equivalent to -Q --filter-type todo, combined with --filter-priority and
           --filter-completed or --filter-uncompleted.

       --to date
           Specify the end date of the day range when used with -Q. When used without --from the start day is
           the current day. Cannot be combined with --days, see -Q --query.

       -v, --version
           Display calcurse version.

       -x[format], --export[=format]
           Export user data in the specified format. Events, appointments and todos are converted and echoed to
           stdout. Two formats are available: ical and pcal. The default format is ical.

FILTER OPTIONS

       Filter options have effect on queries (-Q and query short-forms), grep (-G), purge (-P) and export (-x),
       see also options in the DESCRIPTION section.

       Several filter options may be given. For an item to be loaded into calcurse it must match all filters. In
       other words, filters are logically "and"-ed. The --filter-type option has a default value which matches
       any item. All other filter options have no default value and only apply when explicitly set.

       The filter options fall into three groups: general, calendar, todo. The general filters apply to all
       items, the calendar filters concern start and end times and apply to appointments and events only, and
       the todo filters concern priority and completeness and apply to TODOs only.

       Outside the three groups is the invert filter.

       --filter-invert
           Invert the combined effect of any other filters, i.e. load the items that do not match them.

   General filters
       --filter-type type
           Include items that match type. The type value is a comma-separated list of type descriptions selected
           from event, apt, recur-event, recur-apt and todo. You can also use recur as a shorthand for
           recur-event,recur-apt and cal as a shorthand for event,apt,recur.

       --filter-pattern pattern
           Include items with a description that matches the pattern. The pattern is interpreted as an extended
           regular expression.

       --filter-hash string
           Include items with a hash starting with string. The filter can be negated by prepending an
           exclamation mark (!): include items with a hash string not starting with string. For the (SHA1) hash
           of an item refer to Extended format specifiers.

   Calendar filters
       For filter options ending in -from, -to, -after, -before and -range, start or end time is the filter
       criterion.

       An event is an all-day appointment for which no times are displayed. The start time of an event is the
       beginning of the event day (midnight), the end time is the end of the event day (one second before next
       midnight).

       The -start- options ending in -from, -after and -range refer to the same filter criterion and cannot be
       used together. The same is the case for options ending in -to, -before and -range. Similar restrictions
       apply to -end- options.

       Start and end times of a recurrent item refer to the very first occurrence, not to those of any of the
       repetitions. If a recurrent item meets the criterion, all of the repetitions are displayed in queries,
       even though they may not meet the criterion. If they are unwanted, they may be removed from the output
       with the day range options, although this will also remove other items in that range.

       --filter-start-from date
           Include items that start at or after a given date.

       --filter-start-to date
           Include items that start at or before a given date.

       --filter-start-after date
           Include items that start after a given date.

       --filter-start-before date
           Include items that start before a given date.

       --filter-start-range range
           Include items with a start date that belongs to a given range. A range consists of a start date and
           an end date, separated by a comma.

       --filter-end-from date
           Include items that end at or after a given date.

       --filter-end-to date
           Include items that end at or before a given date.

       --filter-end-after date
           Include items that end after a given date.

       --filter-end-before date
           Include items that end before a given date.

       --filter-end-range range
           Include items with an end date that belongs to a given range. A range consists of a start date and an
           end date, separated by a comma.

   Todo filters
       --filter-priority priority
           Include TODO items with a given priority.

       --filter-completed
           Include completed TODO items.

       --filter-uncompleted
           Include uncompleted TODO items.

FORMAT OPTIONS

       Format options have effect on queries, grep and --dump-imported.

       The options specify a format for appointments, recurring appointments, events, recurring events or todo
       items, respectively.

       --format-apt format, --format-recur-apt format, --format-event format, --format-recur-event format,
       --format-todo format
           The format argument is a string composed of printf-style format specifiers, which are replaced as
           explained below, and ordinary characters, which are copied to stdout without modification. Each
           option has a default format string which is used when the option is not given. Default strings are
           described in Default Format Strings.

           Note: Use of a format option requires explicit formatting of field separation and line spacing.

   Default format strings
       Each specifier is introduced by a % followed by a character which tells what to print. The available
       specifiers depend on the item type. Times are printed as hours and minutes (hh:mm) unless otherwise
       noted; time formats can be changed with extended specifiers.

       For each format option there is a default format string which is used when the option is not given. In
       query results the default format options are:

           --format-apt " - %S -> %E\n\t%m\n"
           --format-recur-apt " - %S -> %E\n\t%m\n"
           --format-event " * %m\n"
           --format-recur-event " * %m\n"
           --format-todo "%p. %m\n"

       In all other cases (grep and dump-imported) the default format string is "%(raw)".

   Appointments
       %d
           Print the duration of the appointment in seconds

       %e
           Print the end time of the appointment as the Unix time in seconds

       %E
           Print the end time of the appointment or the marker ..:..  if it ends after midnight

       %m
           Print the description of the item

       %n
           Print the name of the note file belonging to the item

       %N
           Print the note belonging to the item

       %r
           Print the remaining time before the appointment

       %s
           Print the start time of the appointment as the Unix time in seconds

       %S
           Print the start time of the appointment or the marker ..:..  if it begins before midnight

   Events
       %m
           Print the description of the item

       %n
           Print the name of the note file belonging to the item

       %N
           Print the note belonging to the item

   Todo items
       %m
           Print the description of the item

       %n
           Print the name of the note file belonging to the item

       %N
           Print the note belonging to the item

       %p
           Print the priority of the item

   Extended format specifiers
       Extended format specifiers can be used to control the printing of times for some of the single-letter
       specifiers. Additionally there are two specifiers that do not have any corresponding short form and are
       intended for use in scripting.

       %(duration[:format])
           extended form of %d

       %(remaining[:format])
           extended form of %r

           format may contain any of the strftime(3) specifiers %d, %H, %M or %S with the following
           modifications: 1) days are not limited to the "calendar" values 0-31 (hours, minutes and seconds are
           "clock" values, but see E in the following) 2) each number is by default padded with zeros to two
           decimal places, 3) the % character may be followed by one or two optional flags: -, which suppresses
           the zero-padding, E, which will suppress the "clock" limits on %H, %M and %S; if both are used, -
           must precede E, 4) no other flags or width specifications are supported

       %(start[:format])
           extended form of %s

       %(end[:format])
           extended form of %e

           format may be any strftime(3) format specifier or one of the strings epoch or default; the former is
           equivalent to the (calcurse) specifiers %s and %e (seconds since the Epoch); the latter is equivalent
           to the (calcurse) specifiers %S and %E or the (strftime) format string %H:%M, except that the
           continuation marker ..:..  is printed if the start/end time belongs to another day

       %(raw)
           the text file format of an item as saved on disk; the default format for the grep and dump-imported
           options; can be used with all format options

       %(hash)
           the (SHA1) hash of the above; can be used with all format options

EXAMPLES

       calcurse -d tomorrow
           Display the calendar for tomorrow (same as calcurse -Q --filter-type cal --from tomorrow).

       calcurse -d friday
           Display the calendar for the upcoming friday.

       calcurse -d 7
           Display the calendar for the next seven days (same as calcurse -Q -filter-type cal --days 7).

       calcurse -r7 --format-apt " - %S -> %E\n\t%m\n%N"
           Print appointments and events for the next seven days. Also, print the notes attached to each regular
           appointment.

       calcurse -r7 --format-apt " - %m (%S to %E)\n" --format-recur-apt " - %m (%S to %E)\n"
           Print appointments and events for the next seven days and use a custom format for (recurrent)
           appointments:

           - Some appointment (18:30 to 21:30)

       calcurse -t --format-todo "(%p) %m\n"
           List all todo items and put parentheses around the priority specifiers.

       If the calcurse data files contain many entries which are no longer needed or wanted, they can, of
       course, be removed interactively. If there are many, it can be a tedious task and may be done better as
       in the following two examples.

       calcurse --input-datefmt 4 -G --filter-start-before 2015-1-1
           List event and appointment entries in the data files with a start time before 1 January 2015, and all
           TODO entries.

           Purge. When -G is replaced by -P, those entries are removed. This may remove recurring items that
           have occurrences after 1 January 2015.

       calcurse --input-datefmt 1 -G --filter-start-from 11/1/2015 --filter-type event,apt
           List (ordinary) event and appointment entries with a start time of 1 November 2015 or later.

       calcurse -G --filter-type apt --format-apt "%(hash) %m\n"
           For each appointment list the SHA1 hash of the data file entry followed by the description.

       calcurse -G --filter-type apt --format-apt "%(duration:%d/%EH/%EM)\t%m\n"
           For each appointment list the (total) duration as either days, hours or minutes followed by the
           description.

       calcurse -G --filter-type apt --format-apt "%(start:%c) %(duration:%d %H:%M)\t%m\n"
           For each appointment list the start time in a localized standard format, followed by the duration in
           days, hours and minutes, followed by the description.

FILES

       The following structure is created by default in your home directory the first time calcurse is run
       without any options:

           $XDG_DATA_HOME/calcurse/        $XDG_CONFIG_HOME/calcurse/
                             |___apts                          |___conf
                             |___notes/                        |___hooks/
                             |___todo                          |___keys

       $XDG_DATA_HOME defaults to $HOME/.local/share and $XDG_CONFIG_HOME defaults to $HOME/.config.

       The files are of two different kinds: data and configuration. The data files constitute the calcurse
       database and are independent of the calcurse release version; the configuration files depend on the
       calcurse version although backwards compatibility is always aimed at.

   Data files
       The calendar file apts contains all of the user’s appointments and events, and the todo file contains the
       todo list. The notes subdirectory contains the notes which are attached to appointments, events or todos.
       One text file is created per note, whose name is the SHA1 message digest of the note itself.

       The (hidden) lock files of the calcurse (.calcurse.pid) and daemon (.daemon.log) programs are present
       when they are running. If daemon log activity has been enabled in the notification configuration menu,
       the file daemon.log is present.

       An alternative calendar file may be specified with the -c option.

   Configuration files
       The conf file contains the user configuration and the keys file the user-defined key bindings. The hooks
       directory contains user-supplied scripts, see Hooks.

   Directory configuration
       An alternative directory for both the configuration files and the data directory may be specified with
       the -D option.

       An alternative directory for the configuration files only may be specified with the -C option; in that
       case data files are either in the default directory or in the directory specified by -D. If both -D and
       -C are present, configuration files in the data directory, if any, are ignored.

       If $HOME/.calcurse exists, then it will be used as the default for both the data directory and the
       configuration directory.

           <datadir>      <confdir>
                |             |
                |__ apts      |___ conf
                |__ todo      |___ keys
                |__ notes/    |___ hooks/

           defaults:
                <datadir>: $XDG_DATA_HOME/calcurse ($HOME/.local/share/calcurse)
                <confdir>: $XDG_CONFIG_HOME/calcurse ($HOME/.config/calcurse)
                both: $HOME/.calcurse (only if it exists)

       calcurse may switch between two configuration setups, but still access the same data files e.g. with:

           $ calcurse

           $ calcurse -C "$HOME/.config/calcurse/config"

   Hooks
       Scripts placed in <confdir>/calcurse/hooks/ (see Directory configuration) trigger actions at certain
       events. To enable a hook, add a script with one of the following names to this directory. Also make sure
       the script is executable.

       pre-load
           Executed before the data files are loaded.

       post-load
           Executed after the data files are loaded.

       pre-save
           Executed before the data files are saved.

       post-save
           Executed after the data files are saved.

       Some examples can be found in the contrib/hooks/ directory of the calcurse source tree.

ENVIRONMENT

       A few environment variables affect how calcurse operates.

       CALCURSE_EDITOR, VISUAL, EDITOR
           Specifies the external editor to use for writing notes. They are tried in the order listed until one
           is found. If none of them are set, vi is used.

       CALCURSE_PAGER, PAGER
           Specifies - as for the editor - the default viewer to be used for reading notes. Default is less.

       MERGETOOL
           Tool used to merge two files to solve a save conflict. Default is vimdiff. The program is called with
           two file names as the only arguments.

       See also FILES.

BUGS

       If you find a bug, please send a report to bugs@calcurse.org, or, if you are a Github user, raise an
       issue at https://github.com/lfos/calcurse.

SEE ALSO

       The ical specification (rfc2445) can be found at: http://tools.ietf.org/html/rfc2445

       The pcal project page: http://pcal.sourceforge.net/

       calcurse home page: http://calcurse.org/

       calcurse at GitHub: https://github.com/lfos/calcurse

       The complete manual, maintained in html format, can be found in the doc/ directory of the source package,
       or at: http://calcurse.org/files/manual.html

AUTHORS

Frederic Culot <frederic@culot.org>

       •   Lukas Fleischer <lfleischer@calcurse.org>

COPYRIGHT

       Copyright (c) 2004-2023 calcurse Development Team. This software is released under the BSD License.

                                                   05/22/2023                                        CALCURSE(1)