I’m a little pressed for time right now, but I wanted to throw out some thoughts I have regarding the convo so far.
The thing I would hope for is that users could wire together whatever date+task related plugins they use in a way that’s most useful to them. Going back to the original post, each of these could in theory be interoperable if they were updated to use a single format:
Kanban plugin: - [ ] task 1 @[[2021-11-01]]
Tasks plugin: -[ ] task 1
2021-11-1
Reminders: - [ ] task 1 ([[2021-11-01]] 8:35)
Cardboard: - [ ] task 1 @due (2021-11-01)
So, specifically speaking to interoperability: it would be helpful to have a common format that is easily parsed by JavaScript and isn’t cumbersome to type by users (even better if the users get help from plugin devs).
It’s also come up that assigning meaning to dates is useful to people. Eg. due, scheduled, completed. But these aren’t things that can be truly interoperable across all plugins. And if something like @due is required in the format, than it could be a pain for non-english users.
Also, daily notes are baked into obsidian (as a plugin), so the format is relatively universal (even with the plugin turned off). But folks who don’t use daily notes might not want to use links to define dates.
From all this, we could define a fairly simple format like (this is just an example, not a suggestion):
Using daily note links:
<user defined label>:: [[<daily note date format>|<daily note date format with time>]]
Not using daily note links:
<user defined label>:: {{<daily note date format with time>}}
Both of these formats could be parsed by a single regular expression.
Using this format, the Kanban plugin can support 🎃:: [[2021-11-02]] or due:: {{2021-11-02 3:25 pm}} or whatever the user wants. But maybe the Cardboard plugin ONLY supports due:: {{2021-11-02 3:25 pm}} because that’s the only meaningful label in the context of the plugin. It would be up to the user at this point to wire things up according to their needs, but they’d be enabled to do so by the common format.
The last thing that comes to mind is that all of this only really makes sense in terms of task lists (- [ ] Hi, I'm a markdown task) because markdown tasks can be easily gathered from obsidian and dataview’s api, and are pre-defined as “tasks”. This gives plugins a common source of data with at least some shared understanding of what that data is. When we move outside of task lists, I think things get too vague for meaningful (or easy) interoperability