Quartz.Plugins.TimeZoneConverter 4.0.0-alpha.1


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();

No packages depend on Quartz.Plugins.TimeZoneConverter.

https://github.com/quartznet/quartznet/releases

Version Downloads Last updated
4.0.0-alpha.3 1 08/27/2026
4.0.0-alpha.2 2 08/26/2026
4.0.0-alpha.1 3 08/22/2026
3.20.0 0 08/27/2026
3.19.1 12 07/26/2026
3.19.0 12 07/27/2026
3.18.2 15 06/28/2026
3.18.1 30 04/27/2026
3.18.0 27 04/17/2026
3.17.1 29 04/17/2026
3.17.0 27 04/17/2026
3.16.1 28 04/17/2026
3.16.0 29 04/17/2026
3.15.1 21 04/17/2026
3.15.0 29 04/17/2026
3.14.0 22 04/17/2026
3.13.1 29 04/17/2026
3.13.0 30 04/17/2026
3.12.0 28 04/17/2026
3.11.0 27 04/17/2026
3.10.0 27 04/17/2026
3.9.0 24 04/17/2026
3.8.1 26 04/17/2026
3.8.0 26 04/17/2026
3.7.0 28 04/17/2026
3.6.3 28 04/17/2026
3.6.2 29 04/17/2026
3.6.1 26 04/17/2026
3.6.0 23 04/17/2026
3.5.0 25 04/17/2026
3.4.0 27 04/17/2026
3.3.3 27 04/17/2026
3.3.2 18 04/17/2026
3.3.1 29 04/17/2026
3.3.0 30 04/17/2026
3.2.4 24 04/17/2026
3.2.3 25 04/17/2026
3.2.2 26 04/17/2026
3.2.1 25 04/17/2026
3.2.0 26 04/17/2026
3.1.0 27 04/17/2026
3.0.7 20 04/17/2026