Skip to main content
Glama

Update time entry

update_time_entry

Correct existing time entries by fixing wrong duration, date, activity, or comment while leaving other fields unchanged.

Instructions

Correct an existing time entry.

Use it for the everyday fixes: wrong duration, wrong day, wrong activity, a comment that needs to say what actually happened. Only the parameters you pass are written; everything else is left exactly as it is.

Returns the updated entry in the same shape log_time returns.

Pitfalls. What can be moved between entries is limited: the work package and the project a time entry belongs to are not editable here — delete the entry and log it again where it belongs. Some instances report a lock_version for time entries and some do not; this tool reads the entry first and only echoes a lock version when one exists, so a concurrent edit surfaces as a conflict error with the fresh state rather than silently overwriting a colleague's correction. Editing time inside a closed cost-reporting period is refused by OpenProject with a validation error.

Cross-references: find the id with list_time_entries; remove the entry entirely with delete_time_entry; the valid activity names come from get_project_metadata.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
hoursNoNew duration in hours as a float (1.5 = 1h30). Omit to leave it.
commentNoNew comment text. Pass an empty string to clear it; omit to leave the existing comment untouched.
activityNoNew activity as a name or numeric id. Names are resolved against the entry's own form, so an unknown one fails with the valid ones listed.
spent_onNoNew spent-on date, ISO YYYY-MM-DD. Omit to leave it.
time_entry_idYesId of the entry to correct. It comes from list_time_entries or from the log_time result — it is not a work package id.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoTime entry id. Feed it to update_time_entry or delete_time_entry.
userNoUser the time is booked for.
hoursNoLogged duration in hours as a float (1.5 = one and a half hours), converted from OpenProject's ISO 8601 duration.
commentNoFree-text comment as entered (raw); html is dropped.
projectNoProject the entry belongs to.
activityNoTime-entry activity (Development, Management, …); instance-defined.
spent_onNoThe date the work was done, ISO YYYY-MM-DD.
created_atNoISO 8601 UTC timestamp.
updated_atNoISO 8601 UTC timestamp.
lock_versionNoOptimistic-locking version, when this instance reports one for time entries; null means the resource is updated without a lock version.
work_packageNoWork package the time is booked on; null for project-level entries.
Behavior5/5

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

Beyond annotations (readOnlyHint: false, etc.), the description discloses critical behaviors: partial update semantics ('only the parameters you pass are written'), lock_version handling and conflict errors rather than silent overwrites, and refusal to edit within closed cost-reporting periods. This adds substantial transparency beyond the structured 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?

The description is front-loaded with a clear purpose sentence, followed by usage, behavior, and cross-references in a logical order. Every sentence adds useful information; no filler or redundancy. Despite being long, it earns its space.

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?

With an output schema present, the description still usefully cross-references log_time's return shape. It covers edge cases (concurrency, validation errors, uneditable fields) and provides all necessary operational context. No significant gaps remain.

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

Parameters5/5

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

The schema already has 100% coverage, but the description enriches it further: it clarifies the 'comment' empty-string behavior, explains 'activity' name resolution against the entry's own form, and clarifies that time_entry_id is not a work package id. This is additive value beyond the schema.

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 'Correct an existing time entry', a specific verb-resource pair that clearly distinguishes it from siblings like log_time (create) and delete_time_entry. It further clarifies the scope by listing everyday fixes (wrong duration, day, activity, comment), making the purpose unmistakable.

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

Usage Guidelines5/5

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

It gives explicit when-to-use guidance ('everyday fixes'), clearly states what is not editable (work package and project) with an alternative action ('delete the entry and log it again'), and provides cross-references to list_time_entries, delete_time_entry, and get_project_metadata. This is exemplary usage guidance.

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/kar-thik/openproject-mcp'

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