Quickadd: A Python library for extracting date and time from natural language
github.com
github.com
I used TatSu and a PEG grammer to compile down to a set of constraint objects(Like daily or at 3pm or on the 3rd of the month) that can basically be asked "When is the next match after X" until they all just return X, and you know you have a match.
This one look like it will handle some of the cases that Thunderbird misses.