Fancy terminal-based personal calendar and task tracker
Find a file
2021-11-06 23:56:51 +00:00
src Flesh out commands and DATE annotations 2021-11-06 23:56:51 +00:00
.gitignore Create project 2021-08-04 23:17:37 +02:00
Cargo.lock Parse simple dates and times 2021-11-06 17:36:40 +01:00
Cargo.toml Parse simple dates and times 2021-11-06 17:36:40 +01:00
README.md Flesh out commands and DATE annotations 2021-11-06 23:56:51 +00:00

today

DATE annotations

Most commands allow or require DATE annotations. They are roughly structured like DATE start [-- end]. The end part can only contain time-related information if the start specifies a time.

More specifically, there are three variants of the DATE annotation:

DATE date [delta] [time] [-- [date] [delta] [time]] [; delta]
DATE weekday [time] [-- [weekday] [delta] [time]]
DATE formula [delta] [time] [-- [delta] [time]]

In all three cases, the end must contain at least one of the optional elements if it is present. Deltas in the end may represent fractional days (e. g. +3h) as long as they are not immediately followed by a time and the start includes a time. Other deltas may only represent whole-day intervals (they may contain sub-day specifiers like +24h or +25h-60m as long as they sum to a whole-day interval).

In the case of the date variant, a repetition delta can be specified following a semicolon.

If multiple DATE annotations from a single command start on the same date, all except the first are ignored.

Examples

NOTE Spielerunde
DATE sun 22:00 -- 24:00
DATE sun 22:00 -- 00:00
DATE sun 22:00 -- +2h
DATE (wd = sun) 22:00 -- 24:00
DATE 2021-11-07 22:00 -- 24:00; +w
DATE 2021-11-07 22:00 -- +2h; +w

NOTE daily
DATE *
DATE (true)
DATE 2021-11-07; +d

NOTE on weekends
DATE (wd = sat | wd = sun)

NOTE weekends
DATE sat -- sun
DATE 2021-11-06 -- 2021-11-07; +w
DATE 2021-11-06 -- +d; +w
DATE (wd = sat) -- +d

NOTE last of each month
DATE (m = 1) -d