Quartz 4.0.1
Quartz.NET
Quartz.NET is a full-featured, open source job scheduling system that can be used from the smallest apps to large scale enterprise systems.
Installation
dotnet add package Quartz
That is everything a scheduler needs: dependency injection, hosting, the scheduler health check and System.Text.Json serialization are part of this package, where Quartz 3 shipped them separately.
Two things Quartz deliberately does not bring. The host below is Microsoft's — a project that has no
Microsoft.Extensions.Hosting reference yet (a plain console one; the worker and web templates
already have it) adds dotnet add package Microsoft.Extensions.Hosting. And a persistent store loads
its ADO.NET driver by name, so UseSqlServer needs Microsoft.Data.SqlClient referenced,
UsePostgres needs Npgsql, and so on.
Quick start
A job is a class with one method:
public sealed class HelloJob : IJob
{
public async ValueTask Execute(IJobExecutionContext context, CancellationToken cancellationToken = default)
{
await Console.Out.WriteLineAsync("Greetings from HelloJob!");
}
}
Register it with a trigger that fires it; the hosted service starts and stops the scheduler with the application:
HostApplicationBuilder builder = Host.CreateApplicationBuilder(args);
builder.AddQuartz(q => q.ScheduleJob<HelloJob>(trigger => trigger
.WithIdentity("hello")
.WithSimpleSchedule(TimeSpan.FromSeconds(10))));
builder.AddQuartzHostedService(options => options.WaitForJobsToComplete = true);
Console applications and tests build a scheduler without a host, from the same configuration API:
IScheduler scheduler = await QuartzSchedulerBuilder.Create().BuildScheduler();
await scheduler.Start();
Optional packages
| Package | For |
|---|---|
| Quartz.AspNetCore | the HTTP API |
| Quartz.Aspire | a persistent store, its telemetry and its health check from an Aspire connection name |
| Quartz.Dashboard | the web dashboard |
| Quartz.HttpClient | driving a remote scheduler over the HTTP API |
| Quartz.Jobs | ready-made jobs: file scanning, sending mail, running a process |
| Quartz.Plugins | history logging, XML and JSON schedule files |
| Quartz.Plugins.TimeZoneConverter | Windows and IANA time zone ids resolving on either operating system |
| Quartz.Serialization.Newtonsoft | persisting with Newtonsoft.Json instead of System.Text.Json |
| Quartz.Extensions.Redis | Redis distributed locks for a cluster |
Documentation
Showing the top 20 packages that depend on Quartz.
| Packages | Downloads |
|---|---|
|
Quartz.Serialization.Json
Quartz.NET JSON Serialization Support
|
2 |
|
Quartz.Serialization.Newtonsoft
Quartz.NET Json.NET serialization - the job store serializer for a database already holding Newtonsoft.Json's output. New applications use the System.Text.Json one built into Quartz; Quartz Scheduling Framework for .NET
|
1 |
|
Quartz.Serialization.Newtonsoft
Quartz.NET JSON Serialization Support; Quartz Scheduling Framework for .NET
|
1 |
|
Quartz.Serialization.Json
Quartz.NET JSON Serialization Support; Quartz Scheduling Framework for .NET
|
1 |
|
Quartz.Serialization.Json
Quartz.NET JSON Serialization Support
|
1 |
.NET 10.0
- Microsoft.Extensions.DependencyInjection (>= 10.0.0)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 10.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Logging (>= 10.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.0)
| Version | Downloads | Last updated |
|---|---|---|
| 4.1.1 | 0 | 2026/9/19 |
| 4.1.0 | 1 | 2026/9/15 |
| 4.0.1 | 1 | 2026/9/15 |
| 4.0.0 | 1 | 2026/9/15 |
| 3.22.0 | 1 | 2026/9/15 |
| 3.21.0 | 1 | 2026/9/15 |
| 3.20.1 | 1 | 2026/9/15 |
| 3.20.0 | 1 | 2026/9/15 |
| 3.19.1 | 0 | 2026/7/26 |
| 3.19.0 | 1 | 2026/9/15 |
| 3.18.2 | 2 | 2026/8/10 |
| 3.18.1 | 0 | 2026/4/25 |
| 3.18.0 | 0 | 2026/4/11 |
| 3.17.1 | 0 | 2026/4/3 |
| 3.17.0 | 0 | 2026/3/29 |
| 3.16.1 | 0 | 2026/3/4 |
| 3.16.0 | 0 | 2026/3/1 |
| 3.15.1 | 0 | 2025/10/26 |
| 3.15.0 | 0 | 2025/8/3 |
| 3.14.0 | 1 | 2026/8/20 |
| 3.13.1 | 0 | 2024/11/2 |
| 3.13.0 | 0 | 2024/8/10 |
| 3.12.0 | 0 | 2024/8/3 |
| 3.11.0 | 0 | 2024/7/7 |
| 3.10.0 | 0 | 2024/6/26 |
| 3.9.0 | 0 | 2024/5/9 |
| 3.8.1 | 0 | 2024/2/17 |
| 3.8.0 | 0 | 2023/11/18 |
| 3.7.0 | 0 | 2023/8/4 |
| 3.6.3 | 0 | 2023/6/25 |
| 3.6.2 | 0 | 2023/2/25 |
| 3.6.1 | 0 | 2023/2/25 |
| 3.6.0 | 0 | 2023/1/29 |
| 3.5.0 | 0 | 2022/9/18 |
| 3.4.0 | 0 | 2022/3/27 |
| 3.3.3 | 0 | 2021/8/1 |
| 3.3.2 | 1 | 2026/9/15 |
| 3.3.1 | 0 | 2021/4/8 |
| 3.3.0 | 0 | 2021/4/7 |
| 3.2.4 | 0 | 2021/1/19 |
| 3.2.3 | 0 | 2020/10/31 |
| 3.2.2 | 0 | 2020/10/19 |
| 3.2.1 | 0 | 2020/10/18 |
| 3.2.0 | 0 | 2020/10/2 |
| 3.1.0 | 0 | 2020/7/24 |
| 3.0.7 | 1 | 2026/8/20 |
| 3.0.6 | 0 | 2018/7/6 |
| 3.0.5 | 0 | 2018/5/27 |
| 3.0.4 | 0 | 2018/3/4 |
| 3.0.3 | 1 | 2026/9/15 |
| 3.0.2 | 1 | 2026/9/15 |
| 3.0.1 | 0 | 2018/1/21 |
| 3.0.0 | 0 | 2017/12/30 |
| 2.6.2 | 0 | 2018/5/27 |
| 2.6.1 | 0 | 2017/10/9 |
| 2.6.0 | 1 | 2026/9/15 |
| 2.5.0 | 0 | 2017/2/18 |
| 2.4.1 | 0 | 2016/8/24 |
| 2.4.0 | 0 | 2016/8/18 |
| 2.3.3 | 0 | 2015/7/9 |
| 2.3.2 | 0 | 2015/3/30 |
| 2.3.1 | 0 | 2015/1/15 |
| 2.3.0 | 0 | 2014/11/8 |
| 2.2.4 | 0 | 2014/7/27 |
| 2.2.3 | 0 | 2014/3/30 |
| 2.2.2 | 0 | 2014/2/9 |
| 2.2.1 | 0 | 2013/11/24 |
| 2.2.0 | 0 | 2013/9/9 |
| 2.1.2 | 0 | 2013/1/13 |
| 2.1.1 | 1 | 2026/9/15 |
| 2.1.0 | 0 | 2012/12/31 |
| 2.0.1 | 0 | 2012/4/22 |
| 2.0.0 | 0 | 2012/4/9 |
| 1.0.3 | 0 | 2011/8/3 |