2024-02-28 Use of a calendar ============================ 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. * 21, *: Payday Tuesday--weekly meeting with grad students at 10am Supowit, Shen, Bitner, and Kapoor to attend. 1/13/89 Friday the thirteenth!! thu 4pm squash game with Lloyd. mar 16 Dad's birthday April 15, 2016 Income tax due. * 15 time cards due. 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 ​#Caleb #CalDAV #WebDAV ​#CalDAV #WebDAV ​#WebDAV 2024-03-12. @Preuk@framapiaf.org suggested Remind. > Remind is a sophisticated calendar and alarm program. – Remind