# Time Off

## get_time_off_requests

`TOOL get_time_off_requests`

Get list of time-off requests for the authenticated user's organization

Authentication: no security requirement declared for this operation.

Parameters:

- `page` (argument, number, optional) - Page number for pagination
  Type: number
  
  Page number for pagination
  
  default: 1

- `limit` (argument, number, optional) - Number of items per page
  Type: number
  
  Number of items per page
  
  default: 10

- `search` (argument, string, optional) - Search term for request description
  Type: string
  
  Search term for request description

- `relations` (argument, array, optional) - Relations to include (e.g., ["employee", "policy", "approvedBy"])
  Type: array
  
  Relations to include (e.g., ["employee", "policy", "approvedBy"])
  
  Items:
    Type: string

- `status` (argument, string, optional) - Filter by request status
  Type: string
  
  Filter by request status
  
  enum: ["REQUESTED","APPROVED","DENIED","CANCELLED"]

- `employeeId` (argument, string, uuid, optional) - Filter by employee ID
  Type: string, uuid
  
  Filter by employee ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `policyId` (argument, string, uuid, optional) - Filter by policy ID
  Type: string, uuid
  
  Filter by policy ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `startDate` (argument, string, optional) - Filter requests from this date (ISO format)
  Type: string
  
  Filter requests from this date (ISO format)

- `endDate` (argument, string, optional) - Filter requests until this date (ISO format)
  Type: string
  
  Filter requests until this date (ISO format)

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_time_off_requests",
    "arguments": {
        "page": 1,
        "limit": 10,
        "search": "string",
        "relations": [
          "string"
        ],
        "status": "REQUESTED",
        "employeeId": "550e8400-e29b-41d4-a716-446655440000",
        "policyId": "550e8400-e29b-41d4-a716-446655440000",
        "startDate": "string",
        "endDate": "string"
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "get_time_off_requests",
  "arguments": {
    "page": 1,
    "limit": 10,
    "search": "string",
    "relations": [
      "string"
    ],
    "status": "REQUESTED",
    "employeeId": "550e8400-e29b-41d4-a716-446655440000",
    "policyId": "550e8400-e29b-41d4-a716-446655440000",
    "startDate": "string",
    "endDate": "string"
  }
});
```

### Python

```python
result = await session.call_tool("get_time_off_requests", arguments={
  "page": 1,
  "limit": 10,
  "search": "string",
  "relations": [
    "string"
  ],
  "status": "REQUESTED",
  "employeeId": "550e8400-e29b-41d4-a716-446655440000",
  "policyId": "550e8400-e29b-41d4-a716-446655440000",
  "startDate": "string",
  "endDate": "string"
})
```


## get_time_off_request_count

`TOOL get_time_off_request_count`

Get time-off request count in the authenticated user's organization

Authentication: no security requirement declared for this operation.

Parameters:

- `status` (argument, string, optional) - Filter by request status
  Type: string
  
  Filter by request status
  
  enum: ["REQUESTED","APPROVED","DENIED","CANCELLED"]

- `employeeId` (argument, string, uuid, optional) - Filter by employee ID
  Type: string, uuid
  
  Filter by employee ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `policyId` (argument, string, uuid, optional) - Filter by policy ID
  Type: string, uuid
  
  Filter by policy ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `startDate` (argument, string, optional) - Filter requests from this date (ISO format)
  Type: string
  
  Filter requests from this date (ISO format)

- `endDate` (argument, string, optional) - Filter requests until this date (ISO format)
  Type: string
  
  Filter requests until this date (ISO format)

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_time_off_request_count",
    "arguments": {
        "status": "REQUESTED",
        "employeeId": "550e8400-e29b-41d4-a716-446655440000",
        "policyId": "550e8400-e29b-41d4-a716-446655440000",
        "startDate": "string",
        "endDate": "string"
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "get_time_off_request_count",
  "arguments": {
    "status": "REQUESTED",
    "employeeId": "550e8400-e29b-41d4-a716-446655440000",
    "policyId": "550e8400-e29b-41d4-a716-446655440000",
    "startDate": "string",
    "endDate": "string"
  }
});
```

