See rosters, timesheets, leave and staff in Deputy, and create shifts, leave and memos.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Record a time an employee cannot work (one-off, or recurring with an RFC 5545-style rule such as FREQ WEEKLY, INTERVAL 1, BYDAY MO). Auto-scheduling then skips them. Deputy: POST /api/v1/supervise/unavail.
Unavailability end: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times).
Unavailability start: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times).
The employee id.
Note the manager sees. Default empty.
Omit for a one-off block.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Record a time an employee cannot work (one-off, or recurring with an RFC 5545-style rule such as FREQ WEEKLY, INTERVAL 1, BYDAY MO). Auto-scheduling then skips them. Deputy: POST /api/v1/supervise/unavail.
| Argument | Type | Description |
|---|---|---|
| comment | string | Note the manager sees. Default empty. |
| end_time* | any | Unavailability end: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times). |
| recurrence | object | Omit for a one-off block. |
| start_time* | any | Unavailability start: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times). |
| employee_id* | integer | The employee id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"employee_id",
"start_time",
"end_time"
],
"properties": {
"comment": {
"type": "string",
"description": "Note the manager sees. Default empty."
},
"end_time": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "string"
}
],
"description": "Unavailability end: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times)."
},
"recurrence": {
"type": "object",
"required": [
"FREQ",
"INTERVAL",
"BYDAY"
],
"properties": {
"FREQ": {
"type": "string",
"description": "e.g. WEEKLY."
},
"BYDAY": {
"type": "string",
"description": "Day code(s), e.g. MO."
},
"INTERVAL": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Every N periods, e.g. 1 or 2."
}
},
"description": "Omit for a one-off block."
},
"start_time": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "string"
}
],
"description": "Unavailability start: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times)."
},
"employee_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "The employee id."
}
}
}Approve one timesheet's times as a supervisor. Approved timesheets flow toward payroll export, so check it first with deputy_get_timesheet. Deputy: POST /api/v1/supervise/timesheet/approve.
| Argument | Type | Description |
|---|---|---|
| timesheet_id* | integer | The timesheet id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"timesheet_id"
],
"properties": {
"timesheet_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "The timesheet id."
}
}
}Add a leave request for an employee. By default it waits for manager approval (status 0); pass status 1 only when your system is the source of truth and the leave is already approved. Deputy tracks leave in hours, so give exact start and end times. Find leave type ids with deputy_query_resource on LeaveRules. Deputy: POST /api/v1/resource/Leave.
| Argument | Type | Description |
|---|---|---|
| status | any | 0 awaiting approval (default), 1 already approved. |
| comment* | string | The employee's note to the manager. |
| end_date* | string | Last day, YYYY-MM-DD. |
| end_time* | any | Leave end: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times). |
| start_date* | string | First day, YYYY-MM-DD. |
| start_time* | any | Leave start: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times). |
| employee_id* | integer | The employee id. |
Post a memo to a location's news feed, optionally requiring staff to confirm they read it, or targeted to specific locations or users. Visible to staff immediately. Deputy: PUT /api/v1/supervise/memo.
| Argument | Type | Description |
|---|---|---|
| content* | string | The memo text. |
| user_ids | array | Only these USER ids (not employee ids) receive it. |
| location_id* | integer | Location (Company id) to post to. |
| location_ids | array | Also show at these locations. |
| require_confirm | boolean | Ask staff to confirm they have read it. Default false. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"content",
"location_id"
],
"properties": {
"content": {
"type": "string",
"minLength": 1,
"description": "The memo text."
},
"user_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1
},
"description": "Only these USER ids (not employee ids) receive it."
},
"location_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Location (Company id) to post to."
},
"location_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1
},
"description": "Also show at these locations."
},
"require_confirm": {
"type": "boolean",
"description": "Ask staff to confirm they have read it. Default false."
}
}
}Add a shift to the roster, assigned to an employee or left open. Created as a DRAFT unless publish is true (publishing can notify the employee). Deputy returns an empty 200 on success — use deputy_list_shifts to find the new shift's id. Deputy: POST /api/v1/supervise/roster.
| Argument | Type | Description |
|---|---|---|
| open | boolean | Show the shift as open for employees to claim. |
| area_id* | integer | Area (OperationalUnit id) the shift is for. |
| comment | string | Comment shown on the shift. |
| publish | boolean | Publish now. Publishing can notify the employee. Default false (draft). |
| end_time* | any | Shift end: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times). |
| confirmed | boolean | Mark the shift as confirmed. |
| start_time* | any | Shift start: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times). |
| employee_id |
Return a Resource API object's field list, field types and joinable associations — what deputy_query_resource can filter, sort and join on. Deputy: GET /api/v1/resource/{Object}/INFO.
| Argument | Type | Description |
|---|---|---|
| object* | string | Resource API object. Deputy names: Company = location, OperationalUnit = area, Roster = shift, LeaveRules = leave types, TimesheetPayReturn = approved pay lines. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"object"
],
"properties": {
"object": {
"enum": [
"Address",
"Category",
"Comment",
"Company",
"CompanyPeriod",
"Contact",
"Country",
"CustomField",
"CustomFieldData",
"Employee",
"EmployeeAgreement",
"EmployeeAgreementHistory",
"EmployeeAppraisal",
"EmployeeAvailability",
"EmployeeContractedHours",
"EmployeeHistory",
"EmployeePaycycle",
"EmployeePaycycleReturn",
"EmployeeRole",
"EmployeeWorkplace",
"EmploymentCondition",
"EmploymentContract",
"EmploymentContractLeaveRules",
"Event",
"Journal",
"Leave",
"LeaveAccrual",
"LeavePayLine",
"LeaveRules",
"Memo",
"OperationalUnit",
"PayPeriod",
"PayRules",
"PublicHoliday",
"Roster",
"RosterOpen",
"RosterSwap",
"RosterTemplate",
"SalesData",
"Schedule",
"ShiftTemplate",
"State",
"StressProfile",
"Task",
"TaskGroup",
"TaskSetup",
"Team",
"Timesheet",
"TimesheetExport",
"TimesheetPayReturn",
"TimesheetPayReturnDetail",
"TrainingModule",
"TrainingRecord"
],
"type": "string",
"description": "Resource API object. Deputy names: Company = location, OperationalUnit = area, Roster = shift, LeaveRules = leave types, TimesheetPayReturn = approved pay lines."
}
}
}Fetch one employee's details as a supervisor sees them — contact, locations, role and employment. Deputy: GET /api/v1/supervise/employee/{id}.
| Argument | Type | Description |
|---|---|---|
| employee_id* | integer | The employee id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"employee_id"
],
"properties": {
"employee_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "The employee id."
}
}
}List the times one employee has marked themselves (or been marked) unavailable to work — check before rostering them. Deputy: GET /api/v1/supervise/unavail/{employeeId}.
| Argument | Type | Description |
|---|---|---|
| employee_id* | integer | The employee id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"employee_id"
],
"properties": {
"employee_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "The employee id."
}
}
}Fetch one shift (Roster record) by id. Deputy: GET /api/v1/resource/Roster/{id}.
| Argument | Type | Description |
|---|---|---|
| shift_id* | integer | The shift (Roster) id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"shift_id"
],
"properties": {
"shift_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "The shift (Roster) id."
}
}
}Fetch one timesheet's full details, including breaks and approval state. Deputy: GET /api/v1/supervise/timesheet/{id}/details.
| Argument | Type | Description |
|---|---|---|
| timesheet_id* | integer | The timesheet id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"timesheet_id"
],
"properties": {
"timesheet_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "The timesheet id."
}
}
}List areas (Deputy OperationalUnits — the rosterable sections of a location, e.g. Kitchen, Front of house). Shifts and timesheets belong to an area. Optionally only one location's areas. Deputy: GET /api/v1/resource/OperationalUnit, or POST .../OperationalUnit/QUERY when filtered.
| Argument | Type | Description |
|---|---|---|
| max | integer | Page size, 1-500 (Deputy's cap). Default 100. |
| start | integer | Pagination offset (0-based). Pass the previous page's next_start. |
| active | boolean | Only active (true) or inactive (false) areas. |
| location_id | integer | Only areas of this location (Company id). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"max": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Page size, 1-500 (Deputy's cap). Default 100."
},
"start": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Pagination offset (0-based). Pass the previous page's next_start."
},
"active": {
"type": "boolean",
"description": "Only active (true) or inactive (false) areas."
},
"location_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Only areas of this location (Company id)."
}
}
}Search employees by name, location or active status. Returns Id, DisplayName, Company (main location), Active, StartDate, Role and more. Deputy: POST /api/v1/resource/Employee/QUERY.
| Argument | Type | Description |
|---|---|---|
| max | integer | Page size, 1-500 (Deputy's cap). Default 100. |
| start | integer | Pagination offset (0-based). Pass the previous page's next_start. |
| active | boolean | true = current staff only; false = terminated/inactive only. |
| location_id | integer | Only employees whose main location is this Company id. |
| name_contains | string | Only employees whose DisplayName contains this text. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"max": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Page size, 1-500 (Deputy's cap). Default 100."
},
"start": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Pagination offset (0-based). Pass the previous page's next_start."
},
"active": {
"type": "boolean",
"description": "true = current staff only; false = terminated/inactive only."
},
"location_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Only employees whose main location is this Company id."
},
"name_contains": {
"type": "string",
"description": "Only employees whose DisplayName contains this text."
}
}
}Search leave requests by employee, location, status and time window. Status: 0 awaiting approval, 1 approved, 2 declined, 3 cancelled, 4 date approved without pay, 5 pay approved without date. Start/End are unix; LeaveRule is the leave type id. Deputy: POST /api/v1/resource/Leave/QUERY.
| Argument | Type | Description |
|---|---|---|
| to | any | Only leave starting at or before this time: a unix timestamp in seconds, or an ISO 8601 date/datetime (include an offset for local times). |
| max | integer | Page size, 1-500 (Deputy's cap). Default 100. |
| from | any | Only leave starting at or after this time: a unix timestamp in seconds, or an ISO 8601 date/datetime (include an offset for local times). |
| start | integer | Pagination offset (0-based). Pass the previous page's next_start. |
| status | integer | Only this status (0-5, see description). |
| employee_id | integer | Only this employee's leave. |
| location_id | integer | Only leave against this location (Company id). |
List the install's locations (workplaces). Deputy calls a location a Company; its Id is what other tools take as location_id. Deputy: GET /api/v1/resource/Company.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Search the roster (scheduled shifts) by time window, employee, area, and published/open state. Each record has StartTime/EndTime (unix), StartTimeLocalized, Employee (0 or null when open), OperationalUnit (area), Published, Open, Cost and _DPMetaData with names. Deputy: POST /api/v1/resource/Roster/QUERY.
| Argument | Type | Description |
|---|---|---|
| to | any | Only shifts starting at or before this time: a unix timestamp in seconds, or an ISO 8601 date/datetime (include an offset for local times). |
| max | integer | Page size, 1-500 (Deputy's cap). Default 100. |
| from | any | Only shifts starting at or after this time: a unix timestamp in seconds, or an ISO 8601 date/datetime (include an offset for local times). |
| open | boolean | true = open (unfilled) shifts only. |
| start | integer | Pagination offset (0-based). Pass the previous page's next_start. |
| area_id | integer | Only shifts in this area (OperationalUnit id). |
| published | boolean | true = published only; false = drafts only. |
| employee_id | integer |
Search timesheets (actual worked time) by time window, employee, area and approval state. Each record has StartTime/EndTime (unix; EndTime null while in progress), TotalTime (hours), Cost, TimeApproved, PayRuleApproved, IsInProgress, IsLeave, Roster (linked shift) and Exported. Deputy: POST /api/v1/resource/Timesheet/QUERY.
| Argument | Type | Description |
|---|---|---|
| to | any | Only timesheets starting at or before this time: a unix timestamp in seconds, or an ISO 8601 date/datetime (include an offset for local times). |
| max | integer | Page size, 1-500 (Deputy's cap). Default 100. |
| from | any | Only timesheets starting at or after this time: a unix timestamp in seconds, or an ISO 8601 date/datetime (include an offset for local times). |
| start | integer | Pagination offset (0-based). Pass the previous page's next_start. |
| area_id | integer | Only timesheets in this area (OperationalUnit id). |
| employee_id | integer | Only this employee's timesheets. |
| in_progress | boolean | true = only people currently on the clock. |
| pay_approved |
Publish draft shifts so employees see them, choosing how they are notified: 1 SMS and email, 2 SMS, 3 email, 4 no notification, 5 confirmation required. Only the listed shift ids are published. Deputy: POST /api/v1/supervise/roster/publish.
| Argument | Type | Description |
|---|---|---|
| shift_ids* | array | Roster ids to publish. |
| notify_mode* | integer | 1 SMS+email, 2 SMS, 3 email, 4 none, 5 confirmation required. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"shift_ids",
"notify_mode"
],
"properties": {
"shift_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1
},
"maxItems": 500,
"minItems": 1,
"description": "Roster ids to publish."
},
"notify_mode": {
"type": "integer",
"maximum": 5,
"minimum": 1,
"description": "1 SMS+email, 2 SMS, 3 email, 4 none, 5 confirmation required."
}
}
}Run a Resource API search on any business object (leave types, pay rules, public holidays, memos, events, shift templates, pay lines, availability, sales data, …). `search` is Deputy's clause map, e.g. {"s1":{"field":"Employee","data":12,"type":"eq"}}; operators: eq ne gt lt ge le is 'is not' in 'not in' starts contains. Use deputy_describe_resource to see an object's fields and joins. Read-only. Deputy: POST /api/v1/resource/{Object}/QUERY.
| Argument | Type | Description |
|---|---|---|
| max | integer | Page size, 1-500 (Deputy's cap). Default 100. |
| join | array | Related objects to expand inline, e.g. ["TimesheetObject"] on TimesheetPayReturn. |
| sort | object | Field → asc/desc, e.g. {"Id":"desc"}. |
| start | integer | Pagination offset (0-based). Pass the previous page's next_start. |
| object* | string | Resource API object. Deputy names: Company = location, OperationalUnit = area, Roster = shift, LeaveRules = leave types, TimesheetPayReturn = approved pay lines. |
| search | object | Clauses keyed by any id (s1, s2, …). All must match. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"object"
],
"properties": {
"max": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Page size, 1-500 (Deputy's cap). Default 100."
},
"join": {
"type": "array",
"items": {
"type": "string"
},
"description": "Related objects to expand inline, e.g. [\"TimesheetObject\"] on TimesheetPayReturn."
},
"sort": {
"type": "object",
"description": "Field → asc/desc, e.g. {\"Id\":\"desc\"}.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"enum": [
"asc",
"desc"
],
"type": "string"
}
},
"start": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Pagination offset (0-based). Pass the previous page's next_start."
},
"object": {
"enum": [
"Address",
"Category",
"Comment",
"Company",
"CompanyPeriod",
"Contact",
"Country",
"CustomField",
"CustomFieldData",
"Employee",
"EmployeeAgreement",
"EmployeeAgreementHistory",
"EmployeeAppraisal",
"EmployeeAvailability",
"EmployeeContractedHours",
"EmployeeHistory",
"EmployeePaycycle",
"EmployeePaycycleReturn",
"EmployeeRole",
"EmployeeWorkplace",
"EmploymentCondition",
"EmploymentContract",
"EmploymentContractLeaveRules",
"Event",
"Journal",
"Leave",
"LeaveAccrual",
"LeavePayLine",
"LeaveRules",
"Memo",
"OperationalUnit",
"PayPeriod",
"PayRules",
"PublicHoliday",
"Roster",
"RosterOpen",
"RosterSwap",
"RosterTemplate",
"SalesData",
"Schedule",
"ShiftTemplate",
"State",
"StressProfile",
"Task",
"TaskGroup",
"TaskSetup",
"Team",
"Timesheet",
"TimesheetExport",
"TimesheetPayReturn",
"TimesheetPayReturnDetail",
"TrainingModule",
"TrainingRecord"
],
"type": "string",
"description": "Resource API object. Deputy names: Company = location, OperationalUnit = area, Roster = shift, LeaveRules = leave types, TimesheetPayReturn = approved pay lines."
},
"search": {
"type": "object",
"description": "Clauses keyed by any id (s1, s2, …). All must match.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"required": [
"field",
"data",
"type"
],
"properties": {
"data": {
"description": "Comparison value; type depends on the field."
},
"type": {
"enum": [
"eq",
"ne",
"gt",
"lt",
"ge",
"le",
"is",
"is not",
"in",
"not in",
"starts",
"contains"
],
"type": "string",
"description": "Comparison operator."
},
"field": {
"type": "string",
"description": "Field name, e.g. Employee, Date, StartTime."
}
}
}
}
}
}Change an existing shift's times, area, employee, break or comment. Send the full intended shift (same fields as create) — Deputy's update is the add call with the shift id. Deputy: POST /api/v1/supervise/roster with intRosterId.
| Argument | Type | Description |
|---|---|---|
| open | boolean | Show the shift as open for employees to claim. |
| area_id* | integer | Area (OperationalUnit id) the shift is for. |
| comment | string | Comment shown on the shift. |
| publish | boolean | Publish now. Publishing can notify the employee. Default false (draft). |
| end_time* | any | Shift end: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times). |
| shift_id* | integer | The shift (Roster) id. |
| confirmed | boolean | Mark the shift as confirmed. |
| start_time* | any | Shift start: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times). |
Correct an existing timesheet's start/end time, area, meal break or supervisor comment. Times cannot be in the future. Deputy: POST /api/v1/supervise/timesheet/update.
| Argument | Type | Description |
|---|---|---|
| area_id* | integer | Area (OperationalUnit id) the time was worked in. |
| comment | string | Comment attached to the timesheet. |
| end_time* | any | Timesheet end: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times). |
| start_time* | any | Timesheet start: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times). |
| timesheet_id* | integer | The timesheet id. |
| mealbreak_minutes | integer | Total unscheduled meal break, minutes. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"timesheet_id",
"start_time",
"end_time",
"area_id"
],
"properties": {
"area_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Area (OperationalUnit id) the time was worked in."
},
"comment": {
"type": "string",
"description": "Comment attached to the timesheet."
},
"end_time": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "string"
}
],
"description": "Timesheet end: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times)."
},
"start_time": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "string"
}
],
"description": "Timesheet start: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times)."
},
"timesheet_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "The timesheet id."
},
"mealbreak_minutes": {
"type": "integer",
"maximum": 600,
"minimum": 0,
"description": "Total unscheduled meal break, minutes."
}
}
}Return the Deputy user the token belongs to — name, employee id, company and permissions. A cheap way to confirm DEPUTY_INSTALL and the token are right. Deputy: GET /api/v1/me.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}| location_id* | integer | Location (Company id) the leave is recorded against. |
| leave_rule_id* | integer | Leave type (LeaveRules id), e.g. annual leave. |
| approval_comment | string | Manager's comment, when status is 1. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"employee_id",
"leave_rule_id",
"location_id",
"start_date",
"start_time",
"end_date",
"end_time",
"comment"
],
"properties": {
"status": {
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"const": 1
}
],
"description": "0 awaiting approval (default), 1 already approved."
},
"comment": {
"type": "string",
"description": "The employee's note to the manager."
},
"end_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Last day, YYYY-MM-DD."
},
"end_time": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "string"
}
],
"description": "Leave end: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times)."
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First day, YYYY-MM-DD."
},
"start_time": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "string"
}
],
"description": "Leave start: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times)."
},
"employee_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "The employee id."
},
"location_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Location (Company id) the leave is recorded against."
},
"leave_rule_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Leave type (LeaveRules id), e.g. annual leave."
},
"approval_comment": {
"type": "string",
"description": "Manager's comment, when status is 1."
}
}
}| integer |
| Employee to put on the shift. Omit (and set open: true) for an unfilled shift. |
| force_overwrite | boolean | Overwrite a clashing shift for the same employee. Default false. |
| mealbreak_minutes | integer | Unpaid meal break length in minutes. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"start_time",
"end_time",
"area_id"
],
"properties": {
"open": {
"type": "boolean",
"description": "Show the shift as open for employees to claim."
},
"area_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Area (OperationalUnit id) the shift is for."
},
"comment": {
"type": "string",
"description": "Comment shown on the shift."
},
"publish": {
"type": "boolean",
"description": "Publish now. Publishing can notify the employee. Default false (draft)."
},
"end_time": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "string"
}
],
"description": "Shift end: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times)."
},
"confirmed": {
"type": "boolean",
"description": "Mark the shift as confirmed."
},
"start_time": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "string"
}
],
"description": "Shift start: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times)."
},
"employee_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Employee to put on the shift. Omit (and set open: true) for an unfilled shift."
},
"force_overwrite": {
"type": "boolean",
"description": "Overwrite a clashing shift for the same employee. Default false."
},
"mealbreak_minutes": {
"type": "integer",
"maximum": 600,
"minimum": 0,
"description": "Unpaid meal break length in minutes."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"to": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "string"
}
],
"description": "Only leave starting at or before this time: a unix timestamp in seconds, or an ISO 8601 date/datetime (include an offset for local times)."
},
"max": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Page size, 1-500 (Deputy's cap). Default 100."
},
"from": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "string"
}
],
"description": "Only leave starting at or after this time: a unix timestamp in seconds, or an ISO 8601 date/datetime (include an offset for local times)."
},
"start": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Pagination offset (0-based). Pass the previous page's next_start."
},
"status": {
"type": "integer",
"maximum": 5,
"minimum": 0,
"description": "Only this status (0-5, see description)."
},
"employee_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Only this employee's leave."
},
"location_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Only leave against this location (Company id)."
}
}
}| Only this employee's shifts. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"to": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "string"
}
],
"description": "Only shifts starting at or before this time: a unix timestamp in seconds, or an ISO 8601 date/datetime (include an offset for local times)."
},
"max": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Page size, 1-500 (Deputy's cap). Default 100."
},
"from": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "string"
}
],
"description": "Only shifts starting at or after this time: a unix timestamp in seconds, or an ISO 8601 date/datetime (include an offset for local times)."
},
"open": {
"type": "boolean",
"description": "true = open (unfilled) shifts only."
},
"start": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Pagination offset (0-based). Pass the previous page's next_start."
},
"area_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Only shifts in this area (OperationalUnit id)."
},
"published": {
"type": "boolean",
"description": "true = published only; false = drafts only."
},
"employee_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Only this employee's shifts."
}
}
}| boolean |
| Filter on PayRuleApproved (approved for payroll export). |
| time_approved | boolean | Filter on TimeApproved (supervisor approved the times). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"to": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "string"
}
],
"description": "Only timesheets starting at or before this time: a unix timestamp in seconds, or an ISO 8601 date/datetime (include an offset for local times)."
},
"max": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Page size, 1-500 (Deputy's cap). Default 100."
},
"from": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "string"
}
],
"description": "Only timesheets starting at or after this time: a unix timestamp in seconds, or an ISO 8601 date/datetime (include an offset for local times)."
},
"start": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Pagination offset (0-based). Pass the previous page's next_start."
},
"area_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Only timesheets in this area (OperationalUnit id)."
},
"employee_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Only this employee's timesheets."
},
"in_progress": {
"type": "boolean",
"description": "true = only people currently on the clock."
},
"pay_approved": {
"type": "boolean",
"description": "Filter on PayRuleApproved (approved for payroll export)."
},
"time_approved": {
"type": "boolean",
"description": "Filter on TimeApproved (supervisor approved the times)."
}
}
}| employee_id | integer | Employee to put on the shift. Omit (and set open: true) for an unfilled shift. |
| force_overwrite | boolean | Overwrite a clashing shift for the same employee. Default false. |
| mealbreak_minutes | integer | Unpaid meal break length in minutes. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"shift_id",
"start_time",
"end_time",
"area_id"
],
"properties": {
"open": {
"type": "boolean",
"description": "Show the shift as open for employees to claim."
},
"area_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Area (OperationalUnit id) the shift is for."
},
"comment": {
"type": "string",
"description": "Comment shown on the shift."
},
"publish": {
"type": "boolean",
"description": "Publish now. Publishing can notify the employee. Default false (draft)."
},
"end_time": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "string"
}
],
"description": "Shift end: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times)."
},
"shift_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "The shift (Roster) id."
},
"confirmed": {
"type": "boolean",
"description": "Mark the shift as confirmed."
},
"start_time": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "string"
}
],
"description": "Shift start: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times)."
},
"employee_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Employee to put on the shift. Omit (and set open: true) for an unfilled shift."
},
"force_overwrite": {
"type": "boolean",
"description": "Overwrite a clashing shift for the same employee. Default false."
},
"mealbreak_minutes": {
"type": "integer",
"maximum": 600,
"minimum": 0,
"description": "Unpaid meal break length in minutes."
}
}
}