[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 CharlieHR time off requests by your own rules

> Approve CharlieHR time off by your own rules on allowance and cover, and keep the unclear requests for yourself. Runs daily, hosted.

Source: https://cotlet.dev/integrations/charliehr-api-mcp-server/approve-time-off-requests

Holiday requests pile up on the Home page, and every one needs a look at the person's balance and at who else is off before you click approve.

Cotlet does it in your own CharlieHR account with list\_time\_off\_requests, get\_time\_off\_allowance, get\_whos\_working, approve\_time\_off\_request and deny\_time\_off\_request, called by your AI agent, an n8n workflow or a script.

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

Hosted · nothing to install or maintain

## Can CharlieHR do this on its own?

CharlieHR has auto-approval, which an Admin or Super Admin turns on or off per employee in the profile (Time tab > Approvers > Who can Approve and Why) (checked 20 Oct 2026). It approves everything for that person, with no rule on balance or cover. The API reads leave requests and has no approve or deny action.

## How you do it in CharlieHR today

1. Open Home in the side navigation. Pending time off is listed on the right of the page.
2. Click view on a request to open the approval panel and expand its sections to see the dates and the approval options.
3. To check cover, open Time > Who's Working, or Time > Calendar for the month, which shows absences and working locations.
4. To check the balance, open the person's profile and the Time tab, which shows their holiday allowance.
5. Choose Approve, write a message to the team member if you like, and click Submit Decision.
6. Repeat for each request. A line manager gets an email when a direct report books leave, so the queue refills all week.

## How to approve CharlieHR time off requests by your own rules

Prompt

```
Go through pending time off requests in CharlieHR. Approve holiday that fits the person's remaining allowance and leaves at least two people working each day, deny nothing, and list the rest for me with a one-line reason.
```

1. 01  
### Read the pending queue  
Your agent calls list\_time\_off\_requests with status pending. It sees the requests your role is allowed to approve: everyone for an Admin or Super Admin, direct reports for a Line Manager, the team for a Team Lead.
2. 02  
### Check the balance  
For each request, get\_time\_off\_allowance returns allowance, used, pending and remaining days. A request longer than the remaining days is not approved; it goes on your list.
3. 03  
### Check cover  
get\_whos\_working runs for the first and last day of the request. If fewer people are working than your rule asks for on either day, the request is left for you with the date that fails.
4. 04  
### Approve what passes  
approve\_time\_off\_request runs for each request that passed both checks and sends your note to the team member. Each call asks for your OK until you switch confirmation off for the tool.
5. 05  
### Deny only on your word  
deny\_time\_off\_request runs only when your prompt names a reason to deny, for example a restricted date. Without one the agent denies nothing and lists the request as open.

### What you get back

Example data

```
Pending time off: 3
Approved 2:
- Sam Rivera, Holiday, 2 to 4 Nov, 3 days (17 days left after)
- Leo Fischer, Holiday, 9 Nov, 1 day
Left for you 1:
- Priya Nair, Holiday, 16 to 20 Nov, 5 days: only one other person working on 18 Nov
```

### Other ways to ask

- Every morning at 8, approve requests of 2 days or less and list longer ones for me.
- Show me the pending queue with remaining allowance and who else is off each day, but approve nothing.
- Approve requests from my direct reports only and leave company-wide ones to the other admins.
- Deny requests that start on a restricted date and tell each person to pick other dates.

## What CharlieHR allows, and what to know first

- CharlieHR lets Super Admins, Admins, Team Leads, Line Managers and custom time off approvers approve requests. Payroll Admins and plain team members cannot.
- A Line Manager can approve only one level down: their direct reports, not the reports of those reports, unless they are also an Admin or Super Admin.
- When an Admin sets a custom approver for a person, only that approver is notified and sees the request on the dashboard. Line managers and admins can still approve from the person's profile.
- Time off booked on a restricted date is not auto-approved and is left to the approver to decide.
- Sick days are approved automatically and notify the line manager, so this job never needs to handle them.

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

Sources: [CharlieHR Help: Approving your employee's time off](https://help.charliehr.com/en/articles/839628-approving-your-employee-s-time-off-in-charlie) · [CharlieHR Help: Who can approve time off](https://help.charliehr.com/en/articles/2029098-who-can-approve-time-off-in-charlie) · [CharlieHR Help: Who's working and from where](https://help.charliehr.com/en/articles/4088320-who-s-working-and-from-where) · [CharlieHR Help: Add restricted leave dates](https://help.charliehr.com/en/articles/839599-add-restricted-leave-dates)

## Call approve\_time\_off\_request from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/charliehr/requests/tor_4f81c2/time-off-request/approve \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"note":"Enjoy the break."}'
```

Example response

```
{
"request_id": "tor_4f81c2",
"member": "Sam Rivera",
"type": "Holiday",
"start_date": "2026-11-02",
"end_date": "2026-11-04",
"days": 3,
"status": "approved",
"note_sent": "Enjoy the break.",
"remaining_days": 17
}
```

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

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

## CharlieHR tools this automation uses

__Cotlet CharlieHR tools used to approve CharlieHR time off requests by your own rules__
| Tool | Parameters |
| --------------------------- | ---------------------------- |
| list\_time\_off\_requests | status, member\_id, from, to |
| get\_time\_off\_allowance | member\_id, leave\_year |
| get\_whos\_working | date |
| approve\_time\_off\_request | request\_id, note |
| deny\_time\_off\_request | request\_id, note |

[All 12 CharlieHR tools with descriptions](https://cotlet.dev/integrations/charliehr-api-mcp-server.md#tools)

## Frequently asked questions

### Can my agent approve my own leave?

Only if CharlieHR lets your role do so. Admins and Super Admins can approve company-wide, and the agent works with the same permissions as the account you sign in with.

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

Yes. You sign in to CharlieHR yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get CharlieHR 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 CharlieHR automations

- [Offboard a leaver in CharlieHR](https://cotlet.dev/integrations/charliehr-api-mcp-server/offboard-a-leaver.md)
- [Adjust CharlieHR leave allowances for a team](https://cotlet.dev/integrations/charliehr-api-mcp-server/adjust-leave-allowances.md)
- [CharlieHR API and MCP server: every tool](https://cotlet.dev/integrations/charliehr-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to CharlieHR.

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

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

---

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.
