Skip to main content
net10.0

Quartz.NET TimeZoneConverter integration https://github.com/mj1856/TimeZoneConverter; Quartz Scheduling Framework for .NET

Published
Aug 22, 2026
1mo ago
Total Downloads
8.1M
8,089,310

Install

dotnet add package Quartz.Plugins.TimeZoneConverter --version 4.0.0-alpha.1
ProductVersions
.NET
net10.0

README


title: TimeZoneConverter Integration

Quartz.Plugins.TimeZoneConverter plugs TimeZoneConverter into Quartz's time zone lookup, so that both Windows ids (Central America Standard Time) and IANA ids (America/Guatemala) resolve on either operating system.

Why you would want it

Every trigger that names a time zone names it by id, and TimeZoneInfo.FindSystemTimeZoneById answers with whatever ids the machine happens to know: Windows ids on Windows, IANA ids on Linux and macOS — with recent .NET able to convert between them only where the operating system has the data to do it. A schedule written on one and run on the other therefore throws TimeZoneNotFoundException at the point where a trigger is built or read back, and a schedule stored in a database is exactly the schedule that gets moved between them.

Adding the plugin registers a resolver with Quartz.TimeZones, which is what Quartz's own lookups go through. Both spellings then resolve everywhere, and a stored trigger keeps firing after its scheduler moves host.

Installation

You need to add NuGet package reference to your project which uses Quartz.

dotnet add package Quartz.Plugins.TimeZoneConverter

Using

builder.Services.AddQuartz(q => q.UseTimeZoneConverter());

UseTimeZoneConverter hangs off IQuartzBuilder, so the same call configures a scheduler built without a host:

await using StandaloneSchedulerFactory schedulerFactory = QuartzSchedulerBuilder.Create()
    .UseTimeZoneConverter()
    .Build();

Classic property-based configuration

NameValueCollection properties = new()
{
    ["quartz.plugin.timeZoneConverter.type"] = "Quartz.Plugins.TimeZoneConverter.TimeZoneConverterPlugin, Quartz.Plugins.TimeZoneConverter"
};

await using StandaloneSchedulerFactory schedulerFactory = QuartzSchedulerBuilder.Create()
    .UseProperties(properties)
    .Build();

Changes from Previous Version

v3.22.7v4.0.0-alpha.1
Added Frameworks
net10.0
Removed Frameworks
.NETFramework4.6.2.NETFramework4.7.2.NETStandard2.0
Removed Dependencies
Quartz(.NETFramework4.6.2)
TimeZoneConverter(.NETFramework4.6.2)
Quartz(.NETFramework4.7.2)
TimeZoneConverter(.NETFramework4.7.2)
Quartz(.NETStandard2.0)
TimeZoneConverter(.NETStandard2.0)

Adoption Assessment

A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.

This version is marked prerelease. Validate its API and upgrade path before production use.Compatibility metadata lists 1 target framework; confirm the exact target used by your application.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.