aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhistoria <gravel.justness270@slmail.me>2024-08-03 21:28:53 -0400
committerhistoria <gravel.justness270@slmail.me>2024-08-03 21:28:53 -0400
commit093e613b550519979bbd62a4afbbc7bd8668b753 (patch)
treefc2249b06a52740200603409c84aab66ca0c7a7a
parenta41345f75937cb1e204f0cd828d39cb02254caef (diff)
downloadsoon-093e613b550519979bbd62a4afbbc7bd8668b753.tar.gz
Added dategroup ranges
-rw-r--r--README.md47
1 files changed, 25 insertions, 22 deletions
diff --git a/README.md b/README.md
index fb59dca..33ed217 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,16 @@
# Then
-Then is a minimalist, plain text, CLI calendar inspired by [When](https://www.lightandmatter.com/when/when.html). It has simple, concise syntax but supports recurring cases more complex than most calendars. It optionally supports todo lists with deadlines as well.
-
-Then is a single binary with no dependencies for text nerds who primarily want to manage events directly in their text editor rather than a TUI/GUI. You can columnize, group, sort, and archive events/todos in your .then file(s) to keep them neat, pretty, and human readable.
+Then is a minimalist, plain text, CLI calendar inspired by [When](https://www.lightandmatter.com/when/when.html). It has simple, concise syntax but supports recurring cases more complex than most calendars.
+
+- Schedule events directly in your editor
+- Concise syntax for recurring cases and date ranges
+- Group, sort, comment, and columnize events to keep text files neat
+- Add multiple lines of details to events
+- Archive events to remove them from your schedule (e.g. paid bill)
+- Keep events on calendar until dismissed (e.g. missed oil change)
+- Todo list with upcoming deadlines
+- One binary, no dependencies
+- Fun
In terms of features and complexity, Then lies between [When](https://www.lightandmatter.com/when/when.html) and [Remind](https://dianne.skoll.ca/projects/remind/) but aims to be less verbose than either.
@@ -139,9 +147,9 @@ Fri 12pm-1pm, Lunch
## Modified Julian Day (`J%x+y`) - Repeat every N days
-Then supports using a Modified Julian Date as `J`. `J` is the number of days since midnight November 17, 1858. This can be used along with the modulo operator `%` to create complex recurring events.
+Then supports using a Modified Julian Day as `J`. `J` is the number of full days since midnight November 17, 1858. This can be used along with the modulo operator `%` to create complex recurring events.
-This condition returns **true** when the result is 0. This is the opposite of how When works! Since you are always hunting zeros with this function it makes no sense to invert it every time.
+This condition returns **true** when the result is 0. This is the opposite of how When works! You are almost always hunting zeros with this function so it makes no sense to invert it every time.
```
J%3, Every third day
@@ -157,35 +165,27 @@ Julian date modulus is definitely weird, but it's a concise way to express multi
### Footnote for astronomers and time nerds
-Real Modified Julian Days tick over at Midnight UTC, so calculating a single MJD integer for a day in non-UTC time zone is *technically* incorrect. This parameter is more accurately "Modified Julian Day calculated as if your time zone was UTC". This distinction matters to absolutely no one since it's just a random consistent number that makes certain recurrences possible.
+The actual MJD is based on UTC, so this number is technically a *rounded*, modified Julian Day because it counts days since 1858-11-17 in your local time zone. This doesn't matter in practice. It's just a number that goes up by 1 every day.
-This is similar to how When works, except When starts counting from JD 1, while Then starts (more correct-ish) from JD 0, so the J values are off by 1 between programs.
+Then's MJD is off by 1 from When. When starts counting from JD 1 while Then more correctly starts counting from JD 0.
# Why would I use this?
-Then was created to adapt existing CLI calendars to my personal workflow. Then is not only for the niche of people scheduling in their terminal, but for the sub-niche who prefer to edit a file over using a TUI. This is a small group of people who almost exclusively use [Remind](https://dianne.skoll.ca/projects/remind/). If you're happy with a web or phone calendar, Then probably won't change your mind.
+Then was created as alternative to When with nicer syntax and todo features. It's for a small niche of people who not only want a terminal calendar, but want to edit their schedule directly in a text file rather than use a TUI. This small group almost exclusively uses [Remind](https://dianne.skoll.ca/projects/remind/).
Then has a few benefits over similar text file calendars:
-1. **Then has the most concise syntax**. It minimizes special characters and simplifies ranges. Remind is arguably nicer for complex recurring cases and supports more types of conditions, but I rarely need these:
-
- **Then**: `1, Water bill`\
- **When**: `* * 1, Water bill`\
- **Remind**: `REM 1 MSG Water bill`
+1. Then has the most concise syntax. It minimizes special characters and simplifies ranges. Remind is arguably nicer for complex recurring cases and supports more types of conditions, but I rarely need those:
**Then**: `Jul 1-7 2025, Vacation!`\
**When**: `m=Jul & d>=1 & d<=7 & y=2025, Vacation!`\
**Remind**: `REM Jul 1 2025 THROUGH Jul 7 2025 MSG Vacation!`
- **Then**: `Jul 10-19 2025 J%3-2`\
- **When**: `m=jul & d>=10 & d<=19 & y=2024 & !(j%3-2)`\
- **Remind**: `REM Jul 10 2025 *3 THROUGH Jul 19 2025`
-
-2. Then *optionally* can use an archive file to treat events like todos
+2. Then *optionally* can use an archive file to manually "complete" events like todos
-Take the event "Change air filter", scheduled every 6 months. I might see that upcoming and archive this instance a week early, which removes it from my calendar. Or I might let it slide until next weekend, in which case it sticks around until it's done.
+Take the event "Change air filter", scheduled every 6 months. I might see that upcoming and archive that instance a week early to remove it from my calendar. Or I might let it slide until next weekend, in which case it sticks around until it's manually archived.
-3. It *optionally* shows a todo list and upcoming deadlines.
+3. Then *optionally* shows a todo list and upcoming deadlines.
# Alternatives
@@ -199,10 +199,13 @@ If you're interested in other text file calendars, I highly recommend When or Re
## See Also
- [khal](https://github.com/pimutils/khal) - Similar CLI calendar, but stores calendars directly as .ics files.
-- TUI calendar/productivity apps like [calcure](https://github.com/anufrievroman/calcure), [Calcurse](https://calcurse.org/), and maybe [Taskwarrior](https://taskwarrior.org/).
+- [calcure](https://github.com/anufrievroman/calcure) - The premier TUI calendar
+- [Calcurse](https://calcurse.org/) - The other big TUI calendar
+- [Taskwarrior](https://taskwarrior.org/) - CLI todo thing with scheduling features
+- [calendar.vim](https://github.com/itchyny/calendar.vim) - Vim plugin
- [Emacs Diary](https://www.gnu.org/software/emacs/manual/html_node/emacs/Format-of-Diary-File.html) - A single agenda/diary file.
- [Plain Text Personal Organizer](https://danlucraft.com/blog/2008/04/plain-text-organizer/)
-- [Calendar.txt](https://terokarvinen.com/2021/calendar-txt/) - A one-day per line text calendar idea inspired by [todo.txt](https://todotxt.org/). Very simple but high maintenence due to lack of repeating events, etc.
+- [Calendar.txt](https://terokarvinen.com/2021/calendar-txt/) - A one-day per line text calendar idea inspired by [todo.txt](https://todotxt.org/).
# Todo