Home › Convert › Quartz to Azure Functions
Convert Quartz cron to Azure Functions
Quartz expressions look similar to Azure Functions, but the differences matter. Paste yours below; the result is checked against the original run times.
What changes from Quartz to Azure Functions
- Quartz numbers weekdays 1-7 starting on Sunday. Azure Functions starts on Sunday = 0, so every weekday number is reduced by one.
- Azure Functions does not use
?, so it is replaced with*. - Azure Functions has no year field. A specific year would be dropped, so the schedule would repeat every year; the converter warns you.
- Azure Functions has no
L,Wor#symbols. Schedules like "last day of the month" cannot be converted and are refused rather than silently changed.
Worked examples
| Schedule | Quartz | Azure Functions |
|---|---|---|
| every minute | 0 * * * * ? | 0 * * * * * |
| every 5 minutes | 0 */5 * * * ? | 0 */5 * * * * |
| every 10 minutes | 0 */10 * * * ? | 0 */10 * * * * |
| every 15 minutes | 0 */15 * * * ? | 0 */15 * * * * |
| every 30 minutes | 0 */30 * * * ? | 0 */30 * * * * |
| every hour | 0 0 * * * ? | 0 0 * * * * |
| every 2 hours | 0 0 */2 * * ? | 0 0 */2 * * * |
| every 3 hours | 0 0 */3 * * ? | 0 0 */3 * * * |
What cannot be converted
These common Quartz schedules have no equivalent in Azure Functions. The converter refuses them instead of guessing.
- on the last day of every month:
0 0 0 L * ?. This schedule cannot be expressed in Azure Functions NCRONTAB: "L" is not a valid dom value. - on the first Monday of every month at 9:00 AM:
0 0 9 ? * 2#1. This schedule cannot be expressed in Azure Functions NCRONTAB: "1#1" is not a valid dow value. - on the last Friday of every month at noon:
0 0 12 ? * 6L. This schedule cannot be expressed in Azure Functions NCRONTAB: "5L" is not a valid dow value.
Field layout and time zones
second (0-59), minute (0-59), hour (0-23), day-of-month (1-31), month (1-12), day-of-week (1-7, 1 = Sunday), year (1970-2199, optional).
Quartz uses the JVM default time zone unless you set one: CronScheduleBuilder.cronSchedule(expr).inTimeZone(TimeZone.getTimeZone("UTC")).
second (0-59), minute (0-59), hour (0-23), day-of-month (1-31), month (1-12), day-of-week (0-6, 0 = Sunday).
Azure Functions evaluates NCRONTAB in UTC unless the WEBSITE_TIME_ZONE app setting is set; with it, the schedule adjusts for daylight saving. The setting is not supported on Linux Consumption or Flex Consumption plans.
Go the other way
Convert Azure Functions to Quartz, or open the Quartz builder or the Azure Functions builder.
Frequently asked questions
How do I convert a Quartz cron expression to Azure Functions?
Paste it into the converter above with Quartz as the source and Azure Functions as the target. For example, 0 * * * * ? becomes 0 * * * * *.
Is every Quartz expression convertible to Azure Functions?
No. Out of 32 common schedules, 3 cannot be expressed in Azure Functions: on the last day of every month; on the first Monday of every month at 9:00 AM; on the last Friday of every month at noon.
Does Azure Functions run in the same time zone as Quartz?
Not necessarily. Conversion changes the syntax, not the time zone. Check where each system evaluates the schedule before you rely on the same clock times.