Could the cron parser, or the scheduler core, ship as a package with no dependencies?
Wolverine chose Cronos for its recurring messages (JasperFx/wolverine#4307) with a stated reason: "a parser, not a scheduling engine; MIT, zero transitive deps, correct DST". Quartz's parser is at least as capable — H hashing, wrapping ranges, CronFormat.Unix, macros, the Vixie day-union, a builder — but it ships inside an assembly that references five Microsoft.Extensions.* packages and targets net10.0 alone, so a library that wants only the expression cannot take it.
This issue is a report, not a change. It answers, with sizes and a recommendation, two questions:
Quartz.Cron— a zero-dependency parser package. Verified starting point:CronExpression.cs,CronExpressionBuilder.cs,CronFormat.cs,CronMacros.cs,CronExpressionConstants.csplusUnixCronRewriter,TimeZones,TriggerConstants,BitUtil,StringExtensions,SerializationInfoExtensionsare ~5,000 lines over 11 files and BCL-only onceThrowstops dragging the ADO exception namespace (5 of its 30 members are used) andTimeZonesinlines the Mono check that is its only path toMicrosoft.Extensions.Logging.CronExpressionalready computes next/previous/invalid times from aDateTimeOffsetalone. Commit 7ff7284f20 (2026-08-30) anticipated exactly this split "mechanically rather than by redesign". Open questions the report must settle: the public surface; whether the namespace staysQuartzwith[TypeForwardedTo]fromQuartz.dll(binary and source compatible); the target-framework question — a parser that only targetsnet10.0serves nobody Cronos serves, sonet8.0;net10.0against the repository's single-target rule and the polyfill discipline that would cost; the public-API baseline mechanics (a new baseline file, a moved block inQuartz's); theMON/2message namingRecurrenceScheduleBuilder; who would consume it (Wolverine, MassTransit, TickerQ, Brighter, Aspire).Quartz.Core— whether the scheduler minus DI/hosting/health could be a minimal-dependency package. Verified:Extensibility/,Matchers/,Queries/,Impl/Calendar/,Impl/Recurrence/, every builder,IJob/IScheduler/ITrigger/IJobDetail/JobDataMap,IJobStore,IThreadPoolreference noMicrosoft.Extensions.*, noSystem.Text.Json, noSystem.Data;Core/usesMicrosoft.Extensions.Loggingdirectly in 9 of 20 files (CoreLogis aLoggerMessagepartial) andRAMJobStorein one;Configuration/is 28/44 M.E.-bound. So aQuartz.Abstractionsis mechanical and aQuartz.Corethat drops logging is a redesign. The report sizes both and says which, if either, is worth doing and when.
Output: a written report with a recommendation and rough sizes, filed here for a decision. No code in this issue.
Source: quartznet/quartznet