bootstrap
ChatGPTFetch the calling user's profile, the active Temponia company config (timezone, currency, week start, weekend days, time format, duration-only mode), and feature flags. Always call this once at the start of a session so subsequent tool calls can format dates/times correctly.
bootstrap
ChatGPTFetch the calling user's profile, the active Temponia company config (timezone, currency, week start, weekend days, time format, duration-only mode), and feature flags. Always call this once at the start of a session so subsequent tool calls can format dates/times correctly.
bootstrap
ChatGPTFetch the calling user's profile, the active Temponia company config (timezone, currency, week start, weekend days, time format, duration-only mode), and feature flags. Always call this once at the start of a session so subsequent tool calls can format dates/times correctly.
create_timesheet
ChatGPTCreate a new timesheet entry for the calling user. Resolve the task_link_id with search_task_links first. Times are ISO-8601 with an explicit UTC offset (Z or +00:00). For companies in duration-only mode, omit time_end and pass date (YYYY-MM-DD) plus duration_minutes.
create_timesheet
ChatGPTCreate a new timesheet entry for the calling user. Resolve the task_link_id with search_task_links first. Times are ISO-8601 with an explicit UTC offset (Z or +00:00). For companies in duration-only mode, omit time_end and pass date (YYYY-MM-DD) plus duration_minutes.
create_timesheet
ChatGPTCreate a new timesheet entry for the calling user. Resolve the task_link_id with search_task_links first. Times are ISO-8601 with an explicit UTC offset (Z or +00:00). For companies in duration-only mode, omit time_end and pass date (YYYY-MM-DD) plus duration_minutes.
delete_timesheet
ChatGPTDelete a timesheet entry the calling user owns. Cannot delete locked or someone else's entries. This is destructive — confirm with the user before calling.
delete_timesheet
ChatGPTDelete a timesheet entry the calling user owns. Cannot delete locked or someone else's entries. This is destructive — confirm with the user before calling.
delete_timesheet
ChatGPTDelete a timesheet entry the calling user owns. Cannot delete locked or someone else's entries. This is destructive — confirm with the user before calling.
get_current_timer
ChatGPTReturn the user's currently running timer (if any) — the live ticker that will become a timesheet entry when stopped. Use before starting a new timer so you don't double-start.
get_current_timer
ChatGPTReturn the user's currently running timer (if any) — the live ticker that will become a timesheet entry when stopped. Use before starting a new timer so you don't double-start.
get_current_timer
ChatGPTReturn the user's currently running timer (if any) — the live ticker that will become a timesheet entry when stopped. Use before starting a new timer so you don't double-start.
list_clients
ChatGPTList the clients the calling user can see. Use this when the user references a project by client name or asks "what clients do we have?".
list_clients
ChatGPTList the clients the calling user can see. Use this when the user references a project by client name or asks "what clients do we have?".
list_clients
ChatGPTList the clients the calling user can see. Use this when the user references a project by client name or asks "what clients do we have?".
list_projects
ChatGPTList the Temponia projects the calling user is allowed to log time against. Owners and admins see every active project in the company; managers and employees see only projects they're assigned to. Optionally filter by client_id or include archived projects.
list_projects
ChatGPTList the Temponia projects the calling user is allowed to log time against. Owners and admins see every active project in the company; managers and employees see only projects they're assigned to. Optionally filter by client_id or include archived projects.
list_projects
ChatGPTList the Temponia projects the calling user is allowed to log time against. Owners and admins see every active project in the company; managers and employees see only projects they're assigned to. Optionally filter by client_id or include archived projects.
list_timesheets
ChatGPTList the calling user's timesheet entries between two dates (inclusive). Dates are interpreted in the company's timezone. Use this for queries like "what did I log last week?" or "show my entries on the Acme project for March".
list_timesheets
ChatGPTList the calling user's timesheet entries between two dates (inclusive). Dates are interpreted in the company's timezone. Use this for queries like "what did I log last week?" or "show my entries on the Acme project for March".
list_timesheets
ChatGPTList the calling user's timesheet entries between two dates (inclusive). Dates are interpreted in the company's timezone. Use this for queries like "what did I log last week?" or "show my entries on the Acme project for March".
search_task_links
ChatGPTSearch the user's available task links (Project + Task combos) by keyword. Returns task_link_id values that you can pass to create_timesheet or start_timer. If the user says "log time on the Acme website redesign", call this with term:"Acme website" first to resolve the right task_link_id.
search_task_links
ChatGPTSearch the user's available task links (Project + Task combos) by keyword. Returns task_link_id values that you can pass to create_timesheet or start_timer. If the user says "log time on the Acme website redesign", call this with term:"Acme website" first to resolve the right task_link_id.
search_task_links
ChatGPTSearch the user's available task links (Project + Task combos) by keyword. Returns task_link_id values that you can pass to create_timesheet or start_timer. If the user says "log time on the Acme website redesign", call this with term:"Acme website" first to resolve the right task_link_id.
start_timer
ChatGPTStart a live timer (ticker) for the calling user. The timer becomes a timesheet entry when stopped. Resolve task_link_id via search_task_links first. Only one timer can run at a time per user; check get_current_timer first if unsure.
start_timer
ChatGPTStart a live timer (ticker) for the calling user. The timer becomes a timesheet entry when stopped. Resolve task_link_id via search_task_links first. Only one timer can run at a time per user; check get_current_timer first if unsure.
start_timer
ChatGPTStart a live timer (ticker) for the calling user. The timer becomes a timesheet entry when stopped. Resolve task_link_id via search_task_links first. Only one timer can run at a time per user; check get_current_timer first if unsure.
stop_timer
ChatGPTStop the calling user's running timer and persist it as a timesheet entry. If no timer is running, returns a no-op. Optionally pass an ISO-8601 UTC time_stop to backdate the end of the timer.
stop_timer
ChatGPTStop the calling user's running timer and persist it as a timesheet entry. If no timer is running, returns a no-op. Optionally pass an ISO-8601 UTC time_stop to backdate the end of the timer.
stop_timer
ChatGPTStop the calling user's running timer and persist it as a timesheet entry. If no timer is running, returns a no-op. Optionally pass an ISO-8601 UTC time_stop to backdate the end of the timer.
timesheet_totals
ChatGPTAggregate timesheet hours over a date range, optionally grouped by one temporal axis (date, week, month, quarter, year) and/or one categorical axis (project, client, task, user). Use this — NOT list_timesheets — whenever the user asks for totals, rollups, evolution over time, or a breakdown by month/quarter/project/etc. Always prefer this over fetching raw entries when the answer is a single number or a small grouped table. Returns aggregated rows only, not the underlying timesheets. Combining two temporal axes (e.g. ["week","month"]) is not supported — pick one. Combining one temporal + one categorical (e.g. ["month","project"]) IS supported.
timesheet_totals
ChatGPTAggregate timesheet hours over a date range, optionally grouped by one temporal axis (date, week, month, quarter, year) and/or one categorical axis (project, client, task, user). Use this — NOT list_timesheets — whenever the user asks for totals, rollups, evolution over time, or a breakdown by month/quarter/project/etc. Always prefer this over fetching raw entries when the answer is a single number or a small grouped table. Returns aggregated rows only, not the underlying timesheets. Combining two temporal axes (e.g. ["week","month"]) is not supported — pick one. Combining one temporal + one categorical (e.g. ["month","project"]) IS supported.
timesheet_totals
ChatGPTAggregate timesheet hours over a date range, optionally grouped by one temporal axis (date, week, month, quarter, year) and/or one categorical axis (project, client, task, user). Use this — NOT list_timesheets — whenever the user asks for totals, rollups, evolution over time, or a breakdown by month/quarter/project/etc. Always prefer this over fetching raw entries when the answer is a single number or a small grouped table. Returns aggregated rows only, not the underlying timesheets. Combining two temporal axes (e.g. ["week","month"]) is not supported — pick one. Combining one temporal + one categorical (e.g. ["month","project"]) IS supported.
update_timesheet
ChatGPTUpdate one of the calling user's existing timesheet entries. Only the owner can update — never use this to edit someone else's time. Provide only the fields you want to change.
update_timesheet
ChatGPTUpdate one of the calling user's existing timesheet entries. Only the owner can update — never use this to edit someone else's time. Provide only the fields you want to change.
update_timesheet
ChatGPTUpdate one of the calling user's existing timesheet entries. Only the owner can update — never use this to edit someone else's time. Provide only the fields you want to change.