Meziantou.Framework.Scheduling
2.0.11
Prefix Reserved
dotnet add package Meziantou.Framework.Scheduling --version 2.0.11
NuGet\Install-Package Meziantou.Framework.Scheduling -Version 2.0.11
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="2.0.11" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Meziantou.Framework.Scheduling" Version="2.0.11" />
<PackageReference Include="Meziantou.Framework.Scheduling" />
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 2.0.11
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Meziantou.Framework.Scheduling, 2.0.11"
#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@2.0.11
#: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=2.0.11
#tool nuget:?package=Meziantou.Framework.Scheduling&version=2.0.11
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
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-12orJAN-DEC - day-of-week:
0-6orSUN-SAT(0= Sunday) - year (optional):
1970-2099
Operators and special values
For all fields:
*or?: any valuea,b,c: lista-b: range*/n: step from field minimuma-b/n: stepped rangea/n: step starting ata
Day-of-month field additionally supports:
L: last day of monthL-n: nth day before end of month (for exampleL-2)LW: last weekday of monthnW: nearest weekday to dayn
Day-of-week field additionally supports:
nL: last occurrence of weekdaynin monthn#m: m-th occurrence of weekdaynin month (min1-5)
Predefined schedules
@yearly/@annually@monthly@weekly@daily/@midnight@hourly
Notes
- Parsing is case-insensitive for month/day names and predefined schedules.
day-of-monthandday-of-weekare combined with AND semantics. A date must satisfy both fields to match.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- No dependencies.
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.11 | 161 | 3/22/2026 |
| 2.0.10 | 399 | 1/16/2026 |
| 2.0.9 | 352 | 11/2/2025 |
| 2.0.8 | 159 | 10/19/2025 |
| 2.0.7 | 252 | 9/3/2025 |
| 2.0.6 | 287 | 3/1/2025 |
| 2.0.5 | 683 | 11/17/2024 |
| 2.0.4 | 6,134 | 11/15/2023 |
| 2.0.3 | 1,020 | 12/12/2021 |
| 2.0.2 | 629 | 7/14/2021 |
| 2.0.1 | 565 | 4/22/2021 |
| 2.0.0 | 824 | 9/24/2020 |
| 1.0.13 | 1,269 | 6/25/2020 |
| 1.0.12 | 819 | 6/8/2020 |
| 1.0.11 | 813 | 10/23/2019 |
| 1.0.10 | 838 | 7/16/2019 |
| 1.0.9 | 992 | 10/21/2018 |
| 1.0.8 | 1,304 | 7/7/2018 |
| 1.0.7 | 1,597 | 9/10/2017 |
Loading failed