Skip to content

Time Entry Tools ​

Four tools for time tracking: create entries, query aggregated data, update, and delete.

create-time-entry ​

Log time spent on an issue.

Parameters ​

ParameterTypeRequiredDescription
issue_idintegerOne ofThe numeric ID of the issue (provide issue_id or issue_key, not both)
issue_keystringOne ofThe issue key, e.g. "KD-0042" (provide issue_id or issue_key, not both)
minutes_spentintegerYesTime in minutes (minimum 1)
started_atdateNoWhen work started (ISO 8601 format, e.g., 2026-03-13)
notestringNoDescription of the work done (max 10,000 characters)

Behavior ​

  • The authenticated user is automatically recorded as the time logger
  • Returns the created entry with issue, project, hours (decimal), started_at, and created_at/updated_at (ISO 8601)

Example Prompt ​

I just spent an hour and a half fixing the email validation bug. Log the time with a note about what I did.

get-time-entries ​

Query time entry data with optional filtering and grouping. This tool is read-only and safe to call repeatedly.

Parameters ​

ParameterTypeRequiredDescription
date_fromdateYesStart date (ISO 8601, e.g., 2026-01-01), matched against the day the work started, or the creation day when started_at is not set
date_todateYesEnd date (ISO 8601, e.g., 2026-01-31), matched like date_from. Must be ≥ date_from.
project_idintegerNoFilter to a specific project
user_idintegerNoFilter to a specific user
team_idintegerNoFilter to members of a specific team
issue_idintegerNoFilter to a specific issue
group_bystringNoAggregation mode (see below). Default: none

Grouping Modes ​

The group_by parameter controls how results are aggregated:

ModeReturnsUse Case
noneRaw time entries (max 100) in entries, plus has_moreDetailed view of individual entries
userTotal hours per user: user, user_id, hours, entriesTeam utilization overview
projectTotal hours per project: project, project_id, hours, entriesProject cost tracking
teamTotal hours per team: team, team_id, hours, entriesDepartment-level reporting
issueTotal hours per issue: issue, issue_id, hours, entriesIssue effort analysis
dayTotal hours per day the work started (the creation day when started_at is not set): date, hours, entriesDaily activity patterns

Behavior ​

  • An entry counts on the day its work started (started_at), or on its creation day (created_at) when started_at is not set. The date window, the day buckets and the newest-first order of raw entries all go by that day, so time logged today for last week's work shows up in last week
  • Raw entries (group_by none) are capped at 100 results with a has_more flag, and each entry carries created_at/updated_at (ISO 8601) rather than a bare date
  • Every mode returns period, total_hours and total_entries. A grouped mode adds a groups array and sends neither entries nor has_more; each group's entries is a count
  • With team, users without a team fall under a No Team group whose team_id is null. An entry counts under every team of its user, so the group totals can sum above total_hours
  • Grouped results return decimal hours (e.g., 1.5 for 90 minutes); the day mode's bucket key is still a plain date string — a day label, not an entity timestamp
  • Respects project accessibility — non-admin users only see data for projects they can access
  • Marked as #[IsReadOnly] and #[IsIdempotent]

Example Prompts ​

How much time did the team spend on the kendo project last week?

Show me a breakdown of hours per person for January 2026

Which issues in the kendo project have the most time logged this sprint?

update-time-entry ​

Update or correct an existing time entry — change minutes, note, start time, or move it to a different issue.

Parameters ​

ParameterTypeRequiredDescription
time_entry_idintegerYesThe ID of the time entry to update
issue_idintegerNoMove to a different issue (must be in the same project)
minutes_spentintegerNoNew time in minutes (minimum 1)
started_atdateNoWhen work started (ISO 8601), or null to clear
notestringNoNote about the work done (max 10,000 characters), or null to clear

Behavior ​

  • Only the user who originally logged the time can update it
  • Only provided fields are changed — omitted fields keep their current values
  • Response includes created_at and updated_at (ISO 8601)
  • Use get-time-entries first to find time entry IDs

Example Prompt ​

I accidentally logged 30 minutes instead of 60 on that time entry. Fix it to 60 minutes.

delete-time-entry ​

Permanently delete a time entry.

Destructive

This action cannot be undone. The time entry is permanently removed.

Parameters ​

ParameterTypeRequiredDescription
time_entry_idintegerYesThe ID of the time entry to delete

Behavior ​

  • Only the user who originally logged the time can delete it
  • Use get-time-entries first to find time entry IDs
  • Returns confirmation with the deleted entry's details

Example Prompt ​

Delete the duplicate time entry I logged earlier today on KD-42

See Also ​