Quartz 4.0.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.
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.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.11)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 10.0.11)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Logging (>= 10.0.11)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.11)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.11)
| 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 |