crontool
Paste a schedule, read it in English, see the next runs.

Cron Expression: Last Friday of the Month

Standard cron can't say “last Friday.” The reliable way is to run every Friday and keep only the one where adding 7 days lands in the next month. Here is the correct expression and gate.

Why there is no direct expression

Vixie cron matches calendar fields and has no L (last) operator. “Last Friday” depends on how many Fridays a month has (4 or 5), which varies, so it must be computed at run time.

The correct pattern

Run every Friday at 17:00 and gate on whether next week is still this month:

0 17 * * 5 in cron, then: [ "$(date -d '+7 days' +%m)" != "$(date +%m)" ] || exit 0. If Friday + 7 days is a different month, this is the last Friday — otherwise skip.

The 0 17 * * 5L trap

Some schedulers (Quartz) accept 5L for “last Friday,” but Vixie/cronie on Linux do not — it errors or is ignored. Do not rely on L in a Linux crontab; use the script gate above.

Quartz equivalent

0 0 17 ? * 6L gives the last Friday at 17:00 directly in Quartz (day 6 = Friday there).

FAQ

How do I run a cron job on the last Friday of the month?

Run every Friday (0 17 * * 5) and gate the script with [ "$(date -d '+7 days' +%m)" != "$(date +%m)" ] || exit 0, which only passes when next Friday is in a new month.

Does Linux cron support 5L for last Friday?

No. The L operator is a Quartz feature; Vixie/cronie on Linux do not support it. Use the +7-days date check instead.

What is the Quartz version?

0 0 17 ? * 6L selects the last Friday at 17:00 directly.