YNOT
A new calendar for the command line and web? YNot?
YNot was inspired by other open source calendar tools like remind and when that provide a language with which the user can express a variety of date criteria in a simple text file calendar. The two primary differences between these tools and YNot is the balance of complexity vs simplicity of the rule language and the inclusion of a web interface with YNot.
Remind shines at being able to express very complex date patterns with elaborate exceptions, but the language itself is also complex, and despite regular use and fair effort, I was never comfortable writing new date rules. When was a breath of fresh air - the date rules were simple and easy to learn. But when I wanted to expand on them, I found the code (in perl) to be challenging to modify. Further, the simplicity of expression limited the complexity of the rule that could be used.
YNot's rules take a different approach with a reverse polish notation. The advantage is the potential to express complex nested logical patterns with a very simple parsing logic (all operators simply pull from the stack, process, and push a result). This leaves wide open room for new operators or variables for more complex date calculation without requiring any more complex rule parsing.
Another hurdle I faced in using remind or when was that I frequently needed to view or add to my calendar from my phone. This necessity had me all but give up on remind or when and succumb to using the BigOnline calendar. So I decided to try my hand at writing my own calendar server.
So, why write another calendar system like remind or when? YNot?
Express complex date requirements with a simple and easy to learn syntax? YNot?
Include a complete web server to provide an attractive, modern interface to your calendar? YNot
Building
YNot can be built with the included makefile.
Running
For now, please see the help output and read the tutorial.ynot file.