Skip to main content
Glama
TylerIlunga

Procore MCP Server

Update A Time Off Record

update_a_time_off_record
Idempotent

Update an existing time off record by specifying only the fields to change; omitted fields retain their current values.

Instructions

Updates an existing Time Off record for a specified Person within a given company. Only specified properties in the request body will be updated. Send only the fields you intend to change; omitted fields keep their current values. company_id defaults to the value set by procore_set_config when omitted, and person_id, time_off_id must identify existing parent records — resolve them with the matching list tool first. Returns the modified time off record on success. Failures come back as an error payload carrying the HTTP status — commonly 401 when the token has expired, 403 without tool permission, and 404 when an id does not resolve. Required parameters: company_id, person_id, time_off_id. Procore API: Resource Management > Resource Planning. Endpoint: PATCH /rest/v1.0/workforce-planning/v2/companies/{company_id}/people/{person_id}/time-off/{time_off_id}

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
reasonNoJSON request body field — reason for the time off.
end_dayNoJSON request body field — end date of the time off (MM/DD/YY).
is_paidNoJSON request body field — whether the time off is paid.
person_idYesURL path parameter — unique identifier for the person
start_dayNoJSON request body field — start date of the time off (MM/DD/YY).
company_idYesURL path parameter — unique identifier for the company. This parameter accepts both formats: - **Recommended**: Procore company ID (integer) - Use this for new integrations - Legacy: LaborChart UUID format (uuid string...
time_off_idYesURL path parameter — the UUID of the Time Off record.
batch_end_timeNoJSON request body field — end time of the time off (formatted as HH:MM am/pm).
apply_to_sundayNoJSON request body field — whether the time off applies to Sundays.
batch_start_timeNoJSON request body field — start time of the time off (formatted as HH:MM am/pm).
apply_to_saturdayNoJSON request body field — whether the time off applies to Saturdays.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial behavior beyond annotations: PATCH partial-update semantics (only specified properties updated, omitted fields keep current values), the config default behavior, return value on success, and error status meanings (401 expired token, 403 no permission, 404 unresolved id). No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense paragraph front-loads the core purpose, then logically flows into request semantics, ID resolution, error handling, and endpoint reference. Every sentence contributes useful information with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an update tool with 11 parameters and no output schema, the description covers prerequisites, body construction strategy, return value, error cases, config default, and endpoint. This is sufficient for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaningful context: company_id has a fallback default through procore_set_config, the three IDs must identify existing parent records, and the body parameters follow partial-update semantics. This goes beyond the schema's field-level descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with the specific verb 'Updates' plus a clear resource and scope: 'an existing Time Off record for a specified Person within a given company.' It also names the HTTP method (PATCH) and the exact endpoint, and the intent is unambiguous alongside sibling tools like create/delete/get time-off records.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance to resolve person_id and time_off_id using the matching list tool first, and notes that company_id defaults to the value set by procore_set_config. It clearly frames this as an update operation, though it does not explicitly list when-not-to-use or name alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TylerIlunga/procore-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server