Compatibility
Minecraft: Java Edition
Platforms
Tags
Creators
Details
SRV-Cron
Continuation of the well-known Cron plugin — MC-Cron.
All credits go to the original author — TheTadeSK.
SRV-Cron is an all-in-one Minecraft server scheduler that has many features to schedule jobs for certain times or in-game events.
It is a continuation of the well-known Cron plugin MC-Cron, with many additional and expanded features that the original MC-Cron plugin does not provide, such as PlaceholderAPI support, sending commands as players, variable actions, and condition checking.
Features
These are some of the features that this plugin provides.
- Customizable jobs
- Various command execution
- Execute commands by every online player
- Send title messages to every online player
- Play sounds to every online player
- Filter command action receivers by a condition or permission
- Event jobs & commands
- Start-up commands
- Delayed command execution with
/timer - BungeeCord support
- PlaceholderAPI support
Available Events
Use these values in the configuration:
join-eventquit-eventweather-change-eventworld-load-eventplayer-bed-enter-eventplayer-change-world-eventplayer-gamemode-change-eventplayer-kick-eventchat-eventcommand-eventitem-pickup-eventplayer-advancement-done-event
Built-in Placeholders
{player_name}— for events that relate to a player{world_name}— for events that relate to a world
And many more event-specific placeholders.
Read more here:
https://github.com/M0diis/SRV-Cron/wiki/Configuration#events
You can use both placeholders if the event relates to both a player and a world, for example player-change-world-event.
BungeeCord has only two events available: join and quit.
Commands & Permissions
Run command after specified seconds
Command:
/timer <seconds> <command>
Permission:
srvcron.command.timer
Reload configuration & jobs
Command:
/srvcron reload
Permission:
srvcron.command.reload
Run cron or event job manually
Command:
/srvcron run <job-name>
/srvcron run event <event-name>
Permission:
srvcron.command.run
Suspend job execution
Command:
/srvcron suspend <job-name>
Permission:
srvcron.command.suspend
Resume job execution
Command:
/srvcron resume <job-name>
Permission:
srvcron.command.resume
Job information
Command:
/srvcron jobinfo <job-name>
Permission:
srvcron.command.jobinfo
Job & event list
Command:
/srvcron list [events]
Permission:
srvcron.command.list
Configuration
Configuration is pretty simple and easy to understand.
For a more detailed explanation, visit the GitHub Wiki:
Configuration · M0diis/SRV-Cron Wiki
Default Configuration
jobs:
save:
time: every 1 hour
commands:
- say Saving world!
- save-all
- say Save Complete!
restart:
time: every 1 day of week at 6:00
commands:
- say Server restart in 10 seconds!
- timer 10 stop
tps:
time: every 30 minutes
commands:
- tps
# If you do not want to use any event jobs, use:
# event-jobs: { }
event-jobs:
join-event:
welcome:
time: 1
commands:
- tell {player_name} Hello!
- <ALL>[CHAT] Hello {player_name}!
quit-event:
bye:
time: 5
commands:
- say {player_name} left the game few seconds ago.
player-gamemode-change-event:
notify:
time: 0
commands:
- '<ALL> [TEXT (PERM:staff.notify.gamemode)] Player {player_name} changed his gamemode from {from_gamemode} to {to_gamemode}.'
startup:
commands:
- say Server was started!
- timer 60 say Server is online for 1 minute!
- save-all
schedule:
# Controls numeric weekdays in expressions like: every day of week in 1,5 at 12:00
# Supported: monday-first (default, ISO), sunday-first (legacy), iso, legacy
weekday-numbering: monday-first
debug: false
silent-start: false
notify-update: true
log-to-file: true
locale: 'en'
Syntax
# named weekdays
time: every wednesday at 00:00
time: every monday,friday at 18:30
# list/range support
time: every day of week in 1,3,5 at 12:00
time: every day of week in 2..6 at 07:45
time: every day of month in 1..5 at 09:00
# plain intervals
time: every 30 seconds
time: every 5 minutes
time: every 1 hour
time: every 2 days
# multiple times per day
time: every day at 08:00,12:00,18:00
# time windows
time: every 15 minutes from 09:00 to 17:00
time: every 20 minutes from 23:00 to 03:00
# nth / last weekday in month
time: every 2nd monday of month at 10:00
time: every last friday of month at 22:00
# relative calendar keywords
time: every weekday at 09:00
time: every weekend at 11:00
time: every month on last-day at 23:55
# month-name schedules
time: every january,march day 1 at 08:00
# start/end constraints
time: every 1 hour between 2026-06-01 and 2026-09-01
# per-job timezone and jitter
# options order is: ... [between ...] [jitter ...] [timezone ...]
time: every day at 09:00 timezone Europe/Berlin
time: every 5 minutes jitter 30s
time: every 10 minutes jitter 2m timezone Europe/Berlin
# one-shot execution
time: at 2026-06-10 14:30
# classic cron expression (opt-in)
time: "cron: 0 0 * * 3"
time: "cron: */15 9-17 * * mon-fri"
Notes:
- Cron format is
minute hour day-of-month month day-of-week. - Cron supports
*, lists (,), ranges (-), and steps (/) in each field. - Cron month/day-of-week names are supported (e.g.
jan,mon-fri). - Day-of-week DSL numbers stay compatible with existing configs (
1=Sunday ... 7=Saturday). - Legacy expressions are still accepted for backward compatibility:
every 4 day of week at 00:00(or withoutat, defaults to00:00)every 1 day of month at 09:00(or withoutat, defaults to00:00)
API
For a more detailed explanation, visit the GitHub Wiki:
There are currently 3 events that are fired upon certain actions:
You can also interact with the API.


