Quartz 4.1.0
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.
Three 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. Quartz writes log events and
leaves deciding where they go to the application, so it references
Microsoft.Extensions.Logging.Abstractions rather than Microsoft.Extensions.Logging — a host brings
the implementation with it, and a project that builds an ILoggerFactory itself adds
dotnet add package Microsoft.Extensions.Logging. 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.Extensions.DependencyInjection
Quartz.NET Microsoft.Extensions.DependencyInjection integration; Quartz Scheduling Framework for .NET
|
127 |
|
Quartz.Extensions.DependencyInjection
Quartz.NET Microsoft.Extensions.DependencyInjection integration; Quartz Scheduling Framework for .NET
|
129 |
|
Quartz.Extensions.DependencyInjection
Quartz.NET Microsoft.Extensions.DependencyInjection integration; Quartz Scheduling Framework for .NET
|
130 |
|
Quartz.Extensions.DependencyInjection
Quartz.NET Microsoft.Extensions.DependencyInjection integration; Quartz Scheduling Framework for .NET
|
131 |
|
Quartz.Extensions.DependencyInjection
Quartz.NET Microsoft.Extensions.DependencyInjection integration; Quartz Scheduling Framework for .NET
|
132 |
|
Quartz.Extensions.DependencyInjection
Quartz.NET Microsoft.Extensions.DependencyInjection integration; Quartz Scheduling Framework for .NET
|
133 |
|
Quartz.Extensions.DependencyInjection
Quartz.NET Microsoft.Extensions.DependencyInjection integration; Quartz Scheduling Framework for .NET
|
136 |
|
Quartz.Extensions.DependencyInjection
Quartz.NET Microsoft.Extensions.DependencyInjection integration; Quartz Scheduling Framework for .NET
|
139 |
|
Quartz.Extensions.DependencyInjection
Quartz.NET Microsoft.Extensions.DependencyInjection integration; Quartz Scheduling Framework for .NET
|
140 |
|
Quartz.Extensions.DependencyInjection
Quartz.NET Microsoft.Extensions.DependencyInjection integration; Quartz Scheduling Framework for .NET
|
155 |
|
Quartz.Extensions.Hosting
Quartz.NET Generic Host integration; Quartz Scheduling Framework for .NET
|
140 |
|
Quartz.Extensions.Hosting
Runs Quartz.net as a HostedService in a generic host.
|
130 |
|
Quartz.Serialization.Json
Quartz.NET JSON Serialization Support
|
133 |
|
Quartz.Serialization.Json
Quartz.NET JSON Serialization Support; Quartz Scheduling Framework for .NET
|
130 |
|
Quartz.Serialization.Json
Quartz.NET JSON Serialization Support; Quartz Scheduling Framework for .NET
|
132 |
.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.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.0)
| Version | Downloads | Last updated |
|---|---|---|
| 4.1.0 | 4 | 09/13/2026 |
| 4.0.1 | 2 | 09/10/2026 |
| 4.0.0 | 8 | 09/04/2026 |
| 4.0.0-rc.2 | 12 | 09/04/2026 |
| 4.0.0-rc.1 | 11 | 09/04/2026 |
| 4.0.0-beta.1 | 10 | 09/02/2026 |
| 4.0.0-alpha.5 | 8 | 09/01/2026 |
| 4.0.0-alpha.4 | 8 | 08/31/2026 |
| 4.0.0-alpha.3 | 16 | 08/28/2026 |
| 4.0.0-alpha.2 | 11 | 08/27/2026 |
| 4.0.0-alpha.1 | 13 | 08/22/2026 |
| 3.22.0 | 4 | 09/13/2026 |
| 3.21.0 | 1 | 09/12/2026 |
| 3.20.1 | 6 | 09/04/2026 |
| 3.20.0 | 13 | 08/28/2026 |
| 3.19.1 | 26 | 07/26/2026 |
| 3.19.0 | 22 | 07/25/2026 |
| 3.18.2 | 28 | 06/27/2026 |
| 3.18.1 | 45 | 04/25/2026 |
| 3.18.0 | 47 | 04/11/2026 |
| 3.17.1 | 49 | 04/03/2026 |
| 3.17.0 | 47 | 03/29/2026 |
| 3.16.1 | 50 | 03/05/2026 |
| 3.16.0 | 49 | 03/02/2026 |
| 3.15.1 | 96 | 10/28/2025 |
| 3.15.0 | 142 | 08/05/2025 |
| 3.14.0 | 134 | 04/01/2025 |
| 3.13.1 | 128 | 04/01/2025 |
| 3.13.0 | 121 | 04/01/2025 |
| 3.12.0 | 146 | 04/01/2025 |
| 3.11.0 | 143 | 04/01/2025 |
| 3.10.0 | 128 | 04/01/2025 |
| 3.9.0 | 115 | 04/01/2025 |
| 3.8.1 | 102 | 04/01/2025 |
| 3.8.0 | 126 | 04/01/2025 |
| 3.7.0 | 117 | 04/01/2025 |
| 3.6.3 | 131 | 04/01/2025 |
| 3.6.2 | 126 | 04/01/2025 |
| 3.6.1 | 145 | 04/01/2025 |
| 3.6.0 | 129 | 04/01/2025 |
| 3.5.0 | 129 | 04/01/2025 |
| 3.4.0 | 136 | 04/01/2025 |
| 3.3.3 | 106 | 04/01/2025 |
| 3.3.2 | 123 | 04/01/2025 |
| 3.3.1 | 139 | 04/01/2025 |
| 3.3.0 | 129 | 04/05/2025 |
| 3.2.4 | 117 | 04/01/2025 |
| 3.2.3 | 127 | 04/01/2025 |
| 3.2.2 | 125 | 04/01/2025 |
| 3.2.1 | 120 | 04/01/2025 |
| 3.2.0 | 124 | 04/01/2025 |
| 3.1.0 | 127 | 04/01/2025 |
| 3.0.7 | 122 | 04/01/2025 |
| 3.0.6 | 126 | 04/01/2025 |
| 3.0.5 | 129 | 04/01/2025 |
| 3.0.4 | 137 | 04/01/2025 |
| 3.0.3 | 129 | 04/01/2025 |
| 3.0.2 | 113 | 04/01/2025 |
| 3.0.1 | 123 | 04/01/2025 |
| 3.0.0 | 134 | 04/01/2025 |
| 2.6.2 | 126 | 04/01/2025 |
| 2.6.1 | 119 | 04/01/2025 |
| 2.6.0 | 134 | 04/01/2025 |
| 2.5.0 | 135 | 04/01/2025 |
| 2.4.1 | 139 | 04/01/2025 |
| 2.4.0 | 128 | 04/01/2025 |
| 2.3.3 | 116 | 04/01/2025 |
| 2.3.2 | 143 | 04/01/2025 |
| 2.3.1 | 127 | 04/01/2025 |
| 2.3.0 | 145 | 04/01/2025 |
| 2.2.4 | 136 | 04/01/2025 |
| 2.2.3 | 127 | 04/01/2025 |
| 2.2.2 | 120 | 04/01/2025 |
| 2.2.1 | 130 | 04/01/2025 |
| 2.2.0 | 150 | 04/01/2025 |
| 2.1.2 | 127 | 04/01/2025 |
| 2.1.1 | 122 | 04/01/2025 |
| 2.1.0 | 129 | 04/01/2025 |
| 2.0.1 | 127 | 04/01/2025 |
| 2.0.0 | 134 | 04/01/2025 |
| 1.0.3 | 133 | 04/01/2025 |