### Python

```python
result = await session.call_tool("get_time_off_request_count", arguments={
  "status": "REQUESTED",
  "employeeId": "550e8400-e29b-41d4-a716-446655440000",
  "policyId": "550e8400-e29b-41d4-a716-446655440000",
  "startDate": "string",
  "endDate": "string"
})
```


## get_time_off_request

`TOOL get_time_off_request`

Get a specific time-off request by ID

Authentication: no security requirement declared for this operation.

Parameters:

- `id` (argument, string, uuid, required) - The time-off request ID
  Type: string, uuid
  
  The time-off request ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `relations` (argument, array, optional) - Relations to include (e.g., ["employee", "policy", "approvedBy"])
  Type: array
  
  Relations to include (e.g., ["employee", "policy", "approvedBy"])
  
  Items:
    Type: string

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_time_off_request",
    "arguments": {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "relations": [
          "string"
        ]
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "get_time_off_request",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "relations": [
      "string"
    ]
  }
});
```

### Python

```python
result = await session.call_tool("get_time_off_request", arguments={
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "relations": [
    "string"
  ]
})
```


## create_time_off_request

`TOOL create_time_off_request`

Create a new time-off request in the authenticated user's organization

Authentication: no security requirement declared for this operation.

Request body: application/json (required)

Type: object

- `request_data` (required)
  Type: object
  
  The data for creating the time-off request
  
  - `startDate` (required)
    Type: string
    
    The start date (required)
  
  - `endDate` (required)
    Type: string
    
    The end date (required)
  
  - `employeeId` (required)
    Type: string
    
    The employee ID (required)
  
  - `policyId` (required)
    Type: string
    
    The policy ID (required)
  
  Additional properties: 
    Type: unknown

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_time_off_request",
    "arguments": {
        "request_data": {
          "startDate": "string",
          "endDate": "string",
          "employeeId": "string",
          "policyId": "string"
        }
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "create_time_off_request",
  "arguments": {
    "request_data": {
      "startDate": "string",
      "endDate": "string",
      "employeeId": "string",
      "policyId": "string"
    }
  }
});
```

### Python

```python
result = await session.call_tool("create_time_off_request", arguments={
  "request_data": {
    "startDate": "string",
    "endDate": "string",
    "employeeId": "string",
    "policyId": "string"
  }
})
```


## update_time_off_request

`TOOL update_time_off_request`

Update an existing time-off request

Authentication: no security requirement declared for this operation.

Parameters:

- `id` (argument, string, uuid, required) - The time-off request ID
  Type: string, uuid
  
  The time-off request ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `request_data` (argument, object, required) - The data for updating the time-off request
  Type: object
  
  The data for updating the time-off request
  
  Additional properties: 
    Type: unknown

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_time_off_request",
    "arguments": {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "request_data": {}
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "update_time_off_request",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "request_data": {}
  }
});
```

### Python

```python
result = await session.call_tool("update_time_off_request", arguments={
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "request_data": {}
})
```


## delete_time_off_request

`TOOL delete_time_off_request`

Delete a time-off request

Authentication: no security requirement declared for this operation.

Parameters:

- `id` (argument, string, uuid, required) - The time-off request ID
  Type: string, uuid
  
  The time-off request ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_time_off_request",
    "arguments": {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "delete_time_off_request",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000"
  }
});
```

### Python

```python
result = await session.call_tool("delete_time_off_request", arguments={
  "id": "550e8400-e29b-41d4-a716-446655440000"
})
```


## approve_time_off_request

`TOOL approve_time_off_request`

Approve a time-off request

Authentication: no security requirement declared for this operation.

