Si:
I have made a Timer library that can make callbacks or toggle pin states.
I couldn't find anything quite like it but it seems so obvious that I bet there are others out there.
Could be, but I like your approach a lot. Couple comments, millis()-derived times should be unsigned, and if comparisons are made to differences, then overflow issues are avoided, e.g.:
int Event::update()
{
unsigned long now = millis();
if (now - lastEventTime >= period)
{
Also, in the examples on your blog, is there an extra "60" in there?
Si:
Mind if I add it to the examples for the next release?
Not at all, feel free. Was just fiddling around and sort of stumbled on the concept, so not a lot of IP involved XD Unfortunately it does get out of sync after a bit as the individual events are managed asynchronously. But there is a lesson there, too.