Agent setup guide
Holiday & Time-Off Coverage Planner
Checks the next 14 days of time off against your minimum cover and public holidays, suggests swaps and sends handover checklists.
What it does
Checks the next 14 days of time off against your minimum cover and public holidays, suggests swaps and sends handover checklists.
- Every Monday, reads your time-off and roster tabs in Google Sheets and your country's public holidays from Nager.Date (free, no key).
- Dates are worked out in code, never by the AI: days until or since each date, the window and business days are computed in your workflow's time zone, and records outside the window are skipped before the AI sees them.
- AI checks each working day (Monday–Friday) of the next 14 days against your minimum cover per team or role.
- Flags days under minimum, critical roles with no backup (or a backup who is also out) and public-holiday clashes.
- Posts the plan with suggested swaps from your roster to your managers' Slack channel.
- DMs everyone whose time off starts in the next 7 days (picked in code) a handover checklist and a suggested out-of-office message (up to 30 people).
What it needs
- A paid plan (agents run live on paid plans).
- An AI provider key (Settings → AI Providers).
- Google Sheets and Slack, connected in Settings → Integrations, plus an HTTP / Custom API connection to date.nager.at (no key).
- A time-off tab and a roster tab, and your written minimum-cover rules.
What it doesn't do
- It plans only: it doesn't approve or decline leave and doesn't edit HR systems, calendars or rotas.
- It covers one country's national public holidays; regional holidays are only partly in the API and are mentioned, not counted.
- It never repeats the reason for an absence and never mentions health or personal circumstances.
- Suggestions come only from people in your roster; managers make the call.
- It checks Monday–Friday cover only; weekend shifts aren't checked.
Availability and plans
Available
Its workflow is built and tested, and every app it needs is live. You can get it and set it up now.
Included free on the Enterprise plan; on other paid plans it's a one-time purchase per workspace (the price is on the Agents page). The Agents page in the app always shows its current status.
Before you start
- A paid plan: agents run live, and the Free plan only runs Dry Runs.
- An AI provider key (OpenAI, Anthropic, Google and more) in Settings → AI Providers. AI usage is billed by your provider.
- These apps, connected in Settings → Integrations: Google Sheets, HTTP / Custom API and Slack.
- Nothing to send: the agent runs on a schedule.
- About 20 minutes.
Set it up step by step
Get the agent first (buy it, or it's already yours when your plan includes it), then in Agents → My agents press “Set up this agent”. That creates the agent's workflow in your workspace (it counts towards your plan's workflow limit) and opens the canvas with a setup checklist above it. Each item links to the exact place to go and ticks itself off when it's done.
1. Connect your AI provider
The AI steps run on your own key (OpenAI, Anthropic, Google and more). Add one in Settings → AI Providers.
2. Connect Google Sheets
Connect the Google account that can open your time-off and roster sheets (Settings → Integrations → Google Sheets).
3. Connect Nager.Date (HTTP / Custom API)
In Settings → Integrations → HTTP / Custom API add a connection named Nager.Date: base URL https://date.nager.at, authentication “None”. It's a free public-holiday API with no key; check its terms at date.nager.at.
4. Connect Slack
Connect the Slack workspace your team uses (Settings → Integrations → Slack).
5. Write your cover rules
Open “Find cover gaps” and replace the placeholder with your minimums, critical roles, holiday rule and handover checklist.
| Setting | What to enter | In step |
|---|---|---|
| Your cover rules and handover checklist | Replace the placeholder with your teams and roles, the minimum on duty per team or role, which roles are critical, whether public holidays are days off, the team inbox for urgent questions and your handover checklist. It starts as “[PASTE YOUR COMPANY NAME, YOUR TEAMS AND ROLES, THE MINIMUM NUMBER ON DUTY PER TEAM OR ROLE (AND ON WHICH DAYS), WHICH ROLES ARE CRITICAL, WHETHER PUBLIC HOLIDAYS ARE DAYS OFF, AND YOUR HANDOVER CHECKLIST HERE]” until you replace it. | “Find cover gaps” |
6. Pick your sheets
Open “Read the time-off sheet” and “Read the team roster” and pick the account, spreadsheet and tab for each.
| Setting | What to enter | In step |
|---|---|---|
| Google account (time off) | The Google account that can open your time-off spreadsheet. Pick your connected Google Sheets account. | “Read the time-off sheet” |
| Time-off spreadsheet | Paste the link of the spreadsheet with your time-off tab. | “Read the time-off sheet” |
| Time-off tab | The tab with one row per absence, e.g. Time off. | “Read the time-off sheet” |
| Google account (roster) | The same Google account, used to read the roster. Pick your connected Google Sheets account. | “Read the team roster” |
| Roster spreadsheet | Paste the link of the spreadsheet with your roster tab (often the same one). | “Read the team roster” |
| Roster tab | The tab with one row per person who can cover, e.g. Roster. | “Read the team roster” |
7. Set your country
Open “Get upcoming public holidays”, pick the Nager.Date connection and put your country code in the path.
| Setting | What to enter | In step |
|---|---|---|
| Nager.Date connection (HTTP / Custom API) | An HTTP / Custom API connection with base URL https://date.nager.at and authentication “None” (free public API, no key). Pick your connected HTTP / Custom API account. | “Get upcoming public holidays” |
| Your country code | Replace [COUNTRY] in the path with your two-letter country code, e.g. /api/v3/NextPublicHolidays/US (GB, CA, AU, DE…). It starts as “[COUNTRY]” until you replace it. | “Get upcoming public holidays” |
8. Pick Slack
Open “Post the plan to managers”, “Find them in Slack” and “DM the handover checklist” and pick the account (and the managers' channel).
| Setting | What to enter | In step |
|---|---|---|
| Slack account (managers) | The Slack workspace your team uses. Pick your connected Slack account. | “Post the plan to managers” |
| Managers' Slack channel | The channel the weekly coverage plan goes to, e.g. #team-leads. | “Post the plan to managers” |
| Slack account (find people) | The same Slack workspace, used to find each person by email. Pick your connected Slack account. | “Find them in Slack” |
| Slack account (handover DMs) | The same Slack workspace, used to DM the handover checklist. Pick your connected Slack account. | “DM the handover checklist” |
9. Test it with Dry Run
Press Dry Run: the agent runs on sample data with no messages sent and nothing written to your apps.
10. Switch the trigger on
Open the trigger, set your time zone and switch the schedule on. It runs every Monday at 7:00.
How it works
The agent is a normal workflow with 12 steps (1 AI step). You can open, edit and monitor it like any other workflow.
- Every Monday at 7:00 — Runs on a schedule (cron 0 7 * * 1, UTC — change it in the trigger's settings). Runs every Monday morning. Set your time zone on the trigger.
- Read the time-off sheet — Google Sheets: Read rows. Reads your time-off tab: one row per absence with person, email, team, role, first and last day off, and their backup.
- Read the team roster — Google Sheets: Read rows. Reads your roster tab: everyone who can cover (name, email, team, role, working days, who can back up whom).
- Get upcoming public holidays — HTTP / Custom API: Send a request. Calls Nager.Date (free, no key) for your country's public holidays in the coming year.
- Check the time-off dates — Step. In code, not AI: keeps only absences that overlap the next 14 days (last day off today or later, first day off within 13 days), works out each person's return day (the next weekday after their last day off) and lists the Monday–Friday working days in the window. Change the 14 days here (first.within.max and the wd… dates).
- Find who starts time off this week — Step. In code, not AI: keeps the absences that start in the next 7 days — the people who get a handover checklist.
- Find cover gaps — AI step (runs on your AI provider key). The dates were worked out in code. AI checks each working day of the next 14 days: who is out, days under your minimum cover, critical roles with no backup and clashes with public holidays, and suggests swaps from your roster. It also writes each handover checklist and out-of-office message.
- Post the plan to managers — Slack: Post a message. Posts the gaps, critical roles without backup, holiday clashes and suggested swaps to your managers' channel.
- Each person out next week — Repeats the steps below for each item (up to 30 per run). Sends every person whose time off starts in the next 7 days their handover checklist (up to 30).
- [For each item — “Each person out next week”] Find them in Slack — Slack: Find user by email. Looks up the person's Slack account by their email address.
- [For each item — “Each person out next week”] DM the handover checklist — Slack: Post a message. Sends the handover checklist and a suggested out-of-office message as a direct message.
- Plan sent — Kept in the run history. The run history keeps the plan, the gaps and every handover message.
Test it with Dry Run
Press Dry Run in the canvas. The agent runs on the sample data stored on its trigger (the “Sample data for Dry Run” box), so you can check every step's output before anything is live.
- Nothing is sent or written: app actions, emails and Slack posts are simulated, and AI steps don't call your AI provider.
- For-each loops repeat only the first 3 items.
Go live
- Open the trigger, set your time zone and switch the schedule on. It runs every Monday at 7:00.
- Scheduled runs start only once the schedule is activated, and can't repeat faster than your plan's minimum interval.
- The setup checklist adds a “paid plan” item before activation: live runs need a paid plan (the Free plan only runs Dry Runs).
- When every checklist item is done and the trigger is on, the checklist says “Live — this agent is running”. Follow its runs in the workflow's History tab and in Analytics → Agents.
Questions
What should the sheets look like?
Time-off tab: Name, Email, Team, Role, First day off, Last day off, Backup. Roster tab: Name, Email, Team, Role, Working days, Can back up (roles or names). Column names can vary; the agent reads them from the header row.
How are the dates worked out?
In code, never by the AI: “Check the time-off dates” keeps only absences overlapping the next 14 days, lists the Monday–Friday working days and each person's return day, and “Find who starts time off this week” picks the people who get a handover. Dates like 2026-10-14, 10/14/2026 or October 14, 2026 all work; set your time zone on the trigger. Change the windows in those two steps.
Which holidays does it know?
National public holidays for the one country you set (a two-letter code such as US, GB or DE), from the free Nager.Date API. Regional holidays are only partly covered and are mentioned rather than counted. For a second country, duplicate the holiday step and add it to the prompt.
Does it approve or change anything?
No. It suggests cover from your roster; managers decide and update calendars or HR systems themselves.
Troubleshooting
- “No AI provider connected” or a rejected key: connect or fix the key in Settings → AI Providers, then press Test there.
- A checklist item stays unticked: the setting is still empty or still contains its placeholder text. Open the step from the checklist and fill it in.
- An app step fails with “Needs reconnect”: the account's access was revoked or expired. Reconnect it in Settings → Integrations.
- Slack says the app isn't in the channel: in Slack, type /invite @Fluxo Flow in that channel (always needed for private channels).
- It didn't run at the expected time: the schedule must be activated, and its time is in the trigger's timezone.
- A step failed: open the run in History and check that step in the Trace tab for the error and what it received.
Generated from the agent's own workflow, so it always matches what the agent does. Last updated .