← Back to context

Comment by dngray

2 days ago

I used to use caldav but then stopped because there was once a bug on the server side where I couldn't delete events. The main thing I also don't like is there's no encryption or privacy really from the provider unless you go with a more a less proprietary solution like from an encrypted email provider. The closest I saw was EteSync but it requires special apps, and can include special bugs :)

I also don't need my immediate todo list on a calendar. I organize my to-do list simply as "Immediate", "Future", "Distant future", and then put things under heading. Sometimes I add a due date if there is one.

I just had a few markdown documents in a "todo" folder, eg <work>.md <project1>.md etc. Recently I changed it to org-mode because that's a syntax designed for the purpose. https://nvim-orgmode.github.io/ works excellently.

Never been an emacs user in my life. I spent about 5 minutes perusing https://orgmode.org/org.html and was able to do the same.

I use syncthing to sync it between my devices. https://www.orgzlyrevived.com/ works great on android.

Using standard CalDAV it should be possible to encrypt parts of it. And just have a local proxy that decodes/encodes. e.g. Having fields like this:

  DESCRIPTION: not secret
  DTSTART:with week
  X-mydata: 
  ENCODING=Ascii85;FMTTYPE=application/octet-stream
  <~6q($A;Fs\a8P`)B+EM+(Eb0>"6r[)a5uLZCGA2/4+D>\9EcVQ~>

and then just decode that and replace the X-mydata with the decoded data:

  DESCRIPTION: secret
  DTSTART: with hours

perhaps support for removing existing fields that is in the encrypted blob as well, if you do not need state in the encryption it should be good. I do not know how to create a good encryption protocol so I am sure there are lots of stupid ways to mess this up. I only need to encrypt the content of my description and time I never need to hide that I created a meeting when I had a meeting with a Spy from the NSA.

Most of my daily agenda is also stored in my employer's Google Workspace. CalDAV is the common protocol for exchanging and storing events. Most of my task entries don't have a due date, I just sort them by priority.

I understand the privacy concerns, I can host a nextcloud in a secure location if I need it.