JavaScript library for defining schedules, then calculating future or previous schedule occurrences. Works in Node and in the browser.
From its website:
The simplest way to work with recurring schedules. Easily define complex schedules then quickly calculate future or previous schedule occurrences. Works in Node and in the browser.