Home/Tools/Cron Expression Builder

Cron Expression Builder

FreeVisual BuilderLaravel-readyNext Run Times
Cron Expression Builder
Frequency
Schedule Settings

Runs every minute — no additional settings needed.

At minuteof every hour
Atevery day
At
On dayat
Onat
0–59
0–23
1–31
1–12
0–7
Expression
min
hour
dom
mon
dow

Runs every hour

High Frequency
This expression runs every minute (60×/hour). Verify this is intentional before deploying.
Next 5 Runs
  • Loading…
Laravel Schedule Equivalent
$schedule->command('artisan:command')->hourly();
FieldRangeAllowed special chars
Minute0–59* / - ,
Hour0–23* / - ,
Day of month1–31* / - , L W
Month1–12* / - ,
Day of week0–7 (0=Sun)* / - , L #
Special Characters
*
All values
* * * * * — every minute
/
Step
*/5 * * * * — every 5 minutes
-
Range
1-5 * * * * — minutes 1 through 5
,
List
0,30 * * * * — at :00 and :30
L
Last (dom/dow)
0 0 L * * — last day of month
W
Nearest weekday
0 0 15W * * — nearest weekday to 15th
#
Nth weekday
0 0 * * 1#2 — 2nd Monday
Common Examples
ExpressionDescription
0 8 * * 1-5Every weekday at 8:00 AM
*/5 * * * *Every 5 minutes
0 0 L * *Last day of every month at midnight
0 9 * * 1#1First Monday of every month at 9 AM
30 23 * * 5Every Friday at 11:30 PM
About This Tool

This tool uses standard 5-field cron syntax supported by most Unix/Linux cron daemons, Laravel's task scheduler, and cloud job schedulers.

Quartz Scheduler Extensions
L (last), W (nearest weekday), and # (nth weekday) are Quartz scheduler extensions. They work in Laravel's scheduler (dragonmantank/cron-expression) but may not be supported by /etc/cron.d, crontab, or other standard Unix cron implementations.

Laravel shortcuts: @hourly, @daily, @weekly, @monthly, @yearly are supported in the expression input and expand to their 5-field equivalents.

Mỗi ngày lúc 2 giờ sáng chạy backup database. Mỗi thứ Hai đầu tuần gửi email báo cáo. Mỗi 15 phút ping để kiểm tra server còn sống không. Tất cả những tác vụ định kỳ đó đều cần cron expression — và viết đúng cú pháp không phải lúc nào cũng dễ nhớ. Tool Cron Builder này cho phép bạn tạo cron expression bằng giao diện kéo thả trực quan, không cần nhớ cú pháp.

Cron là gì?

Cron là trình lập lịch tác vụ (job scheduler) có mặt trên hầu hết hệ thống Unix/Linux. Cron đọc file cấu hình gọi là crontab — trong đó mỗi dòng là một job với một cron expression mô tả lịch chạy.

Ngày nay cron expression được dùng rộng rãi hơn cả Linux crontab — từ GitHub Actions, AWS EventBridge, Google Cloud Scheduler, Kubernetes CronJob, đến các framework như Laravel Task Scheduling, Django-celery, Spring Boot Quartz, Node.js node-cron.

Cấu trúc cron expression

Một cron expression tiêu chuẩn gồm 5 trường, cách nhau bởi dấu cách, theo thứ tự: Phút (0-59)Giờ (0-23)Ngày trong tháng (1-31)Tháng (1-12)Ngày trong tuần (0-7). Ví dụ: 0 2 * * * nghĩa là mỗi ngày lúc 2:00 AM.

Một số hệ thống (AWS, Quartz, GitHub Actions) dùng 6 trường — thêm trường Giây ở đầu hoặc trường Năm ở cuối. Tool này hỗ trợ cả hai định dạng.

Cách sử dụng Cron Builder

  • Chế độ Visual: Chọn tần suất (mỗi phút, giờ, ngày, tuần, tháng), điền giá trị vào các ô — expression tự động được tạo ra phía dưới.
  • Chế độ Manual: Gõ thẳng cron expression vào ô nhập liệu — tool parse và giải thích bằng tiếng Anh rõ ràng, đồng thời hiển thị 5 lần chạy tiếp theo.
  • Copy: Nhấn copy để lấy expression dùng trong code hoặc cấu hình hệ thống.

