Packages by other authors that integrate with Quartz.NET. The Quartz.NET project does not maintain them; each states its own Quartz version compatibility.
Migrations
AppAny.Quartz.EntityFrameworkCore.Migrations
Creates and migrates the Quartz.NET schema with EF Core migrations, in one line of configuration.
Since 4.0, schema creation is built in. Its DDL is compared object by object with database/tables/ in the build and provisioned against every dialect in the integration tests, so it matches the release. A package that models the tables separately states its own schema version.
Weasel.Quartz
Runtime PostgreSQL migration support for non-EF and Marten projects, for Quartz 3.x.
On 4.x, use the official Quartz.Weasel packages, which cover PostgreSQL, SQL Server, MySQL, Oracle, Firebird and SQLite with a model generated from Quartz's own schema. Moving off Weasel.Quartz.Postgres says what the first apply changes.
Database Implementations
Quartz.NET-RavenDB
Job store on RavenDB.
QuartzRedisJobStore
Job store on Redis, using StackExchange.Redis. A port of quartz-redis-jobstore; it does not support Redis Cluster.
Quartz.NET-CosmosDB
Job store on Azure Cosmos DB.
Quartz.NET-MongoDB
Job store on MongoDB.
Dependency Injection
Autofac.Extras.Quartz
Autofac integration.
Dashboards
CrystalQuartz
A pluggable web UI, hosted inside the application whose scheduler it watches.
SilkierQuartz
Web management tools, with its own execution-history plugin and EF Core stores for that history.
Neither has a Quartz.NET 4.0 release yet
As of 2026-08-30, neither had published a release built against 4.0:
- SilkierQuartz 10.0.0 depends on
Quartz3.18.0. - CrystalQuartz 7.3.0's Quartz 3 adapter is compiled against the 3.x interface.
Both call IScheduler.GetMetaData(), IScheduler.GetCurrentlyExecutingJobs() and IsStarted / InStandbyMode / IsShutdown, all renamed or removed in 4.0; the migration guide appendix lists the replacements. Both bind to the host's Quartz assembly, so the mismatch fails when the dashboard is served, not at compile time.
Quartz.Dashboard, from this repository, is built against 4.0.
Message buses
MassTransit.Quartz
MassTransit's message scheduler, on Quartz.NET.
It needs Quartz.NET 3.x
As of 2026-09-26:
| Version | Depends on Quartz and Quartz.Extensions.Hosting | On Quartz.NET 4.x |
|---|---|---|
| 9.2.2 | >= 3.22.0, no upper bound | fails |
| 8.5.10, the latest 8.x | >= 3.18.1, no upper bound | fails |
The open-source develop branch builds against 3.18.1 (Directory.Packages.props). Neither range has an upper bound, so a project that references Quartz 4.x gets 4.x under a package compiled against the 3.x API. Both versions fail the same way:
Quartz4.x alone:AddQuartzandAddQuartzHostedServicefail withCS0121. MassTransit.Quartz brings the 3.xQuartz.Extensions.HostingandQuartz.Extensions.DependencyInjectionwith it, so there is no package reference to remove.- With the empty 4.x
Quartz.Extensions.Hostingtoo: the build succeeds and the host fails to start withFileNotFoundException: Could not load file or assembly 'Quartz.Extensions.Hosting, Version=3.22.0.0'(3.18.1.0on 8.x).
Keep the application on Quartz.NET 3.x. Pin it below 4.0, so that a 4.x package anywhere in the graph fails the restore with NU1605 instead of the run:
<PackageReference Include="Quartz" Version="[3.22.0, 4.0)" />
Schedules
NaturalCron.Quartz
Human-readable schedules. WithNaturalCronSchedule(...) replaces WithCronSchedule(...) on a TriggerBuilder and takes a sentence, such as "Every day between monday and friday at 6:00pm", or a fluent builder. Cron expressions keep working alongside it.
