Meziantou.Framework.Scheduling 4.0.2

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package Meziantou.Framework.Scheduling --version 4.0.2
                    
NuGet\Install-Package Meziantou.Framework.Scheduling -Version 4.0.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Meziantou.Framework.Scheduling" Version="4.0.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Meziantou.Framework.Scheduling" Version="4.0.2" />
                    
Directory.Packages.props
<PackageReference Include="Meziantou.Framework.Scheduling" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Meziantou.Framework.Scheduling --version 4.0.2
                    
#r "nuget: Meziantou.Framework.Scheduling, 4.0.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Meziantou.Framework.Scheduling@4.0.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Meziantou.Framework.Scheduling&version=4.0.2
                    
Install as a Cake Addin
#tool nuget:?package=Meziantou.Framework.Scheduling&version=4.0.2
                    
Install as a Cake Tool

Meziantou.Framework.Scheduling

This package supports 2 schedule formats:

  • Recurrence rules (RRULE) as defined in RFC5545 and RFC2445
  • Cron expressions

Recurrence rules (RRULE)

Parse recurrence rules:

var rrule = "FREQ=DAILY;UNTIL=20000131T140000Z;BYMONTH=1";
if (RecurrenceRule.TryParse(rrule, out var rule, out var error))
{
    var nextOccurrences = rule.GetNextOccurrences(DateTime.Now).Take(50).ToArray();
}

Convert a recurrence rule to human-readable text:

var culture = CultureInfo.GetCultureInfo("en-US");
RecurrenceRule.Parse("FREQ=DAILY").GetHumanText(culture); // every day
RecurrenceRule.Parse("FREQ=WEEKLY;INTERVAL=3;BYDAY=TU;UNTIL=20150101").GetHumanText(culture); // every 3 weeks on Tuesday until January 1, 2015

Supported languages for human-readable text:

  • English (en, en-*, and invariant culture)
  • French (fr, fr-*)

Cron expressions

The library also provides CronExpression to parse and evaluate cron schedules.

var cron = CronExpression.Parse("0 */15 * * * *");
var occurrences = cron.GetNextOccurrences(DateTime.Now).Take(10).ToArray();

Supported formats

  • 5 fields: minute hour day-of-month month day-of-week
  • 6 fields: second minute hour day-of-month month day-of-week
  • 7 fields: second minute hour day-of-month month day-of-week year

When using the 5-field format, seconds are implicitly set to 0.

Field ranges

  • second: 0-59
  • minute: 0-59
  • hour: 0-23
  • day-of-month: 1-31
  • month: 1-12 or JAN-DEC
  • day-of-week: 0-6 or SUN-SAT (0 = Sunday)
  • year (optional): 1970-2099

Operators and special values

For all fields:

  • * or ?: any value
  • a,b,c: list
  • a-b: range
  • */n: step from field minimum
  • a-b/n: stepped range
  • a/n: step starting at a

Day-of-month field additionally supports:

  • L: last day of month
  • L-n: nth day before end of month (for example L-2)
  • LW: last weekday of month
  • nW: nearest weekday to day n

Day-of-week field additionally supports:

  • nL: last occurrence of weekday n in month
  • n#m: m-th occurrence of weekday n in month (m in 1-5)

Predefined schedules

  • @yearly / @annually
  • @monthly
  • @weekly
  • @daily / @midnight
  • @hourly

Notes

  • Parsing is case-insensitive for month/day names and predefined schedules.
  • day-of-month and day-of-week are combined with AND semantics. A date must satisfy both fields to match.
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed.  net11.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.
  • net11.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Meziantou.Framework.Scheduling:

Package Downloads
Immediate.Jobs

A reflection-free background job scheduler for .NET using source generation.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
4.1.3 647 9/20/2026
4.1.2 231 9/15/2026
4.1.1 396 9/6/2026
4.1.0 123 9/4/2026
4.0.5 120 9/3/2026
4.0.4 98 9/3/2026
4.0.3 150 8/30/2026
4.0.2 258 8/16/2026
4.0.1 599 7/8/2026
4.0.0 168 7/5/2026
3.0.2 304 6/13/2026
3.0.1 299 5/23/2026
3.0.0 161 5/17/2026
2.0.12 195 5/11/2026
2.0.11 366 3/22/2026
2.0.10 440 1/16/2026
2.0.9 387 11/2/2025
2.0.8 198 10/19/2025
2.0.7 288 9/3/2025
2.0.6 320 3/1/2025
Loading failed