Ký hiệu đặc biệt trong cron expression

Ký hiệuTênÝ nghĩaVí dụ
*WildcardMọi giá trị hợp lệ* ở trường giờ = mọi giờ
,ListLiệt kê nhiều giá trị1,3,5 = thứ 2, 4, 6
-RangeKhoảng từ-đến9-17 = từ 9h đến 17h
/StepMỗi n đơn vị một lần*/15 = mỗi 15 phút
LLastNgày cuối tháng hoặc tuầnL ở trường ngày = ngày cuối tháng
WWeekdayNgày làm việc gần nhất15W = ngày làm việc gần ngày 15
#Nth weekdayThứ N trong tháng1#3 = thứ 2 lần thứ 3 trong tháng
?No valueKhông xác định (Quartz/AWS)Dùng khi đã set ngày tháng, không muốn set ngày tuần

Ví dụ cron expression thực tế

Cron ExpressionLịch chạyUse case
* * * * *Mỗi phút một lầnHeartbeat check, polling liên tục
0 * * * *Đầu mỗi giờSync dữ liệu theo giờ
0 2 * * *Mỗi ngày lúc 2:00 AMBackup database, cleanup log
0 9 * * 1Thứ Hai mỗi tuần lúc 9:00 AMGửi báo cáo đầu tuần
0 0 1 * *Ngày 1 mỗi tháng lúc 00:00Billing cycle, monthly report
*/15 * * * *Mỗi 15 phútHealth check, cache refresh
0 9-17 * * 1-5Mỗi giờ trong giờ làm việc T2-T6Sync dữ liệu giờ hành chính
0 0 * * 0Chủ nhật lúc nửa đêmWeekly maintenance, full backup
30 23 L * *23:30 ngày cuối mỗi thángEnd-of-month processing
0 6 1 1 *6:00 AM ngày 1 tháng 1Tác vụ đầu năm mới

Cron expression trên các nền tảng phổ biến

Nền tảngĐịnh dạngLưu ý
Linux crontab5 trường tiêu chuẩnChỉnh sửa bằng crontab -e
GitHub Actions5 trường — UTC timezoneDùng trong on.schedule.cron, luôn là UTC
AWS EventBridge6 trường, dùng ?Không thể set cả ngày-tháng và ngày-tuần, phải dùng ?
Kubernetes CronJob5 trường — chuẩn LinuxNên dùng UTC để tránh nhầm lẫn timezone
Laravel SchedulerCron string hoặc helper method->cron('0 2 * * *') hoặc ->dailyAt('02:00')
Quartz (Java)6-7 trường (giây đứng đầu)Trường giây đứng đầu — khác crontab Linux

Lưu ý quan trọng khi dùng cron

  • Timezone luôn là bẫy: Cron chạy theo timezone của server. Nếu server ở UTC và bạn muốn chạy lúc 8:00 AM giờ Việt Nam (UTC+7), phải đặt 0 1 * * *. Nhiều lỗi production xuất phát từ nhầm lẫn timezone này.
  • Test trước khi deploy: Dùng tool này để xem danh sách 5-10 lần chạy tiếp theo, đảm bảo lịch đúng ý trước khi push lên production.
  • Tránh chạy đúng phút 0 giờ 0:0 0 * * * là thời điểm nhiều hệ thống cùng chạy — gây spike tải. Thêm offset như 17 0 * * * để phân tán tải.
  • Không có giây trong crontab Linux: Nếu cần chạy mỗi 30 giây, phải dùng hai dòng cron hoặc công cụ khác (systemd timer, Quartz).

Kết luận

Cron expression trông đáng sợ lúc đầu nhưng thực ra có logic rất rõ ràng. Sau vài lần dùng bạn sẽ đọc và viết được những expression thông thường mà không cần tra cứu. Còn với những lịch phức tạp — cứ paste vào đây, xem giải thích và danh sách lần chạy tiếp theo là yên tâm rồi.

Khám phá thêm các tool hữu ích tại codetuthub.com/tools.

Thông báo hệ thống
Thông tin
Online Tools