Recurring Jobs
Setting up and managing recurring job schedules
Recurring jobs let you automate appointment creation for work that repeats on a regular schedule. Instead of manually creating a new appointment each week or month, ServiceCortex generates them automatically based on the recurrence rule you define. This is ideal for maintenance contracts, cleaning schedules, lawn care rotations, and any other repeating service.
Setting up a recurring job
When creating or editing a job, set the Job type to Recurring. This unlocks the recurrence configuration fields:
| Field | Description |
|---|---|
| Recurrence every | How often the job repeats. For example, "every 2" combined with a unit of "weeks" means the job repeats every two weeks. |
| Recurrence unit | The frequency unit: days, weeks, months, or years. |
| First service at | The date of the first appointment. |
| Next service at | The date of the next upcoming appointment. Updated automatically as appointments are generated. |
Once saved, the system begins generating appointments based on the configured schedule.
Recurrence rule types
For more advanced scheduling, you can create a Recurrence Rule on the job. Recurrence rules support the following types:
| Type | Description | Example |
|---|---|---|
| DAILY | Repeats every N days. | Every 3 days |
| WEEKDAYS | Repeats on specific days of the week. | Every Monday and Thursday |
| NTH_OF_MONTH | Repeats on a specific day of each month. | The 15th of every month |
| YEARLY | Repeats once per year on a specific date. | March 1st each year |
Each rule type accepts a params object for additional configuration (such as which days of the week or which day of the month) and optional starts on and ends on dates to bound the recurrence window.
How appointments are generated
ServiceCortex runs a daily background process that scans all active recurring jobs and generates appointments for the upcoming period (90 days ahead by default). The system:
- Finds the last generated appointment for the job (or uses the first service date if none exist).
- Calculates the next occurrence based on the recurrence configuration.
- Checks whether an appointment already exists for that date.
- Checks for any recurrence exceptions (skipped or rescheduled dates).
- Creates a new appointment in Scheduled status if no conflicts are found.
- Repeats until the look-ahead window is filled.
You can also trigger appointment generation manually from the job detail view if you need appointments created beyond the automatic window.
Managing exceptions
Not every occurrence needs to happen as scheduled. Recurrence exceptions let you skip or reschedule individual dates without changing the overall pattern.
Skipping a date
To skip an appointment on a specific date:
- Open the recurring job detail view.
- Navigate to the recurrence schedule.
- Click Skip on the date you want to exclude.
Skipping a date creates a recurrence exception and cancels any existing appointment for that date. Future occurrences continue as normal.
Rescheduling a single occurrence
To move a single occurrence to a different date:
- Find the occurrence you want to move.
- Click Reschedule and select the new date.
This creates an exception for the original date with a replacement date. The recurrence pattern itself is unchanged -- only that one occurrence moves.
Removing an exception
If you change your mind about a skip or reschedule, you can remove the exception. The system will regenerate the appointment for that date on its next processing run.
Ending recurrence
There are several ways to stop a recurring job from generating new appointments:
- Set an end date -- configure the ends on field on the recurrence rule. No appointments will be generated after this date.
- Set a maximum count -- when using the advanced recurrence rule, you can specify a maximum number of occurrences.
- Change the job type -- switch the job back to One-off to stop all future generation.
- Cancel the job -- setting the job status to Cancelled or Archived stops appointment generation. Existing appointments are not affected.
Billing for recurring jobs
Recurring jobs support flexible billing configurations:
| Billing type | Description |
|---|---|
| Per visit | An invoice is generated for each completed appointment. |
| Fixed cadence | Invoices are generated on a set schedule (monthly, quarterly) regardless of the number of visits. |
You can configure billing type, cadence, and anchor day on the job detail view. The system tracks the next billing date and generates invoices accordingly.
What's next
- Schedule individual appointments within a job.
- Set up invoicing for recurring work.
- Manage your calendar to see recurring appointments across all jobs.