It finally occurred to me last night that CalDAV and CardDAV are whole-ass standard protocols, and that Apple Reminders and Contacts speak them. Do they speak every piece of the task or contact spec I’ve created? No, but they don’t need to, because there are ways to either work within the conventions of those standards to express what’s unique about my tools, or I can decide that isn’t part of the mobile spec, where capture or reading are more important than managing.
So I added CalDAV and CardDAV servers to the task and contact management tools. It took a little back and forth to get it all working, but it is now, so I get decent mobile interfaces, “Hey Siri” to make new tasks, and my contacts live in a standard store there are plenty of tools to manage, not out on an island.
Which lets me get back to the bigger project, which is the lifting the abstraction layer and graph for tasks, contacts, mail, events, notes, etc. into its own service.
v1 was a hard-coded hairball of personal apps and external services. This version has an Archetype/Provider model for tasks, contacts, messages, and notes that can accept standard Oauth/API connections, MCPs, or piggyback on a local daemon if you need to get at your stuff with a local script via a tunnel.
The external provider coverage is thin right now: Google Mail, Google Calendar, and Fastmail. Last night I went ahead and signed up for Todoist so I can build my first external task provider with a standard API. Obsidian recently released a CLI, so that’s a candidate for a daemon-driven notes provider PoC. Apple Messages is another candidate for a daemon provider, too.
I also moved the idea of “receptors” — inference-driven behavioral interpreters that consume metadata from the task, contact, event, and note archetypes — into a Markdown/YAML-driven spec you can build with a skill. There are some out-of-the-box ones:
- priority inflation
- task avoidance
- contact neglect
- task staleness
When they’re triggered, they propose some kind of action: resetting the priority, bumping the deadline, reaching out to someone you haven’t, or deciding something doesn’t belong on the list after all.
Those all seem like useful things anyone could benefit from, but I think other people have other struggles particular to them, so the SKILL.md that helps you build a receptor has an interview component, and can introspect the system to understand what archetypes/providers are enabled and available to help with your particular thing you’re trying to deal with.
It was interesting to see someone else pulling on this thread a few days ago.