Quartz.Dashboard 4.0.0

Prefix Reserved
dotnet add package Quartz.Dashboard --version 4.0.0
                    
NuGet\Install-Package Quartz.Dashboard -Version 4.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Quartz.Dashboard" Version="4.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Quartz.Dashboard" Version="4.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Quartz.Dashboard" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Quartz.Dashboard --version 4.0.0
                    
#r "nuget: Quartz.Dashboard, 4.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Quartz.Dashboard@4.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Quartz.Dashboard&version=4.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Quartz.Dashboard&version=4.0.0
                    
Install as a Cake Tool

Quartz.Dashboard

Quartz.Dashboard is a Blazor dashboard for Quartz.NET that runs inside your ASP.NET Core application and drives the schedulers registered in that same application.

Installation

It builds on Quartz.AspNetCore, which this package brings along, so one reference is enough:

dotnet add package Quartz.Dashboard

Usage

WebApplicationBuilder builder = WebApplication.CreateBuilder(args);

builder.AddQuartz();
builder.Services.AddQuartzHttpApi();
builder.Services.AddQuartzDashboard();
builder.AddQuartzHostedService(options => options.WaitForJobsToComplete = true);

WebApplication app = builder.Build();

app.UseAntiforgery();
app.MapStaticAssets();
app.MapQuartzHttpApi().RequireAuthorization();
app.MapQuartzDashboard().RequireAuthorization();

The UI is then at /quartz. MapQuartzDashboard("/ops/quartz") serves it somewhere else — pages, assets and the Blazor circuit all move with it — and AddQuartzDashboard(options => …) takes an authorization policy, which is what a deployment reachable by anyone but you needs.

The RequireAuthorization() on both map calls is not decoration. The dashboard and the API add no authentication of their own, both are fully mutating, and a job scheduled through either names its type as a string the request supplies — which, with Quartz.Jobs on the host's probing path, reaches NativeJob and its process. A mapping that says nothing about authorization refuses to start; say AllowAnonymous() where you mean it.

app.MapStaticAssets() is what serves the dashboard's stylesheet and scripts; without it the pages render unstyled and inert. A project with no .razor files of its own also needs <RequiresAspNetWebAssets>true</RequiresAspNetWebAssets>, or the Blazor framework script is missing too. app.UseAuthentication() needs an authentication scheme the application registered — the dashboard authorizes, and something else authenticates.

Execution history needs nothing installed: AddQuartzDashboard() registers the history plugin itself, and the History page fills as jobs run. The q.UseJobHistoryLogging() and q.UseTriggerHistoryLogging() plugins from Quartz.Plugins are a separate thing — they write the same events to your application's log, and the dashboard does not read them.

Trimming

This package is deliberately not trimmable, and does not declare IsTrimmable. Blazor Server is a reflective framework: a component's [Parameter] properties are set by name from the render tree, the router finds page components by type, and grids, event callbacks and the SignalR hub proxy all bind members that nothing statically references. That is the framework's model rather than anything this package could resolve, and the Blazor packages themselves are not marked trimmable either.

An application that publishes trimmed or native AOT therefore does so without the dashboard. Quartz, Quartz.AspNetCore and Quartz.HttpClient are trimmable, so a trimmed service can still be driven remotely over the HTTP API.

Hosting the dashboard itself in another process is not something this package does today: the client it registers reads the schedulers in its own container. A supported remote dashboard is designed in #3387.

Documentation

The full guide covers custom paths and reverse proxies, authorization, integrating into an existing Blazor application, and production hardening:

https://www.quartz-scheduler.net/documentation/quartz-4.x/packages/dashboard.html

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on Quartz.Dashboard:

Repository Stars
foxminchan/BookWorm
The practical implementation of Aspire using Microservices, AI-Agents
Version Downloads Last Updated
4.0.0 279 9/3/2026
4.0.0-rc.2 39 9/3/2026
4.0.0-rc.1 49 9/3/2026
4.0.0-beta.1 44 9/2/2026
4.0.0-alpha.5 58 8/31/2026
4.0.0-alpha.4 51 8/31/2026
4.0.0-alpha.3 57 8/27/2026
4.0.0-alpha.2 68 8/25/2026
4.0.0-alpha.1 77 8/22/2026
3.20.1 111 9/3/2026
3.20.0 1,636 8/27/2026
3.19.1 7,175 7/26/2026
3.19.0 1,422 7/24/2026
3.18.2 14,951 6/27/2026
3.18.1 19,539 4/25/2026
3.18.0 7,244 4/11/2026
3.17.1 1,418 4/3/2026
3.17.0 905 3/29/2026
3.16.1 8,132 3/4/2026
3.16.0 248 3/1/2026