Example schedules

Cron

5 fields: minute hour day-of-month month day-of-week

systemd OnCalendar=

Weekday Year-Month-Day Hour:Minute:Second

In plain English

Type a cron expression or an OnCalendar= value to see the translation.

Quirk notes (read these)

Day-of-week numbering
Cron uses 0 and 7 for Sunday, 1 = Monday … 6 = Saturday. systemd uses English names (MonSun), and the weekly shortcut is Monday 00:00 — while cron @weekly is Sunday 00:00.
Ranges and steps
Cron ranges use a hyphen (1-5, */15, 1-10/2). systemd ranges use .. (Mon..Fri, 01..07) and steps as a suffix (00/15, 1/2). Star-plus-step in systemd is written from the start value, e.g. *:00/15 not */15.
Day-of-month AND/OR
When both day-of-month and day-of-week are restricted, Vixie cron ORs them (30 4 1,15 * 5 = the 1st, the 15th, and also every Friday). systemd ANDs weekday and date in one OnCalendar= (Fri *-*-01,15 only on Fridays that are the 1st or 15th). Multiple OnCalendar= lines in one timer unit are OR’d — that is the correct mapping for cron’s OR.
No cron equivalent
systemd calendar events can include seconds, a year, a timezone, and last-day-of-month with ~ (*-02~03 = third-last day of February). Standard 5-field cron cannot express those. Timezones belong in CRON_TZ=, not in the five fields.
Unsupported on purpose
This tool does not invent mappings for Quartz L/W/#, 6-field “seconds or year” crons, @reboot (use OnBootSec=), monotonic timers (OnUnitActiveSec=), or exotic fractional-second repeats.