Parameters:

- `id` (argument, string, uuid, required) - The time-off request ID
  Type: string, uuid
  
  The time-off request ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "approve_time_off_request",
    "arguments": {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "approve_time_off_request",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000"
  }
});
```

### Python

```python
result = await session.call_tool("approve_time_off_request", arguments={
  "id": "550e8400-e29b-41d4-a716-446655440000"
})
```


## deny_time_off_request

`TOOL deny_time_off_request`

Deny a time-off request

Authentication: no security requirement declared for this operation.

Parameters:

- `id` (argument, string, uuid, required) - The time-off request ID
  Type: string, uuid
  
  The time-off request ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `reason` (argument, string, optional) - Reason for denial
  Type: string
  
  Reason for denial

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "deny_time_off_request",
    "arguments": {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "reason": "string"
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "deny_time_off_request",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "reason": "string"
  }
});
```

### Python

```python
result = await session.call_tool("deny_time_off_request", arguments={
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "reason": "string"
})
```


## cancel_time_off_request

`TOOL cancel_time_off_request`

Cancel a time-off request

Authentication: no security requirement declared for this operation.

Parameters:

- `id` (argument, string, uuid, required) - The time-off request ID
  Type: string, uuid
  
  The time-off request ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "cancel_time_off_request",
    "arguments": {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "cancel_time_off_request",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000"
  }
});
```

### Python

```python
result = await session.call_tool("cancel_time_off_request", arguments={
  "id": "550e8400-e29b-41d4-a716-446655440000"
})
```


## get_my_time_off_requests

`TOOL get_my_time_off_requests`

Get time-off requests for the current authenticated user

Authentication: no security requirement declared for this operation.

Parameters:

- `page` (argument, number, optional) - Page number for pagination
  Type: number
  
  Page number for pagination
  
  default: 1

- `limit` (argument, number, optional) - Number of items per page
  Type: number
  
  Number of items per page
  
  default: 10

- `status` (argument, string, optional) - Filter by request status
  Type: string
  
  Filter by request status
  
  enum: ["REQUESTED","APPROVED","DENIED","CANCELLED"]

- `policyId` (argument, string, uuid, optional) - Filter by policy ID
  Type: string, uuid
  
  Filter by policy ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `startDate` (argument, string, optional) - Filter requests from this date (ISO format)
  Type: string
  
  Filter requests from this date (ISO format)

- `endDate` (argument, string, optional) - Filter requests until this date (ISO format)
  Type: string
  
  Filter requests until this date (ISO format)

- `relations` (argument, array, optional) - Relations to include
  Type: array
  
  Relations to include
  
  Items:
    Type: string

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_my_time_off_requests",
    "arguments": {
        "page": 1,
        "limit": 10,
        "status": "REQUESTED",
        "policyId": "550e8400-e29b-41d4-a716-446655440000",
        "startDate": "string",
        "endDate": "string",
        "relations": [
          "string"
        ]
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "get_my_time_off_requests",
  "arguments": {
    "page": 1,
    "limit": 10,
    "status": "REQUESTED",
    "policyId": "550e8400-e29b-41d4-a716-446655440000",
    "startDate": "string",
    "endDate": "string",
    "relations": [
      "string"
    ]
  }
});
```

### Python

```python
result = await session.call_tool("get_my_time_off_requests", arguments={
  "page": 1,
  "limit": 10,
  "status": "REQUESTED",
  "policyId": "550e8400-e29b-41d4-a716-446655440000",
  "startDate": "string",
  "endDate": "string",
  "relations": [
    "string"
  ]
})
```


## get_pending_time_off_requests

`TOOL get_pending_time_off_requests`

Get pending time-off requests for the authenticated user's organization

Authentication: no security requirement declared for this operation.

Parameters:

- `page` (argument, number, optional) - Page number for pagination
  Type: number
  
  Page number for pagination
  
  default: 1

