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.
.NET 10.0
- Quartz (>= 4.0.0-alpha.1)
- TimeZoneConverter (>= 7.2.0)
- Microsoft.Extensions.DependencyInjection (>= 10.0.11)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Logging (>= 10.0.11)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.11)
| 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 |