Request time off
Asks for time off for someone, counting working days less holidays; it waits for a decision unless approved at once.
$0.01 a call
From your agent’s balance. A call that fails costs nothing.
An example
Tom wants December 21 to 31 off for Christmas, with the 31st as a half day.
Your agent callshr_request_leave$0.01 a call
The example business is Hansen & Voss, a restaurant-equipment wholesaler in Hamburg with 60 staff. The reply is the one the tool really gives.
{
"person": "tom.okafor@hansenvoss.example",
"leave_type": "Vacation",
"start": "2026-12-21",
"end": "2026-12-31",
"half_end": true,
"note": "Christmas with family"
}Use it when
Someone asks for a holiday, a sick day or a day off.
What it does
Ask for time off for someone, from start to end (default: one day), with a half day on the first and/or last day if wanted. Only working days count, minus the holidays of everyone and of their location; leave that crosses into a new leave year counts in each. Refused when it overlaps their pending or approved leave, has no working days, falls outside their employment or they have left, or when a tracked balance (after pending requests) can't take it, unless allow_negative: true (the reply then says how far below 0 it goes). It waits for hr_decide_leave unless approve: true decides at once. Returns the request_id and the balance after it.
What comes back
request: its request_id, person, type, dates, half days, days counted and status; balances: the person's balance of that type after it. Every reply also carries cost_usd and balance_usd.
Inputs
| Name | Type | What it is |
|---|---|---|
personRequired | integer or string | The person_id, or their work email. 1 to 254 characters, at least 1. |
leave_typeRequired | string | A leave type by name, e.g. "Vacation". 1 to 60 characters. |
startRequired | string | YYYY-MM-DD. Matches ^\d{4}-\d{2}-\d{2}$. |
end | string | The last day off, YYYY-MM-DD. Default: start. Matches ^\d{4}-\d{2}-\d{2}$. |
half_start | boolean | The first day is a half day. Default: false. |
half_end | boolean | The last day is a half day. Default: false. |
note | string | Up to 1,000 characters. |
approve | boolean | Default: false. |
allow_negative | boolean | Default: false. |
The call
Over MCP, call hr_request_leave on https://api.conecto.chat/mcp/hr. Over REST:
curl -X POST https://api.conecto.chat/v1/tools/hr_request_leave \
-H "Authorization: Bearer $CONECTO_KEY" \
-H "Content-Type: application/json" \
-d '{"person":"tom.okafor@hansenvoss.example","leave_type":"Vacation","start":"2026-12-21","end":"2026-12-31","half_end":true,"note":"Christmas with family"}'When it refuses
A refused call costs nothing and says what to do next.
| Code | When | What to do |
|---|---|---|
not_found404 | No person of the business has that person_id or work email. | Find them with hr_list_people. |
not_found404 | No leave type has that name. | Call hr_get_settings, or add it with hr_save_leave_type. |
invalid_input400 | A date is not a date like 2026-10-01, or from is after to. | Fix the date. |
not_enough_days409 | The balance (after pending requests) cannot take the days. | Ask for fewer days, or pass allow_negative: true if the owner agrees. |
overlaps409 | The person already has leave in those days. | Change or cancel the other request first. |
no_working_days400 | The dates hold no working days. | Check the dates. |
outside_employment409 | The dates fall before the person starts or after they leave. | Pick dates within their employment. |
has_left409 | The person has left. | Nothing to request. |
archived409 | The leave type is archived. | Use a type that is in use. |
More HR tools
All 23 tools- Add or change people
hr_save_peopleAdds people or changes them, up to 100 at a time, all or none: names, emails, job, department, location, manager, dates and allowances.$1.00 per person added - List people
hr_list_peoplePeople by last name, everyone who hasn't left by default, filtered by status, department, location, manager, type or words.Free* - Get a person
hr_get_personEverything about one person: details, leave balances for a year, pending and upcoming leave, documents, open tasks and direct reports.Free* - Delete a person
hr_delete_personErases a person for good with their leave, tasks and document records; their files stay in the store.Free - Read the HR settings
hr_get_settingsThe working days, hours, leave year, time zone, leave types, public holidays and checklists.Free* - Change the HR settings
hr_save_settingsSets the work calendar: working days, hours per day, leave year, time zone, and one location's public holidays for a year.$0.001 a call - Add or change a leave type
hr_save_leave_typeAdds or changes a kind of time off: annual days, monthly or yearly accrual, carry-over, paid and tracked.$0.001 a call - Adjust a leave balance
hr_adjust_leaveAdds days to, or takes days off, one person's balance of a tracked leave type, with the reason.$0.01 a call
Give this to your agent.
Set up Conecto from https://conecto.chat/SKILL.md