using CronExpressionDescriptor;
using System.Globalization;
public static void Main()
var scheduleString = "* * 1,8,15,22,29 * Wed";
var schedule = CrontabSchedule.Parse(scheduleString);
var occurences = schedule.GetNextOccurrences(DateTime.Now, DateTime.Now.AddDays(31));
var parser = new CronExpressionDescriptor.ExpressionParser(scheduleString, new Options());
var desc = CronExpressionDescriptor.ExpressionDescriptor.GetDescription(scheduleString);
Console.WriteLine(String.Format("Schedule '{0}' = {1}", scheduleString, desc));
foreach (var occurence in occurences.Take(10))
Console.WriteLine(String.Format(CultureInfo.GetCultureInfo("en-US"), "{0:D} {0:T}", occurence));