769 lines
28 KiB
Plaintext
769 lines
28 KiB
Plaintext
////
|
|
/*
|
|
* Copyright (c) 2004-2023 calcurse Development Team <misc@calcurse.org>
|
|
* All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
*
|
|
* - Redistributions of source code must retain the above
|
|
* copyright notice, this list of conditions and the
|
|
* following disclaimer.
|
|
*
|
|
* - Redistributions in binary form must reproduce the above
|
|
* copyright notice, this list of conditions and the
|
|
* following disclaimer in the documentation and/or other
|
|
* materials provided with the distribution.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
////
|
|
|
|
CALCURSE(1)
|
|
===========
|
|
|
|
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,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,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,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 <<_query,-Q>>), and
|
|
<<_format_options,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,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,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,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
|
|
<<_query,-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,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
|
|
<<_query,-Q --query>>.
|
|
|
|
*-F*, *--filter*::
|
|
Deprecated, see <<_purge,-P, --purge>>. 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,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*[[_purge]]::
|
|
Load items from the data files and save them back; the items are described
|
|
by suitable filter options (see <<_filter_options,Filter Options>>). It may
|
|
be used to drop specific items from the data files, see
|
|
<<_examples,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*[[_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 <<_query,-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
|
|
<<_filter_format_and_day_range_options,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,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
|
|
<<_query,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,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_format_specifiers,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,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,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,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.
|