summaryrefslogtreecommitdiff
path: root/USER_GUIDE.md
diff options
context:
space:
mode:
Diffstat (limited to 'USER_GUIDE.md')
-rw-r--r--USER_GUIDE.md158
1 files changed, 0 insertions, 158 deletions
diff --git a/USER_GUIDE.md b/USER_GUIDE.md
deleted file mode 100644
index b9dfd93..0000000
--- a/USER_GUIDE.md
+++ /dev/null
@@ -1,158 +0,0 @@
-# User guide for calendar-cli v1.0
-
-The `kal` command is under heavy development, this document may not always be up-to-date. As of 2022-11, `kal` can do nearly all the things the old command `calendar-cli` can do. In the upcoming release 1.0 one is supposed to use `kal`, with `calendar-cli` being a deprecated legacy interface retained only for backward-compatibility.
-
-## Command structure
-
-Commands are on this format:
-
-```bash
-kal --global-options command --command-options subcommand --subcommand-options
-```
-
-The most up-to-date documentation can always be found through `--help`, and it's outside the scope of this document to list all the options.
-
-```bash
-kal --help
-kal command --help
-kal command subcommand --help
-```
-
-## Main commands
-
-* list-calendars - verify that it's possible to connect to the server(s) and show the calendar(s) selected
-* add - for adding things to the calendar(s)
-* select - for selecting, viewing, editing and deleting things from the calendar(s).
-
-## Convenience commands
-
-Those commands are made mostly for making `kal` more convenient to use. Many of the commands are optimized for the work flows of the primary author. I may eventually decide to "hide" the more obscure commands from the `--help` overview. (TODO: figure out if subcommands can be grouped in the help printed by click)
-
-* interactive set-task-attribs - go through all tasks that are missing categories, due date, priority, duration (technically, DTSTART) and ask interactively for values.
-* interactive update-config - (TODO: NOT IMPLEMENTED YET). This one is not used by the primary author and is probably under-tested. Its primary intention is to make it easy for others to use the tool.
-* agenda - list up some of the upcoming events plus some of the upcoming tasks
-
-## Global options
-
-The global options are for setting the connection parameters to the server and choosing what calendar(s) to operate at. Connection parameters may be typed in directly:
-
-* `--caldav-*` to set the server connection parameters
-* `--calendar-*` to choose a calendar. If nothing is specified, the first calendar found will be utilized (on some calendar servers, this will be the default calendar). It's possible to specify those parameters multiple times.
-
-It's recommended to rather use a config file (though not yet supported as of 2022-10-09). Those options can be used for specifying a config file:
-
-* `--config-file`
-* `--config-section`
-
-The default is to utilize the `default` section under `$HOME/.config/calendar.conf` Here is an example configuration file:
-
-```yaml
----
-work-calendar:
- caldav_url: "http://acme.example.com/caldav/"
- caldav_user: drjekyll
- caldav_pass: pencilin
- calendar_url: mycalendar
-work-appointments:
- inherits: work-calendar
- calendar_url: mypatients
-private-calendar:
- caldav_url: "https://ecloud.global/remote.php/dav/"
- caldav_user: myhyde
- caldav_pass: hunter2
- calendar_name: goodgames
-sinuous-deeds:
- inherits: private-calendar
- calendar_name: badgames
-work:
- contains: [ 'work-calendar', 'work-appointments' ]
-private:
- contains: [ 'privat-calendar', 'sinous-deeds' ]
-```
-
-(TODO: the example above haven't been tested)
-
-Multiple config sections can be specified, which may be useful for selecting things from multiple calendars.
-
-## Adding things to the calendar
-
-Generally it should be done like this:
-
-```
-kal add ical --ical-file=some_calendar_data.ics
-kal add event --event-options 'New years party' '2022-12-31T17:00+8h'
-kal add todo --todo-options 'Prepare for the new years party'
-kal add journal --journal-options "Resume from the new years party" 2022-12-31 "It was awesome. Lots of delicous food and drinks. Lots of firework."
-```
-
-(journals not supported yet as of 2022-10-09)
-
-Most often, no options should be given to the command `add` - with the exception if one wants to add things to multiple calendars in one command.
-
-Most of the options given after the subcommand are for populating object properties like location, categories, geo, class, etc.
-
-## Selecting things from the calendar
-
-```
-kal select --selection-parameters select-command
-```
-
-It's usually a good idea to start with the select-command `list`, for instance:
-
-```
-kal select --todo --category computer-work list
-```
-
-Some calendar server implementations require `--todo` or `--event` to always be given when doing selects, others not.
-
-### Listing objects
-
-Events can either be output as ics, or through a template.
-
-The templating engine is built on top of the python `string.format()`. To learn the basics of `string.format()`, w3schools has some nice interactive thing on the web, https://www.w3schools.com/python/ref_string_format.asp
-
-Text fields can be accessed directly i.e. like this:
-
-```
-kal select --todo list --template='{SUMMARY} {DESCRIPTION} {LOCATION}'
-```
-
-Dates can be accessed through the dt property, and can be formatted using strftime format, like this:
-
-```
-kal select --event list --template='{DTSTART.dt:%F %H:%M:%S}: {SUMMARY}'
-```
-
-If a property is missing, the default is to insert an empty string - but it's also possible to put a default value like this:
-
-```
-kal select --event list --template='{DTSTART.dt:%F %H:%M:%S}: {SUMMARY:?(no summary given)?}'
-```
-
-It's even possible to make compounded defaults, like this:
-
-```
-kal select --todo list --template='{DUE:?{DTSTART.dt:?(Best effort)?}?:%F %H:%M:%S}: {SUMMARY:?(no summary given)?}'
-```
-
-One thing that may be particularly useful is to take out the UID fields. With UID one can be sure to delete exactly the right row:
-
-```
-kal select --todo list --template='{UID} {SUMMARY}'
-```
-
-### Printing a UID
-
-The subcommand `print-uid` will print out an UID. It's for convenience, the same can be achieved by doing a `select (...) --limit 1 list --template='{UID}'`
-
-### Editing and deleting objects
-
-```
-kal select --todo --uid=1234-5678-9abc delete
-kal select --todo --category computer-work --start=2022-04-04 --end=2022-05-05 edit --complete ## not supported yet
-kal select --todo --category computer-work --overdue edit --postpone=5d ## not supported yet
-
-## See also
-
-[NEW_CLI.md](NEW_CLI.md) is a longer, but possibly less up-to-date document containing some visions of the new `kal`-command.
-[NEXT_LEVEL.md](NEXT_LEVEL.md) describes some of my visions on what a good calendaring system should be capable of, and does an attempt on mapping this down to the icalendar standard.