- `limit` (argument, number, optional) - Number of items per page
  Type: number
  
  Number of items per page
  
  default: 10

- `employeeId` (argument, string, uuid, optional) - Filter by employee ID
  Type: string, uuid
  
  Filter by employee ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `policyId` (argument, string, uuid, optional) - Filter by policy ID
  Type: string, uuid
  
  Filter by policy ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `relations` (argument, array, optional) - Relations to include
  Type: array
  
  Relations to include
  
  Items:
    Type: string

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_pending_time_off_requests",
    "arguments": {
        "page": 1,
        "limit": 10,
        "employeeId": "550e8400-e29b-41d4-a716-446655440000",
        "policyId": "550e8400-e29b-41d4-a716-446655440000",
        "relations": [
          "string"
        ]
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "get_pending_time_off_requests",
  "arguments": {
    "page": 1,
    "limit": 10,
    "employeeId": "550e8400-e29b-41d4-a716-446655440000",
    "policyId": "550e8400-e29b-41d4-a716-446655440000",
    "relations": [
      "string"
    ]
  }
});
```

### Python

```python
result = await session.call_tool("get_pending_time_off_requests", arguments={
  "page": 1,
  "limit": 10,
  "employeeId": "550e8400-e29b-41d4-a716-446655440000",
  "policyId": "550e8400-e29b-41d4-a716-446655440000",
  "relations": [
    "string"
  ]
})
```


## get_time_off_policies

`TOOL get_time_off_policies`

Get list of time-off policies for the authenticated user's organization

Authentication: no security requirement declared for this operation.

Parameters:

- `page` (argument, number, optional) - Page number for pagination
  Type: number
  
  Page number for pagination
  
  default: 1

- `limit` (argument, number, optional) - Number of items per page
  Type: number
  
  Number of items per page
  
  default: 10

- `search` (argument, string, optional) - Search term for policy name
  Type: string
  
  Search term for policy name

- `relations` (argument, array, optional) - Relations to include (e.g., ["employees"])
  Type: array
  
  Relations to include (e.g., ["employees"])
  
  Items:
    Type: string

- `type` (argument, string, optional) - Filter by policy type
  Type: string
  
  Filter by policy type
  
  enum: ["VACATION","SICK_LEAVE","PERSONAL","MATERNITY","PATERNITY","BEREAVEMENT","OTHER"]

- `requiresApproval` (argument, boolean, optional) - Filter by approval requirement
  Type: boolean
  
  Filter by approval requirement

- `paid` (argument, boolean, optional) - Filter by paid status
  Type: boolean
  
  Filter by paid status

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_time_off_policies",
    "arguments": {
        "page": 1,
        "limit": 10,
        "search": "string",
        "relations": [
          "string"
        ],
        "type": "VACATION",
        "requiresApproval": true,
        "paid": true
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "get_time_off_policies",
  "arguments": {
    "page": 1,
    "limit": 10,
    "search": "string",
    "relations": [
      "string"
    ],
    "type": "VACATION",
    "requiresApproval": true,
    "paid": true
  }
});
```

### Python

```python
result = await session.call_tool("get_time_off_policies", arguments={
  "page": 1,
  "limit": 10,
  "search": "string",
  "relations": [
    "string"
  ],
  "type": "VACATION",
  "requiresApproval": true,
  "paid": true
})
```


## get_time_off_policy

`TOOL get_time_off_policy`

Get a specific time-off policy by ID

Authentication: no security requirement declared for this operation.

Parameters:

- `id` (argument, string, uuid, required) - The time-off policy ID
  Type: string, uuid
  
  The time-off policy ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `relations` (argument, array, optional) - Relations to include (e.g., ["employees"])
  Type: array
  
  Relations to include (e.g., ["employees"])
  
  Items:
    Type: string

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_time_off_policy",
    "arguments": {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "relations": [
          "string"
        ]
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "get_time_off_policy",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "relations": [
      "string"
    ]
  }
});
```

### Python

```python
result = await session.call_tool("get_time_off_policy", arguments={
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "relations": [
    "string"
  ]
})
```


## create_time_off_policy

`TOOL create_time_off_policy`

Create a new time-off policy in the authenticated user's organization

Authentication: no security requirement declared for this operation.

Request body: application/json (required)

Type: object

- `policy_data` (required)
  Type: object
  
  The data for creating the time-off policy
  
  - `name` (required)
    Type: string
    
    The policy name (required)
  
  - `type` (required)
    Type: string
    
    The policy type (required)
  
  Additional properties: 
    Type: unknown

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_time_off_policy",
    "arguments": {
        "policy_data": {
          "name": "string",
          "type": "string"
        }
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "create_time_off_policy",
  "arguments": {
    "policy_data": {
      "name": "string",
      "type": "string"
    }
  }
});
```

### Python

```python
result = await session.call_tool("create_time_off_policy", arguments={
  "policy_data": {
    "name": "string",
    "type": "string"
  }
})
```


## update_time_off_policy

`TOOL update_time_off_policy`

Update an existing time-off policy

Authentication: no security requirement declared for this operation.

Parameters:

- `id` (argument, string, uuid, required) - The time-off policy ID
  Type: string, uuid
  
  The time-off policy ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `policy_data` (argument, object, required) - The data for updating the time-off policy
  Type: object
  
  The data for updating the time-off policy
  
  Additional properties: 
    Type: unknown

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_time_off_policy",
    "arguments": {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "policy_data": {}
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "update_time_off_policy",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "policy_data": {}
  }
});
```

### Python

```python
result = await session.call_tool("update_time_off_policy", arguments={
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "policy_data": {}
})
```


## delete_time_off_policy

`TOOL delete_time_off_policy`

Delete a time-off policy

Authentication: no security requirement declared for this operation.

Parameters:

- `id` (argument, string, uuid, required) - The time-off policy ID
  Type: string, uuid
  
  The time-off policy ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_time_off_policy",
    "arguments": {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "delete_time_off_policy",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000"
  }
});
```

### Python

```python
result = await session.call_tool("delete_time_off_policy", arguments={
  "id": "550e8400-e29b-41d4-a716-446655440000"
})
```


## assign_employees_to_time_off_policy

`TOOL assign_employees_to_time_off_policy`

Assign employees to a time-off policy

Authentication: no security requirement declared for this operation.

Parameters:

- `policyId` (argument, string, uuid, required) - The time-off policy ID
  Type: string, uuid
  
  The time-off policy ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `employeeIds` (argument, array, required) - Array of employee IDs to assign
  Type: array
  
  Array of employee IDs to assign
  
  Items:
    Type: string, uuid
    
    pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "assign_employees_to_time_off_policy",
    "arguments": {
        "policyId": "550e8400-e29b-41d4-a716-446655440000",
        "employeeIds": [
          "550e8400-e29b-41d4-a716-446655440000"
        ]
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "assign_employees_to_time_off_policy",
  "arguments": {
    "policyId": "550e8400-e29b-41d4-a716-446655440000",
    "employeeIds": [
      "550e8400-e29b-41d4-a716-446655440000"
    ]
  }
});
```

### Python

```python
result = await session.call_tool("assign_employees_to_time_off_policy", arguments={
  "policyId": "550e8400-e29b-41d4-a716-446655440000",
  "employeeIds": [
    "550e8400-e29b-41d4-a716-446655440000"
  ]
})
```


## get_time_off_balance

`TOOL get_time_off_balance`

Get time-off balance for an employee

Authentication: no security requirement declared for this operation.

Parameters:

- `employeeId` (argument, string, uuid, required) - The employee ID
  Type: string, uuid
  
  The employee ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `policyId` (argument, string, uuid, optional) - Filter by specific policy ID
  Type: string, uuid
  
  Filter by specific policy ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `year` (argument, number, optional) - Filter by specific year
  Type: number
  
  Filter by specific year

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_time_off_balance",
    "arguments": {
        "employeeId": "550e8400-e29b-41d4-a716-446655440000",
        "policyId": "550e8400-e29b-41d4-a716-446655440000",
        "year": 0
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "get_time_off_balance",
  "arguments": {
    "employeeId": "550e8400-e29b-41d4-a716-446655440000",
    "policyId": "550e8400-e29b-41d4-a716-446655440000",
    "year": 0
  }
});
```

