Time off reminder
Sends a heads-up notification to each employee on the last working day before an upcoming period of time off begins, and warns approvers about requests that are still undecided.
How it works
The reminder job runs daily and looks two weeks ahead for approved time off:
- Finds upcoming time off — every full-day planned period with an end date that starts within the next 14 days
- Merges adjacent periods — consecutive periods of time off separated only by the employee’s own non-working days (weekends, holidays, custom rest days) are merged into a single block. This avoids sending two reminders for “vacation Friday, then sick day Monday”
- Picks the right day — the reminder fires only when the employee’s previous working day equals today. Time off starting on a Monday triggers the reminder on Friday; one starting after a long weekend triggers on the last working day before that weekend
- Sends one notification — an in-app notification plus an email. Running the job again on the same day does not send it twice
Open-ended periods, partial-day periods, and periods that have already started are not eligible.
The same job also sends a decision deadline warning: when a time off request is still pending on the employee’s last working day before it starts, it has to be decided that day. The approver (and anyone standing in for them) and the employee are both notified.
When it runs
The job runs automatically and only triggers on workspaces with at least one planned period of time off in the next two weeks, or a pending time off request.
Parameters
This job has no parameters. The run date is the day used to evaluate “the last working day before”.
Job results
| Metric | Description |
|---|---|
reminders_sent | Number of new reminder notifications created |
reminders_no_user | Employees without a linked user account (no notification could be sent) |
reminders_duplicates | Reminders that were already sent for the same time off (expected when the job is run again) |
reminder_errors | Failures during processing |
pending_deadline_sent | Decision deadline warnings sent |
pending_deadline_no_user | Deadline warnings that could not be sent because the recipient has no user account |
pending_deadline_duplicates | Deadline warnings that were already sent |
pending_deadline_errors | Failures while sending deadline warnings |
What the employee sees
A single notification covering the full merged block, addressed to the employee by their preferred name. It shows the relevant time off account name when all parts share the same account, or a generic “time off” label when the block mixes different account types. It states when the time off starts — “tomorrow” when it begins the next day, otherwise the weekday (for example “on Monday”) — and the number of working days off.
Troubleshooting
| Issue | Solution |
|---|---|
| Employee did not receive a reminder | Confirm the employee has a linked user account and that the time off has an end date, is full-day, and starts within the next 14 days |
| Reminder fired on the wrong day | The job uses the employee’s own schedule to compute the previous working day. Custom non-working days or partial-day schedules can shift the day. Check the employee’s work time policy and any individual schedule changes |
| Two reminders for the same vacation | The merge logic only joins periods separated by non-working days. A gap that includes one working day will produce two reminders. Verify the period boundaries |