← 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": "Build a weekly timesheet from TimeTackle - a person's hours per day and per project or tag for a week, with untagged time and days with little tracked time called out. Use when the user asks for their timesheet, what they worked on this or last week, or a weekly summary of their time.",
"included_files": [
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 394
}
],
"name": "weekly-timesheet",
"skill_md_contents": "---\nname: weekly-timesheet\ndescription: Build a weekly timesheet from TimeTackle - a person's hours per day and per project or tag for a week, with untagged time and days with little tracked time called out. Use when the user asks for their timesheet, what they worked on this or last week, or a weekly summary of their time.\n---\n\n# Weekly timesheet\n\nSummarize one person's week from their calendars. Explicit instructions from the user (which week, which person,\ngrouping, format) take priority over these steps.\n\n## Input\n\n- The week. If none is given, use the current week (Monday to Sunday) and say so; \"last week\" is the previous one.\n- The person: the connected user unless they name someone else.\n- Optionally the property to group by (for example Project); otherwise the top-level tags.\n\n## Steps\n\n1. Call `get_account` for the user's email and `syncRange`. If the week reaches outside the sync range, say so.\n2. Call `get_imported_calendars` and pick the person's calendars: those whose `user.email` is the person's email.\n - For someone else, they must appear in the list; if they don't, say you cannot see their calendars and stop.\n - Use the `timezone` of their calendar unless the user gave one, and say which one you used.\n3. Daily totals: call `get_meeting_analytics` with `measures: [\"hours\"]`, `groupBy: \"none\"`, `granularity: \"day\"`,\n `meetingsOnly: false`, the week's `dateFrom` / `dateTo`, `timezone`, and `calendarIds` set to the person's calendars.\n4. Time by project or tag: call `get_meeting_analytics` with `measures: [\"hours\"]`, the same dates, timezone and\n `calendarIds`, and either:\n - `groupBy: \"primary_tag\"` (no `tagKey`) for hours per tag, including an UNTAGGED row; or\n - the property the user named: find it with `get_properties` (`search`), then `groupBy` by its `state` and\n `tagKey` set to its key.\n5. Optionally, for detail, call `get_events` with the person's `calendarIds`, the week's dates and `timezone` to list\n the week's events by day (page with `page` if there are more).\n\n## Output\n\n- A day-by-day table: date, hours.\n- A table of hours per project or tag, with UNTAGGED as its own row when present.\n- The week's total hours, the exact dates and the timezone.\n- Call out days with no or very little tracked time, without assuming a standard working day unless the user gives\n one. If untagged time is large, suggest tagging it in TimeTackle.\n- If a result has a `syncRangeWarning`, include it.\n\n## Do not\n\n- Do not invent events, projects or hours; report only what the tools return.\n- Do not judge the person's productivity; describe the time.\n- Do not create or change anything; to add missing time, the user can ask to log it.\n"
}SHA-256 of public snapshot: 2eee22a5dbd397123a238a003ca56dfa6a018c70e23a5839396382fbe997a121