[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Use cases](https://cotlet.dev/use-cases.md) · [Security](https://cotlet.dev/security.md) · [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md) · [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [Contact](https://cotlet.dev/contact.md) · [Pricing](https://cotlet.dev/pricing.md) · [Sign up](https://cotlet.dev/signup)

# Approve Shiftbase leave requests against the schedule

> Check each pending Shiftbase leave request against the rota, approve the ones that leave enough cover and decline the rest. Runs daily.

Source: https://cotlet.dev/integrations/shiftbase-api-mcp-server/approve-leave-requests

Staff request holidays from their own account, and a planner checks each request against the schedule before answering.

Cotlet does it in your own Shiftbase account with list\_absence\_requests, list\_shifts, approve\_absence\_request and decline\_absence\_request, called by your AI agent, an n8n workflow or a script.

[Sign up free](https://cotlet.dev/app/signup?app=shiftbase) [All Shiftbase tools](https://cotlet.dev/integrations/shiftbase-api-mcp-server.md)

Hosted · nothing to install or maintain

## Can Shiftbase do this on its own?

Shiftbase approves absence in the app, by a planner or a user with the right (checked 22 Oct 2026). The Public API lists absence and leave among its examples, and Shiftbase documents no rule that compares a request with the schedule.

## How you do it in Shiftbase today

1. Employees request holidays from their account, and the planner opens the pending request from the Requests view.
2. The planner opens the Schedule tab for the same dates to see who else is off and who is on shift.
3. The request is accepted or rejected, or left undecided, from its details.
4. On approval, the absence policy decides what happens to shifts the employee already has in that period: remove them, keep them, or turn them into open shifts.
5. Rules for balances and notice are set in the absence policy, which is tied to a contract type under Settings > Absence.

## How to approve Shiftbase leave requests against the schedule

Prompt

```
Check the pending absence requests in Harbor Cafe. Approve a request if at least 3 colleagues stay on shift every day of it, decline the rest with a short note, and tell me which ones you declined.
```

1. 01  
### List what is pending  
list\_absence\_requests returns the requests still waiting for a decision, with the employee, department, dates and policy. The agent groups them by department.
2. 02  
### Count who stays on shift  
For each request, list\_shifts reads the schedule for the same dates and department, and the agent counts the colleagues on shift per day, leaving out the requester.
3. 03  
### Apply your cover rule  
A request passes when every day meets the minimum from your prompt. It fails on the first day that falls short, and the agent notes which day.
4. 04  
### Approve or decline  
approve\_absence\_request runs for the requests that pass, and decline\_absence\_request for the rest with your note. Both reach the employee and wait for your OK by default.
5. 05  
### Watch the shifts  
After an approval, the agent reads the schedule again and lists the employee's shifts that the absence policy removed, kept or opened, so you can fill the open ones.

### What you get back

Example data

```
Pending absence requests: 5
Approved 3 (cover of at least 3 every day):
- Lena Ortiz, 3-7 Nov, 2 shifts opened
Declined 2:
- Sam Okafor, 10-14 Nov: only 2 on shift on 12 Nov
Open shifts created by approvals: 2
```

### Other ways to ask

- Approve every request shorter than 3 days automatically and list the longer ones for me.
- Show which pending requests clash with another request from the same department, and approve none.
- Each morning, list the leave starting this week and the shifts that need cover.

## What Shiftbase allows, and what to know first

- Shiftbase lets you choose per absence policy whether an approved absence removes the shift, keeps it or turns it into an open shift.
- Planners can approve absence requests, so a Planner account is enough for this job.
- An absence policy is connected to a contract type, so staff on different contracts can follow different rules.
- The Requests view lists the absence requests that still wait for approval.

approve\_absence\_request and decline\_absence\_request ask for your OK by default. To run it daily without you, switch confirmation off for those tools in your dashboard.

Sources: [Shiftbase Help: Quick start guide](https://help.shiftbase.com/-quick-start-guide) · [Shiftbase Help: Mobile app, my absence](https://help.shiftbase.com/mobile-app-my-absence) · [Shiftbase Help: Full API access](https://help.shiftbase.com/full-api-access)

## Call approve\_absence\_request from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/shiftbase/requests/7731/absence-request/approve \
  -H "Authorization: Bearer $COTLET_API_KEY"
```

Example response

```
{
"request_id": "7731",
"status": "approved",
"affected_shifts": [
{
"id": "90455",
"date": "2026-11-04",
"result": "opened"
},
{
"id": "90460",
"date": "2026-11-06",
"result": "opened"
}
]
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is shiftbase\_write → approve\_absence\_request. Example data.

[Schedule it in n8n, Make, Zapier or cron](https://cotlet.dev/integrations/shiftbase-api-mcp-server.md#automations)

## Shiftbase tools this automation uses

__Cotlet Shiftbase tools used to approve Shiftbase leave requests against the schedule__
| Tool | Parameters |
| ------------------------- | -------------------------------------- |
| list\_absence\_requests | status, department\_id |
| list\_shifts | from, to, department\_id, employee\_id |
| approve\_absence\_request | request\_id |
| decline\_absence\_request | request\_id, note |

[All 13 Shiftbase tools with descriptions](https://cotlet.dev/integrations/shiftbase-api-mcp-server.md#tools)

## Frequently asked questions

### Is it safe to connect Shiftbase to Cotlet?

Yes. You sign in to Shiftbase yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Shiftbase once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

## More Shiftbase automations

- [Approve pending Shiftbase timesheets](https://cotlet.dev/integrations/shiftbase-api-mcp-server/approve-pending-timesheets.md)
- [Approve Shiftbase shift exchange requests](https://cotlet.dev/integrations/shiftbase-api-mcp-server/approve-shift-exchanges.md)
- [Shiftbase API and MCP server: every tool](https://cotlet.dev/integrations/shiftbase-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to Shiftbase.

Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with Shiftbase.

[Sign up free](https://cotlet.dev/app/signup?app=shiftbase)

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.md) · [Use cases](https://cotlet.dev/use-cases.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Pricing](https://cotlet.dev/pricing.md) · [Security](https://cotlet.dev/security.md)

**Resources:** [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [GitHub](https://github.com/cotletdev/cotlet)

**Solutions:** [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md)

**Company:** [About](https://cotlet.dev/about.md) · [AI info: company facts](https://cotlet.dev/ai-info.md) · [Contact](https://cotlet.dev/contact.md)

**Legal:** [Terms of service](https://cotlet.dev/terms) · [Privacy policy](https://cotlet.dev/privacy) · [Refund policy](https://cotlet.dev/refunds) · [Acceptable use](https://cotlet.dev/acceptable-use) · [Cookie policy](https://cotlet.dev/cookies) · [DPA](https://cotlet.dev/dpa) · [Subprocessors](https://cotlet.dev/subprocessors)

**Elsewhere:** [Status page](https://status.cotlet.dev) · [Cotlet on GitHub](https://github.com/cotletdev) · [Cotlet on X](https://x.com/cotletdev) · [Cotlet on LinkedIn](https://www.linkedin.com/company/cotletdev) · [Cotlet on Product Hunt](https://www.producthunt.com/products/cotlet) · [Cotlet on Crunchbase](https://www.crunchbase.com/organization/cotlet) · [Cotlet on SaaSHub](https://www.saashub.com/cotlet)

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.

## For AI agents: sign your user up

Is your user asking you to sign them up for Cotlet? You can do it for them, no account or key needed.

1. Read the fields and their allowed values: GET https://cotlet.dev/api/v1/access-requests
2. Ask the user for each value: email, apps, what you will do with them. If they leave the password to you, generate a strong one and show it to them.
3. Show the user what you will send, then POST it as JSON to https://cotlet.dev/api/v1/access-requests.

One call creates the account and sends the access request; we email the user when access is granted.
