+12
CHANGELOG.md
+12
CHANGELOG.md
+43
-4
README.md
+43
-4
README.md
···-Currently, it operates on directories of [`.ics`](https://datatracker.ietf.org/doc/html/rfc5545) files (as managed by tools like [vdirsyncer](https://github.com/pimutils/vdirsyncer)).
···+It operates on a [vdir](https://pimutils.org/specs/vdir/) directory of [`.ics`](https://datatracker.ietf.org/doc/html/rfc5545) files as managed by tools like [vdirsyncer](https://github.com/pimutils/vdirsyncer), which allows it to interact with CalDAV servers.+The command-line has the `list`, `search`, `show`, `add`, `delete`, and `edit` subcommands, and has full timezone support.+personal 2025-04-04 Fri 13:00 - 14:00 (America/New_York) New York 8am meeting 054bb346-b24f-49f4-80ab-fcb6040c19a7+family 2025-04-06 Sun 21:00 - 22:00 (UTC) Family chat @Video call 3B84B125-6EFC-4E1C-B35A-97EFCA61110E+work 2025-04-09 Wed 15:00 - 16:00 (Europe/London) Weekly Meeting 4adcb98dfc1848601e38c2ea55edf71fab786c674d7b72d4c263053b23560a8d+family 2025-04-13 Sun 21:00 - 22:00 (UTC) Family chat @Video call 3B84B125-6EFC-4E1C-B35A-97EFCA61110E+work 2025-04-16 Wed 15:00 - 16:00 (Europe/London) Weekly Meeting 4adcb98dfc1848601e38c2ea55edf71fab786c674d7b72d4c263053b23560a8d+family 2025-04-20 Sun 21:00 - 22:00 (UTC) Family chat @Video call 3B84B125-6EFC-4E1C-B35A-97EFCA61110E+work 2025-04-23 Wed 15:00 - 16:00 (Europe/London) Weekly Meeting 4adcb98dfc1848601e38c2ea55edf71fab786c674d7b72d4c263053b23560a8d+family 2025-04-27 Sun 21:00 - 22:00 (UTC) Family chat @Video call 3B84B125-6EFC-4E1C-B35A-97EFCA61110E+work 2025-04-30 Wed 15:00 - 16:00 (Europe/London) Weekly Meeting 4adcb98dfc1848601e38c2ea55edf71fab786c674d7b72d4c263053b23560a8d+The Emacs client is defined in [./emacs](./emacs) and communicates with `caled server` using a [S-expression](https://en.wikipedia.org/wiki/S-expression) based protocol.
+28
-11
TODO.org
+28
-11
TODO.org
···
···+* TODO implement TUI front end with something like [[https://github.com/leostera/minttea][minttea]]
+65
-149
bin/add_cmd.ml
+65
-149
bin/add_cmd.ml
·········
···+(* if we specify and end date and time without a end timezone, default to the start timezone *)······
+13
-7
bin/delete_cmd.ml
+13
-7
bin/delete_cmd.ml
·········
·········
+9
-4
bin/dune
+9
-4
bin/dune
+50
-136
bin/edit_cmd.ml
+50
-136
bin/edit_cmd.ml
············
···+(* if we specify and end date and time without a end timezone, default to the start timezone *)·········
+434
bin/event_args.ml
+434
bin/event_args.ml
···
···
+75
-42
bin/list_cmd.ml
+75
-42
bin/list_cmd.ml
······
······
+4
-3
bin/main.ml
+4
-3
bin/main.ml
·········
·········
+149
-32
bin/query_args.ml
+149
-32
bin/query_args.ml
······
······
+115
-83
bin/search_cmd.ml
+115
-83
bin/search_cmd.ml
············
············
+85
bin/server_cmd.ml
+85
bin/server_cmd.ml
···
···
+11
-9
bin/show_cmd.ml
+11
-9
bin/show_cmd.ml
·········
·········
+7
-2
caledonia.opam
+7
-2
caledonia.opam
·········
·········+["icalendar.dev" "git+https://github.com/robur-coop/icalendar#1ab8d3970295bc96dc651c53b25c7c9963a27f81"]
+2
-2
dune-project
+2
-2
dune-project
+56
emacs/caledonia-evil.el
+56
emacs/caledonia-evil.el
···
···
+788
emacs/caledonia.el
+788
emacs/caledonia.el
···
···+(let* ((query-to-use (or query caledonia--current-query '())) ;; Use current query if available
+175
flake.lock
+175
flake.lock
···
···
+39
flake.nix
+39
flake.nix
···
···
+109
-173
lib/calendar_dir.ml
+109
-173
lib/calendar_dir.ml
············
············
+33
-27
lib/calendar_dir.mli
+33
-27
lib/calendar_dir.mli
···
···
-1
lib/collection.ml
-1
lib/collection.ml
···
···
-3
lib/collection.mli
-3
lib/collection.mli
+282
-115
lib/date.ml
+282
-115
lib/date.ml
··················
··················
+103
-39
lib/date.mli
+103
-39
lib/date.mli
·········
·········
+4
-2
lib/dune
+4
-2
lib/dune
+713
-75
lib/event.ml
+713
-75
lib/event.ml
···························
···························
+131
-19
lib/event.mli
+131
-19
lib/event.mli
···
···
-349
lib/format.ml
-349
lib/format.ml
···
···
-17
lib/format.mli
-17
lib/format.mli
···
···
-162
lib/query.ml
-162
lib/query.ml
···
···
-54
lib/query.mli
-54
lib/query.mli
···
···
-177
lib/recur.ml
-177
lib/recur.ml
···
···
-11
lib/recur.mli
-11
lib/recur.mli
···
···
+120
lib/sexp.ml
+120
lib/sexp.ml
···
···
+1
-1
test/dune
+1
-1
test/dune
+22
-34
test/test_calendar_dir.ml
+22
-34
test/test_calendar_dir.ml
···
···
+13
-7
test/test_date.ml
+13
-7
test/test_date.ml
·········
·········
+322
test/test_event.ml
+322
test/test_event.ml
···
···
-326
test/test_query.ml
-326
test/test_query.ml
···
···
-737
test/test_recur.ml
-737
test/test_recur.ml
···-(* Just verify the results without checking the interval, since months have different lengths *)
···