Following up our previous article about using the available Easy!Appointments console commands, today we will take a closer look on how to schedule some of them to automatically run based on a predefined schedule.
Cron Jobs (or Scheduled Tasks on Windows) are time-based scheduled jobs that are executed on predefined intervals or specific time during a day. Typically they automate maintenance and administration tasks although they can be used in many different ways.
The most common use cases for an Easy!Appointments installation are the automation of the Google Calendar Synchronization feature and the automated database backups.
Configuring On Linux/Mac
In order to use Cron Jobs on a Linux/Mac environment, you will need to open the crontab utility from the terminal.
crontab -e
This will open the predefined editor that you can use to add cron based commands. Each line represents a different scheduled task and you can add as many as you need. For Backup and Google Calendar Sync jobs that run every hour, we will need to add the following commands.
0 * * * * /usr/bin/php /path/to/easyappointments/index.php console backup
0 * * * * /usr/bin/php /path/to/easyappointments/index.php console sync
The first “0 * * * *” part configures the command to run every hour (0 minutes * hours * days etc). The second part is the command that will be executed (make sure you change the path to the index.php file with your own).
There are user friendly tools online that can generate the crontab line for you:
Configuring On Windows
Windows have a slightly different way to define scheduled tasks than Unix-like systems.
Open The Task Scheduler
- Open the start menu
- Search for “Task Scheduler”
- Open the app (if you have permission problems then try running it as an administrator)
Create A New Task
- Click on “Create Task”
- Add an appropriate name for the task (e.g. “EasyAppointments Sync”)
- Go to the “Triggers” tab and add a new trigger
- Set the task to daily, every hour
- Go to the “Actions” tab and add a new action
- Set the path to your “php.exe” file (e.g. “E:\xampp\php80\php.exe”)
- Set the “Start in” option to your Easy!Appointments installation path
- Add the path to the “index.php console sync” in the Arguments field
- Now save the scheduled task and wait till it’s first execution
There are plenty of online tutorials about how to configure scheduled tasks on Windows in case you need additional information. You can get started with this Medium post about configuring a PHP Cron in Windows.