Later.js is a JavaScript library for defining recurring schedules and calculating future (or past) occurrences for them. Includes support for using English phrases and Cron schedules. Works in Node and in the browser.
It supports a very flexible schedule definition including support for composite schedules and schedule exceptions. Create new schedules manually, via Cron expression, via text expressions, or using a fully chainable API.
The library is highly extensible, has no dependencies and weighs a mere 8 kilobytes — makes incorporating it into your application a piece of cake.