In the last millennium, I used the Emacs Diary for my calendar. I mean, why not? The Emacs Calendar is great. Better than the `cal` command-line utility, in any case. But eventually the world got mobile phones and I wanted an online calendar.
The example from the Emacs Diary documentation:
12/22/2015 Twentieth wedding anniversary! 10/22 Ruth's birthday.
Back then, Google didn't want to be evil and I used Google Calendar. When Google changed its mind, so did I. I switched to Radicale.
And yet, I sort of missed those diary file entries.
Today, @tadzik@social.tadzik.net posted a link to caleb.
`caleb` will do its best to interpret a calendar event description, create a valid iCalendar event for it and optionally upload it to a CalDAV server.
Nice!
Example usage, from the README:
$ caleb friday 5pm beer
My main problem was that it took me a while to figure out what the correct CalDAV URL is. I looked into my iPhone accounts (my first mistake) and tried `https://example.org/radicale/alex`, then `https://example.org/radicale/alex/`, then `https://example.org/radicale/alex/Alex` – some of these URLs failed silently, some of them created new collections with the iCalendar filename as the collection name… and I didn't get an warnings or error messages. I mean, it makes sense. It's like a filesystem, you can save whatever you want. But it's not what the calendar apps expect.
So, how do I discover the correct URL? Using a command-line WebDAV explorer like `cadaver`. The following example shows how I log into Radicale and list the contents of the two directory I found. One of them is full of `.vcf` files (contacts), the other is full of `.ics` files (calendar entries). That's the one!
~/src/caleb $ cadaver https://example.org/radicale/alex/ Authentication required for Radicale - Password Required on server `example.org': Username: alex Password: *secret* dav:/radicale/alex/> ls Listing collection `/radicale/alex/': succeeded. Coll: 6304bd43-5d45-208b-0e44-893e509cf3da 1239216 Feb 7 08:13 Coll: cae8e041-61d9-b51a-57db-294b07e8dc1e 520978 Feb 28 11:43 dav:/radicale/alex/> ls 6304bd43-5d45-208b-0e44-893e509cf3da Listing collection `/radicale/alex/6304bd43-5d45-208b-0e44-893e509cf3da/': succeeded. 0008345A-1EFB-4FC2-9545-BB1D7B2EE6E0.vcf 295 Jun 19 2020 000ED281-A0C8-46F2-B3EB-1D13E4224281.vcf 241 Feb 25 2023 007A5E7D-8947-4FC1-95B5-BBADEA9E27DC.vcf 267 Jul 14 2023 ... dav:/radicale/alex/> ls cae8e041-61d9-b51a-57db-294b07e8dc1e Listing collection `/radicale/alex/cae8e041-61d9-b51a-57db-294b07e8dc1e/': succeeded. 00A3A923-47C0-4BE4-B2BF-E365965C3975.ics 1043 May 29 2022 011F4EF6-B431-4531-BB3D-D1E45BD665AB.ics 1266 Sep 10 00:19 02909CE2-D363-436B-858D-3A243A10693E.ics 962 Jun 9 2023 ...
Now I'm finally ready to go back to `caleb` and create the config file, `~/.config/caleb.conf`:
[caldav] url = "https://example.org/radicale/alex/cae8e041-61d9-b51a-57db-294b07e8dc1e" username = "alex" password = "*secret*"
Enjoy!
#Administration #Caleb #CalDAV #WebDAV
Remind is a sophisticated calendar and alarm program. – Remind