### Python

```python
result = await session.call_tool("get_time_off_balance", arguments={
  "employeeId": "550e8400-e29b-41d4-a716-446655440000",
  "policyId": "550e8400-e29b-41d4-a716-446655440000",
  "year": 0
})
```


## get_my_time_off_balance

`TOOL get_my_time_off_balance`

Get time-off balance for the current authenticated user

Authentication: no security requirement declared for this operation.

Parameters:

- `policyId` (argument, string, uuid, optional) - Filter by specific policy ID
  Type: string, uuid
  
  Filter by specific policy ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `year` (argument, number, optional) - Filter by specific year
  Type: number
  
  Filter by specific year

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_my_time_off_balance",
    "arguments": {
        "policyId": "550e8400-e29b-41d4-a716-446655440000",
        "year": 0
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "get_my_time_off_balance",
  "arguments": {
    "policyId": "550e8400-e29b-41d4-a716-446655440000",
    "year": 0
  }
});
```

### Python

```python
result = await session.call_tool("get_my_time_off_balance", arguments={
  "policyId": "550e8400-e29b-41d4-a716-446655440000",
  "year": 0
})
```


## get_time_off_statistics

`TOOL get_time_off_statistics`

Get time-off statistics for the authenticated user's organization

Authentication: no security requirement declared for this operation.

Parameters:

- `startDate` (argument, string, optional) - Start date for statistics (ISO format)
  Type: string
  
  Start date for statistics (ISO format)

- `endDate` (argument, string, optional) - End date for statistics (ISO format)
  Type: string
  
  End date for statistics (ISO format)

- `employeeId` (argument, string, uuid, optional) - Filter by specific employee ID
  Type: string, uuid
  
  Filter by specific employee ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `policyId` (argument, string, uuid, optional) - Filter by specific policy ID
  Type: string, uuid
  
  Filter by specific policy ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `type` (argument, string, optional) - Filter by time-off type
  Type: string
  
  Filter by time-off type
  
  enum: ["VACATION","SICK_LEAVE","PERSONAL","MATERNITY","PATERNITY","BEREAVEMENT","OTHER"]

- `groupBy` (argument, string, optional) - Group statistics by
  Type: string
  
  Group statistics by
  
  enum: ["employee","policy","type","month"]

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_time_off_statistics",
    "arguments": {
        "startDate": "string",
        "endDate": "string",
        "employeeId": "550e8400-e29b-41d4-a716-446655440000",
        "policyId": "550e8400-e29b-41d4-a716-446655440000",
        "type": "VACATION",
        "groupBy": "employee"
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "get_time_off_statistics",
  "arguments": {
    "startDate": "string",
    "endDate": "string",
    "employeeId": "550e8400-e29b-41d4-a716-446655440000",
    "policyId": "550e8400-e29b-41d4-a716-446655440000",
    "type": "VACATION",
    "groupBy": "employee"
  }
});
```

### Python

```python
result = await session.call_tool("get_time_off_statistics", arguments={
  "startDate": "string",
  "endDate": "string",
  "employeeId": "550e8400-e29b-41d4-a716-446655440000",
  "policyId": "550e8400-e29b-41d4-a716-446655440000",
  "type": "VACATION",
  "groupBy": "employee"
})
```
