# Spring Cron Tools > Tools for Spring Framework `@Scheduled` cron expressions: generate, validate, parse, explain, test and convert them. Runs entirely in the browser. ## What a Spring cron expression is A Spring cron expression has **six fields, in this order: second minute hour day-of-month month day-of-week**. The seconds field has no default, so the Unix expression `0 9 * * 1-5` has no direct Spring equivalent — it becomes `0 0 9 ? * 1-5`. Rules that are easy to get wrong: - The field order starts with **second**. Unix cron starts with minute. - When **both** day-of-month and day-of-week are restricted, Spring requires a date matching **both** (AND). Unix cron treats the two as OR. Use `?` in the field you do not want to constrain. - Weekdays are numbered **0-7 with 0 = Sunday**. Quartz uses **1-7 with SUN = 1**, so a Quartz `6L` (last Friday) is a Spring `5L`. - Spring supports the Quartz day constructs: `L` (last), `L-` (n days before the end), `LW` (last weekday), `W` (weekday nearest day n), `L` (last such weekday) and `#` (the nth such weekday). - Month and weekday names are accepted, and **letter syntax is case-insensitive**: `MON-FRI`, `mon-fri` and `L`/`l` all mean the same thing, because Spring uppercases the expression before parsing it. - Macros: `@yearly` = `0 0 0 1 1 *`, `@annually` = `0 0 0 1 1 *`, `@monthly` = `0 0 0 1 * *`, `@weekly` = `0 0 0 * * 0`, `@daily` = `0 0 0 * * *`, `@midnight` = `0 0 0 * * *`, `@hourly` = `0 0 * * * *`. ## Tools - [Generator](https://springcron.com/spring-cron-generator): Build an expression from common schedules; writes the expression, the @Scheduled annotation and the next run times. - [Validator](https://springcron.com/spring-cron-validator): Validate an expression; every error names the field and offers a one-click fix. - [Parser](https://springcron.com/spring-cron-parser): Split an expression into its six fields with a plain-English meaning and the syntax each field accepts. - [Tester](https://springcron.com/spring-cron-tester): Preview the next 5, 10 or 20 execution times in any IANA timezone. - [Explainer](https://springcron.com/spring-cron-explainer): Read an expression back in plain English, including L, W and #. ## Converters - [Unix to Spring](https://springcron.com/convert/unix-to-spring): Five Unix fields to six Spring fields; flags where OR-versus-AND day semantics change the schedule. - [Quartz to Spring](https://springcron.com/convert/quartz-to-spring): Drops the Quartz year field and renumbers weekdays from SUN = 1 to 0 = Sunday. - [Spring to Quartz](https://springcron.com/convert/spring-to-quartz): Adds the Quartz year field and renumbers weekdays from 0 = Sunday to SUN = 1. ## Guides - [Spring Cron: the 6 Fields Explained](https://springcron.com/guides/spring-cron-6-fields): A field-by-field reference for Spring Cron expressions: second, minute, hour, day-of-month, month and day-of-week, with ranges, steps, L, W and #. - [Spring Cron vs Unix Cron: What Differs](https://springcron.com/guides/spring-vs-unix): The differences between Spring @Scheduled cron and Unix crontab: six fields instead of five, AND instead of OR for day fields, and no L/W/# support. - [Spring Cron vs Quartz Cron](https://springcron.com/guides/spring-vs-quartz): Spring and Quartz cron look alike but number days of the week differently: Spring uses 0-7 with 0 = Sunday, Quartz uses 1-7 with SUN = 1. - [Spring Cron Timezones and DST](https://springcron.com/guides/spring-cron-timezone): How Spring cron expressions behave across timezones and daylight saving time, and how to pin a schedule with the zone attribute. ## Examples - [All examples](https://springcron.com/spring-cron-examples): 14 common schedules with a meaning, a @Scheduled snippet and next run times. ## Conventions used on this site - Times are shown in the timezone you pick; the browser zone is the default. - Cron semantics follow the Spring Framework reference documentation. - Nothing is sent to a server.