You are not logged in.

#1 2021-08-25 17:22:40

Inspector Parrot
Registered: 2011-11-29
Posts: 25,747

YNot: remind/when style calendar with webUI built in


A new remind / when inspired 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

YNot comes with a well commented calendar.tutorial that provides examples of simple dated / timed events as well as some more complex programs for defining holidays.  Ouput can be as plain text to stdout:

$ ynot cal
Wed Aug 25	1830 HOA Meeting
Fri Aug 27	0900 Sales meeting @ Office
Fri Aug 27	1700 Beer O'Clock!
Sun Aug 29	1430 Dentist Appointment @ MyTown Dental
Mon Aug 30	1200 Lunch with Steve @ Di's Dinner
Wed Sep 01	1300 Pick up Warren (TODO, bring lawyer, gun, + money) @ Havana Police Station
Fri Sep 03	1700 Beer O'Clock!
Mon Sep 06	(h)  Labor Day

Alternatively you can "pretty print" to stdout:


Or launch ynot as a web server and get a web interface currently with monthly and list views:



Events can be added to the calendar with your favorite text editor, or via the web interface.  Using the default html template, you can click on any day in the monthly view to go to that day in list view, then clicking any day header in list view will prompt you for an entry that will be added to the calendar.

Each output form can be extensively customized by specifying format strings which will be used for the day/date headers, and 4 different varieties of events (whether they are timed or untimed and have a location or not).

Ynot can be found in the AUR

Bugs can reported here or on the tracker at the project page:

You can check out the example `calendar.tutorial` to get a flavor of the language that can be used to defined event dates: … r.tutorial

Last edited by Trilby (2021-08-25 17:27:52)

"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" -  Richard Stallman


#2 2021-08-26 14:05:41

Registered: 2012-06-16
Posts: 380

Re: YNot: remind/when style calendar with webUI built in

Nice, going to check this out this weekend and give it a spin. Also happy to see that we have an "official" aur package for both ynot-fossil and weaver-fossil as well! I think that will make it a lot easier for others to access both projects and play with them moving forward.

"the wind-blown way, wanna win? don't play"


Board footer

Powered by FluxBB