Quartz.Plugins 3.18.2
Quartz.Plugins
Quartz.Plugins provides a set of ready-made plugins for common scheduling needs.
Installation
dotnet add package Quartz.Plugins
Included plugins
- LoggingJobHistoryPlugin / LoggingTriggerHistoryPlugin — log a history of job executions and trigger firings.
- StructuredLoggingJobHistoryPlugin / StructuredLoggingTriggerHistoryPlugin — structured-logging equivalents using named message-template parameters (Serilog, NLog, …); recommended when using structured logging sinks.
- XMLSchedulingDataProcessorPlugin / JsonSchedulingDataProcessorPlugin — load jobs and triggers from XML or JSON files, optionally re-scanning for changes.
- ShutdownHookPlugin — shuts the scheduler down when the process terminates.
- JobInterruptMonitorPlugin — interrupts jobs that run longer than a configured maximum (Quartz 3.3+).
Usage
Plugins are enabled via DI extensions or configuration keys (quartz.plugin.{name}.{property}):
services.AddQuartz(q =>
{
q.UseStructuredJobLogging();
q.UseStructuredTriggerLogging();
});
Authoring configuration extensions
When you write your own ISchedulerPlugin, you can offer the same strongly typed q.UseMyPlugin() experience as the built-in plugins. Write an extension method on IPropertyConfigurationRoot and call the UsePlugin<TPlugin>(name) helper (shipped in the core Quartz package): it sets the quartz.plugin.{name}.type property and, when configuration is backed by Microsoft DI (AddQuartz), registers the plugin into the container so it is constructed with constructor injection. Use TryRegisterSingleton<TService, TImplementation>() to register any companion services the plugin needs injected (it returns false when there is no container, e.g. plain SchedulerBuilder usage).
public static T UseMyPlugin<T>(this T configurer, Action<MyPluginOptions>? configure = null)
where T : IPropertyConfigurationRoot
{
configurer.UsePlugin<MyPlugin>("myPlugin");
configurer.TryRegisterSingleton<IMyPluginDependency, MyPluginDependency>();
configure?.Invoke(new MyPluginOptions(configurer));
return configurer;
}
Derive strongly typed options from PropertiesSetter with the plugin's property prefix; each setter maps to a quartz.plugin.{name}.{property} key applied to the plugin's public setters. The same extension method then works with both AddQuartz (constructor injection) and plain SchedulerBuilder (reflection, requires a public parameterless constructor).
Documentation
📖 Full documentation and per-plugin configuration: https://www.quartz-scheduler.net/documentation/quartz-3.x/packages/quartz-plugins.html
Showing the top 20 packages that depend on Quartz.Plugins.
| Packages | Downloads |
|---|---|
|
Quartz.Plugins.TimeZoneConverter
Quartz.NET TimeZoneConverter integration https://github.com/mj1856/TimeZoneConverter; Quartz Scheduling Framework for .NET
|
36 |
|
Quartz.Plugins.TimeZoneConverter
Quartz.NET TimeZoneConverter integration https://github.com/mj1856/TimeZoneConverter; Quartz Scheduling Framework for .NET
|
32 |
|
Quartz.Plugins.TimeZoneConverter
Quartz.NET TimeZoneConverter integration https://github.com/mj1856/TimeZoneConverter; Quartz Scheduling Framework for .NET
|
31 |
|
Quartz.Plugins.TimeZoneConverter
Quartz.NET TimeZoneConverter integration https://github.com/mj1856/TimeZoneConverter; Quartz Scheduling Framework for .NET
|
30 |
|
Quartz.Plugins.TimeZoneConverter
Quartz.NET TimeZoneConverter integration https://github.com/mj1856/TimeZoneConverter; Quartz Scheduling Framework for .NET
|
29 |
|
Quartz.Plugins.TimeZoneConverter
Quartz.NET TimeZoneConverter integration https://github.com/mj1856/TimeZoneConverter
|
28 |
|
Quartz.Plugins.TimeZoneConverter
Quartz.NET TimeZoneConverter integration https://github.com/mj1856/TimeZoneConverter; Quartz Scheduling Framework for .NET
|
28 |
|
Quartz.Plugins.TimeZoneConverter
Quartz.NET TimeZoneConverter integration https://github.com/mj1856/TimeZoneConverter; Quartz Scheduling Framework for .NET
|
27 |
|
Quartz.Plugins.TimeZoneConverter
Quartz.NET TimeZoneConverter integration https://github.com/mj1856/TimeZoneConverter; Quartz Scheduling Framework for .NET
|
26 |
|
Quartz.Plugins.TimeZoneConverter
Quartz.NET TimeZoneConverter integration https://github.com/mj1856/TimeZoneConverter; Quartz Scheduling Framework for .NET
|
25 |
.NET Framework 4.6.2
- Quartz.Jobs (>= 3.18.2)
- System.Text.Json (>= 8.0.5)
.NET Framework 4.7.2
- Quartz.Jobs (>= 3.18.2)
- System.Text.Json (>= 8.0.5)
.NET Standard 2.0
- Quartz.Jobs (>= 3.18.2)
- System.Text.Json (>= 8.0.5)
| Version | Downloads | Last updated |
|---|---|---|
| 3.18.2 | 2 | 06/29/2026 |
| 3.18.1 | 23 | 04/26/2026 |
| 3.18.0 | 15 | 04/12/2026 |
| 3.17.1 | 16 | 04/04/2026 |
| 3.17.0 | 19 | 03/29/2026 |
| 3.16.1 | 22 | 03/06/2026 |
| 3.16.0 | 24 | 03/02/2026 |
| 3.15.1 | 21 | 12/20/2025 |
| 3.15.0 | 24 | 12/20/2025 |
| 3.14.0 | 20 | 12/19/2025 |
| 3.13.1 | 20 | 12/23/2025 |
| 3.13.0 | 22 | 12/18/2025 |
| 3.12.0 | 18 | 12/21/2025 |
| 3.11.0 | 17 | 12/23/2025 |
| 3.10.0 | 21 | 12/16/2025 |
| 3.9.0 | 20 | 12/14/2025 |
| 3.8.1 | 24 | 12/20/2025 |
| 3.8.0 | 22 | 12/20/2025 |
| 3.7.0 | 17 | 12/19/2025 |
| 3.6.3 | 22 | 12/20/2025 |
| 3.6.2 | 19 | 12/20/2025 |
| 3.6.1 | 22 | 12/20/2025 |
| 3.6.0 | 23 | 12/15/2025 |
| 3.5.0 | 23 | 12/23/2025 |
| 3.4.0 | 20 | 12/20/2025 |
| 3.3.3 | 18 | 12/20/2025 |
| 3.3.2 | 25 | 12/20/2025 |
| 3.3.1 | 19 | 12/20/2025 |
| 3.3.0 | 25 | 12/09/2025 |
| 3.2.4 | 22 | 12/20/2025 |
| 3.2.3 | 19 | 12/20/2025 |
| 3.2.2 | 21 | 12/20/2025 |
| 3.2.1 | 22 | 12/20/2025 |
| 3.2.0 | 24 | 12/19/2025 |
| 3.1.0 | 21 | 12/23/2025 |
| 3.0.7 | 22 | 12/20/2025 |
| 3.0.6 | 20 | 12/20/2025 |
| 3.0.5 | 25 | 12/14/2025 |
| 3.0.4 | 25 | 12/20/2025 |
| 3.0.3 | 20 | 12/11/2025 |
| 3.0.2 | 22 | 12/18/2025 |
| 3.0.1 | 19 | 12/14/2025 |
| 3.0.0 | 21 | 12/16/2025 |
| 3.0.0-beta1 | 18 | 12/31/2025 |