I don’t know if you have seen how nvremind deals with this. These are the pros and cons of this.
- It is file and format agnostic. It leaves you with usable and readable plain text files.
- It gives you a lot of flexibility on deciding what tags to use and how to set up things.
- You need to know a little bit of programming to change some of the desired outcomes.
- It is a script that requires you to mess with more settings that most people feel comfortable with or want to mess with.
- It has not UI and therefore it not very user friendly.
- Not very Sync friendly.
Taking that in consideration, I personally think that your solution should keep the agnostic implementation of nvremind. It doesn’t have to be done the same way; but I remember that messing with how readable the file is, was one of the problem with the failed search option that was embedded in the file. (Not easy to sync, not easy to read and modify with any editor, not scriptable, etc.)
The challenges of doing it this way would be:
1.- Same file read in multiple computers.
Nvremind’s implementation has this strong weakness. Since everything is done in text using tags, nvremind changes the tags themselves when it creates a reminder or an event. I doesn’t check if the event or reminder exists in the current computer. It just cares what the tag says, and then if successful, changes that tag. When you have multiple computers syncing a file, that would mean that this process would only happen in one of the computers. It is also kind of messy since you have to have a tag for before the creation of the event, and one for after.
In a good implementation, you just have one tag for both, and the program somehow checks if the reminder or event exists and acts accordingly. For example,
- Clean bathroom @remind(2016-10-13 10:00)
2.- Error checking
Having this flexibility also means that it would be easy to introduce several errors and TaskPaper would have to learn to deal with those and communicate this in a clear manner to the user. I think that a lot of these errors could be prevented by having a UI that helps you create the tags themselves. In this way, if you want to create a reminder or event, a menu option can be available that would help you select the calendar (or list if you are creating reminders), click on a date and hour, maybe some extra options, and TaskPaper would create the right tag with the right format.
In my mind, this could even be use to help the user with any tags that deal with dates. Honestly, using the ISO 8601 is not something that every user is familiar with. But that would be the cherry on top
I hope that this helps.