diff --git a/src/Foundatio.Extensions.Hosting/Jobs/Cron.cs b/src/Foundatio.Extensions.Hosting/Jobs/Cron.cs
new file mode 100644
index 00000000..d1ce608d
--- /dev/null
+++ b/src/Foundatio.Extensions.Hosting/Jobs/Cron.cs
@@ -0,0 +1,224 @@
+// This file is part of Hangfire. Copyright © 2013-2014 Hangfire OÜ.
+//
+// Hangfire is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as
+// published by the Free Software Foundation, either version 3
+// of the License, or any later version.
+//
+// Hangfire is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with Hangfire. If not, see .
+
+using System;
+
+namespace Foundatio.Extensions.Hosting.Jobs;
+
+///
+/// Helper class that provides common values for the cron expressions.
+///
+public static class Cron
+{
+ ///
+ /// Returns cron expression that fires every minute.
+ ///
+ public static string Minutely()
+ {
+ return "* * * * *";
+ }
+
+ ///
+ /// Returns cron expression that fires every hour at the first minute.
+ ///
+ public static string Hourly()
+ {
+ return Hourly(minute: 0);
+ }
+
+ ///
+ /// Returns cron expression that fires every hour at the specified minute.
+ ///
+ /// The minute in which the schedule will be activated (0-59).
+ public static string Hourly(int minute)
+ {
+ return $"{minute} * * * *";
+ }
+
+ ///
+ /// Returns cron expression that fires every day at 00:00 UTC.
+ ///
+ public static string Daily()
+ {
+ return Daily(hour: 0);
+ }
+
+ ///
+ /// Returns cron expression that fires every day at the first minute of
+ /// the specified hour in UTC.
+ ///
+ /// The hour in which the schedule will be activated (0-23).
+ public static string Daily(int hour)
+ {
+ return Daily(hour, minute: 0);
+ }
+
+ ///
+ /// Returns cron expression that fires every day at the specified hour and minute
+ /// in UTC.
+ ///
+ /// The hour in which the schedule will be activated (0-23).
+ /// The minute in which the schedule will be activated (0-59).
+ public static string Daily(int hour, int minute)
+ {
+ return $"{minute} {hour} * * *";
+ }
+
+ ///
+ /// Returns cron expression that fires every week at Monday, 00:00 UTC.
+ ///
+ public static string Weekly()
+ {
+ return Weekly(DayOfWeek.Monday);
+ }
+
+ ///
+ /// Returns cron expression that fires every week at 00:00 UTC of the specified
+ /// day of the week.
+ ///
+ /// The day of week in which the schedule will be activated.
+ public static string Weekly(DayOfWeek dayOfWeek)
+ {
+ return Weekly(dayOfWeek, hour: 0);
+ }
+
+ ///
+ /// Returns cron expression that fires every week at the first minute
+ /// of the specified day of week and hour in UTC.
+ ///
+ /// The day of week in which the schedule will be activated.
+ /// The hour in which the schedule will be activated (0-23).
+ public static string Weekly(DayOfWeek dayOfWeek, int hour)
+ {
+ return Weekly(dayOfWeek, hour, minute: 0);
+ }
+
+ ///
+ /// Returns cron expression that fires every week at the specified day
+ /// of week, hour and minute in UTC.
+ ///
+ /// The day of week in which the schedule will be activated.
+ /// The hour in which the schedule will be activated (0-23).
+ /// The minute in which the schedule will be activated (0-59).
+ public static string Weekly(DayOfWeek dayOfWeek, int hour, int minute)
+ {
+ return $"{minute} {hour} * * {(int) dayOfWeek}";
+ }
+
+ ///
+ /// Returns cron expression that fires every month at 00:00 UTC of the first
+ /// day of month.
+ ///
+ public static string Monthly()
+ {
+ return Monthly(day: 1);
+ }
+
+ ///
+ /// Returns cron expression that fires every month at 00:00 UTC of the specified
+ /// day of month.
+ ///
+ /// The day of month in which the schedule will be activated (1-31).
+ public static string Monthly(int day)
+ {
+ return Monthly(day, hour: 0);
+ }
+
+ ///
+ /// Returns cron expression that fires every month at the first minute of the
+ /// specified day of month and hour in UTC.
+ ///
+ /// The day of month in which the schedule will be activated (1-31).
+ /// The hour in which the schedule will be activated (0-23).
+ public static string Monthly(int day, int hour)
+ {
+ return Monthly(day, hour, minute: 0);
+ }
+
+ ///
+ /// Returns cron expression that fires every month at the specified day of month,
+ /// hour and minute in UTC.
+ ///
+ /// The day of month in which the schedule will be activated (1-31).
+ /// The hour in which the schedule will be activated (0-23).
+ /// The minute in which the schedule will be activated (0-59).
+ public static string Monthly(int day, int hour, int minute)
+ {
+ return $"{minute} {hour} {day} * *";
+ }
+
+ ///
+ /// Returns cron expression that fires every year on Jan, 1st at 00:00 UTC.
+ ///
+ public static string Yearly()
+ {
+ return Yearly(month: 1);
+ }
+
+ ///
+ /// Returns cron expression that fires every year in the first day at 00:00 UTC
+ /// of the specified month.
+ ///
+ /// The month in which the schedule will be activated (1-12).
+ public static string Yearly(int month)
+ {
+ return Yearly(month, day: 1);
+ }
+
+ ///
+ /// Returns cron expression that fires every year at 00:00 UTC of the specified
+ /// month and day of month.
+ ///
+ /// The month in which the schedule will be activated (1-12).
+ /// The day of month in which the schedule will be activated (1-31).
+ public static string Yearly(int month, int day)
+ {
+ return Yearly(month, day, hour: 0);
+ }
+
+ ///
+ /// Returns cron expression that fires every year at the first minute of the
+ /// specified month, day and hour in UTC.
+ ///
+ /// The month in which the schedule will be activated (1-12).
+ /// The day of month in which the schedule will be activated (1-31).
+ /// The hour in which the schedule will be activated (0-23).
+ public static string Yearly(int month, int day, int hour)
+ {
+ return Yearly(month, day, hour, minute: 0);
+ }
+
+ ///
+ /// Returns cron expression that fires every year at the specified month, day,
+ /// hour and minute in UTC.
+ ///
+ /// The month in which the schedule will be activated (1-12).
+ /// The day of month in which the schedule will be activated (1-31).
+ /// The hour in which the schedule will be activated (0-23).
+ /// The minute in which the schedule will be activated (0-59).
+ public static string Yearly(int month, int day, int hour, int minute)
+ {
+ return $"{minute} {hour} {day} {month} *";
+ }
+
+ ///
+ /// Returns cron expression that never fires. Specifically 31st of February
+ ///
+ ///
+ public static string Never()
+ {
+ return Yearly(2, 31);
+ }
+}