← TimeTackleCONTENT HISTORY
WHAT CHANGED
Update to TimeTackle
Snapshot Oct 24, 2026 · 13:50 UTC · version 1.0.1
Collection source: downloaded plugin package.
First saved snapshot
No earlier snapshot is available to establish a change.
Save TimeTackle and check future changes in Following.
Up to 10 plugins free · no card required.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"description": "Break down where time went in TimeTackle - hours by tag, project, client, department or any other property for a period, optionally per person or per calendar, including untagged time. Use when the user asks how time was split, what took the most time, or hours per tag or property.",
"included_files": [
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 402
}
],
"name": "time-breakdown",
"skill_md_contents": "---\nname: time-breakdown\ndescription: Break down where time went in TimeTackle - hours by tag, project, client, department or any other property for a period, optionally per person or per calendar, including untagged time. Use when the user asks how time was split, what took the most time, or hours per tag or property.\n---\n\n# Time breakdown\n\nAnswer \"where did the time go?\" with hours per tag or property value for a clear date range. Explicit instructions\nfrom the user (period, people, property, format) take priority over these steps.\n\n## Input\n\n- A period. If none is given, use the last full week and say so. Convert relative periods (\"last month\",\n \"this quarter\") to exact `YYYY-MM-DD` dates.\n- What to break down by: a property the user names (Project, Client, Department, ...) or, if none, the top-level tags.\n- Optionally per person or per calendar, or limited to specific calendars.\n\n## Steps\n\n1. Call `get_account` and read `syncRange`. If the period falls partly or fully outside it, tell the user that data\n only exists from `syncRange.start` to `syncRange.end` before showing numbers.\n2. Find the property. Call `get_properties` with `search` set to the name the user gave (for example \"Client\").\n - Note its `key` and `state` (PRIMARY or SECONDARY).\n - If several properties match, ask which one. If none match, list a few property keys and ask; do not guess.\n - If the user named no property, skip this step and break down by the top-level tags (step 3, no `tagKey`).\n3. Call `get_meeting_analytics`:\n - `measures: [\"hours\"]` (add `\"count\"` if the user asks how many meetings or entries).\n - `groupBy: \"primary_tag\"` for a PRIMARY property, `\"secondary_tag\"` for a SECONDARY one.\n - `tagKey`: the property's key, to get hours per value. Omit it to get hours per tag; that view includes an\n \"UNTAGGED\" row for time with no tag.\n - `splitBy: \"user\"` for per person, or `\"calendar\"` for per calendar.\n - `dateFrom`, `dateTo`, and `timezone` (the user's stated timezone, otherwise the `timezone` of their own calendar\n from `get_imported_calendars`; say which one you used).\n - `calendarIds` only if the user limited the calendars.\n4. If `summary.nextOffset` is not null, call again with `offset` set to it until it is null, and combine the rows.\n5. If the result has a `syncRangeWarning`, repeat it to the user.\n\n## Output\n\n- A table sorted by hours, largest first: value, hours (one decimal), share of the total (%). With `splitBy`, one row\n per person (or calendar) and value, or a person × value table if it stays readable.\n- The total hours and the exact date range.\n- With `tagKey`, say that time without a value for that property is not included. Without `tagKey`, show UNTAGGED\n as its own row.\n- Follow the result's `visualization` hint if the user wants a chart.\n\n## Do not\n\n- Do not invent values, people or hours that are not in the tool results, or fill gaps with estimates.\n- Do not describe a person's performance; report hours only.\n- People and calendars are limited to what the user can access in TimeTackle; do not suggest others exist.\n"
}SHA-256 of public snapshot: 119d11348fda04b5a5412a9a9b081ea08df08520fd4fcd4bb571def6ccec7a9b