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.Serialization.Json
Quartz.NET JSON Serialization Support
|
15 |
|
Quartz.Extensions.DependencyInjection
Quartz.NET Microsoft.Extensions.DependencyInjection integration; Quartz Scheduling Framework for .NET
|
13 |
|
Quartz.Serialization.Json
Quartz.NET JSON Serialization Support
|
13 |
|
Quartz.Serialization.Json
Quartz.NET JSON Serialization Support; Quartz Scheduling Framework for .NET
|
13 |
|
Quartz.Serialization.Json
Quartz.NET JSON Serialization Support; Quartz Scheduling Framework for .NET
|
12 |
|
Quartz.Serialization.Json
Quartz.NET JSON Serialization Support
|
12 |
.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.5.1 | 1 | 17.10.2026 |
| 4.5.0 | 0 | 13.10.2026 |
| 4.4.0 | 0 | 07.10.2026 |
| 4.3.0 | 1 | 30.09.2026 |
| 4.2.4 | 1 | 30.09.2026 |
| 4.2.3 | 2 | 30.09.2026 |
| 4.2.2 | 2 | 30.09.2026 |
| 4.2.1 | 1 | 30.09.2026 |
| 4.2.0 | 2 | 30.09.2026 |
| 4.1.1 | 2 | 30.09.2026 |
| 4.1.0 | 1 | 30.09.2026 |
| 4.0.1 | 1 | 30.09.2026 |
| 4.0.0 | 1 | 30.09.2026 |
| 4.0.0-alpha.1 | 4 | 23.08.2026 |
| 3.22.6 | 0 | 15.10.2026 |
| 3.22.5 | 0 | 13.10.2026 |
| 3.22.4 | 0 | 05.10.2026 |
| 3.22.3 | 1 | 30.09.2026 |
| 3.22.2 | 1 | 30.09.2026 |
| 3.22.1 | 1 | 30.09.2026 |
| 3.22.0 | 1 | 30.09.2026 |
| 3.21.0 | 2 | 30.09.2026 |
| 3.20.1 | 1 | 30.09.2026 |
| 3.20.0 | 1 | 30.09.2026 |
| 3.19.1 | 3 | 22.08.2026 |
| 3.19.0 | 4 | 24.08.2026 |
| 3.18.2 | 5 | 30.06.2026 |
| 3.18.1 | 8 | 28.04.2026 |
| 3.18.0 | 8 | 28.04.2026 |
| 3.17.1 | 8 | 28.04.2026 |
| 3.17.0 | 8 | 31.03.2026 |
| 3.16.1 | 8 | 11.03.2026 |
| 3.16.0 | 8 | 03.03.2026 |
| 3.15.1 | 10 | 09.11.2025 |
| 3.15.0 | 12 | 14.08.2025 |
| 3.14.0 | 14 | 31.05.2025 |
| 3.13.1 | 14 | 31.05.2025 |
| 3.13.0 | 14 | 31.05.2025 |
| 3.12.0 | 14 | 31.05.2025 |
| 3.11.0 | 14 | 31.05.2025 |
| 3.10.0 | 14 | 31.05.2025 |
| 3.9.0 | 14 | 31.05.2025 |
| 3.8.1 | 14 | 31.05.2025 |
| 3.8.0 | 14 | 31.05.2025 |
| 3.7.0 | 15 | 31.05.2025 |
| 3.6.3 | 14 | 31.05.2025 |
| 3.6.2 | 14 | 31.05.2025 |
| 3.6.1 | 14 | 31.05.2025 |
| 3.6.0 | 14 | 31.05.2025 |
| 3.5.0 | 14 | 31.05.2025 |
| 3.4.0 | 14 | 31.05.2025 |
| 3.3.3 | 14 | 31.05.2025 |
| 3.3.2 | 14 | 31.05.2025 |
| 3.3.1 | 14 | 31.05.2025 |
| 3.3.0 | 14 | 31.05.2025 |
| 3.2.4 | 14 | 31.05.2025 |
| 3.2.3 | 15 | 31.05.2025 |
| 3.2.2 | 14 | 31.05.2025 |
| 3.2.1 | 14 | 31.05.2025 |
| 3.2.0 | 14 | 31.05.2025 |
| 3.1.0 | 14 | 31.05.2025 |
| 3.0.7 | 12 | 31.05.2025 |
| 3.0.6 | 14 | 30.05.2025 |
| 3.0.5 | 14 | 31.05.2025 |
| 3.0.4 | 14 | 31.05.2025 |
| 3.0.3 | 14 | 31.05.2025 |
| 3.0.2 | 14 | 31.05.2025 |
| 3.0.1 | 15 | 31.05.2025 |
| 3.0.0 | 12 | 31.05.2025 |
| 2.6.2 | 11 | 31.05.2025 |
| 2.6.1 | 14 | 31.05.2025 |
| 2.6.0 | 14 | 31.05.2025 |
| 2.5.0 | 14 | 31.05.2025 |
| 2.4.1 | 15 | 31.05.2025 |
| 2.4.0 | 15 | 31.05.2025 |
| 2.3.3 | 14 | 31.05.2025 |
| 2.3.2 | 14 | 31.05.2025 |
| 2.3.1 | 14 | 31.05.2025 |
| 2.3.0 | 14 | 31.05.2025 |
| 2.2.4 | 14 | 31.05.2025 |
| 2.2.3 | 14 | 31.05.2025 |
| 2.2.2 | 14 | 31.05.2025 |
| 2.2.1 | 14 | 31.05.2025 |
| 2.2.0 | 14 | 31.05.2025 |
| 2.1.2 | 15 | 31.05.2025 |
| 2.1.1 | 15 | 31.05.2025 |
| 2.1.0 | 14 | 31.05.2025 |
| 2.0.1 | 15 | 31.05.2025 |
| 2.0.0 | 14 | 31.05.2025 |
| 1.0.3 | 15 | 31.05.2025 |