Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CALCURSE(1)							     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 conve-
     nience, 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 dis-
     play 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 ter-
     minal and exits. It helps keeping track of events, appointments and  every-
     day  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  vi-
     sual  appearance  and key bindings, and is performed interactively; the re-
     sult is automatically saved to disk and loaded on every invocation.  Avail-
     able  actions are documented in an online help system. A configurable noti-
     fication system issues reminders of upcoming deadlines.

     When leaving the interactive program, a background daemon may continue run-
     ning 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 configura-
     tion.  For  this  purpose	use  the  options  --input-datefmt  and   --out-
     put-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 al-
     lowed  with  the obvious meaning: today, tomorrow, yesterday, now and week-
     days 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 influ-
     ence other options and are in a way opposites: filter  options  affect  the
     input  to,  format and day range options the output from calcurse. Specifi-
     cally, filter options limit what is loaded from the data  files  into  cal-
     curse,  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 cal-
	 endar	is  located at <datadir>/apts (see FILES). If file is not an ab-
	 solute path name, it is interpreted relative to the current working di-
	 rectory. 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 ap-
	 pointments 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 For-
	 mat 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 in-
	 teractive 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 in-
	 teractive 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 de-
	 scribed 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 com-
	 bination of filter options, except --filter-invert, may be used in  de-
	 scribing  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 op-
	 tions 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  cal-
	 endar panel in interactive mode).

	 The  day  range defaults to the current day and is changed with the op-
	 tions --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 to-
	 dos.

	 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 un-
	 completed (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  com-
	 pleted  (closed)  tasks  will	be shown. Equivalent to -Q --filter-type
	 todo, combined with --filter-priority and --filter-completed or  --fil-
	 ter-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 to-
	 dos 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 sec-
     tion.

     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,re-
	 cur-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 op-
     tions 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 cri-
     terion, 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  speci-
	 fiers,  which are replaced as explained below, and ordinary characters,
	 which are copied to stdout without modification. Each option has a  de-
	 fault 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 sep-
	 aration 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 be-
	 gins 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  "cal-
	 endar"  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 op-
	 tions

     %(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 -fil-
	 ter-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  for-
	 mat,  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 al-
     though 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  (.dae-
     mon.log) programs are present when they are running. If daemon log activity
     has  been	enabled  in  the  notification configuration menu, the file dae-
     mon.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  di-
     rectory 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  di-
     rectory 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 exe-
     cutable.

     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 read-
	 ing notes. Default is less.

     MERGETOOL
	 Tool used to merge two files to solve a save conflict. Default is vimd-
	 iff. 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/man-
     ual.html

AUTHORS
     *	 Frederic Culot <frederic@culot.org>

     *	 Lukas Fleischer <lfleischer@calcurse.org>

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

				   08/07/2025			     CALCURSE(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=calcurse&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help