The Toggl 2.0 connector lets your AI agent act in each user's Toggl 2.0 account. Each user connects their own Toggl 2.0 access token once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 67 tools.
- Tools
- 67
- What they doRead · write · destructive
- 32 · 27 · 832 read27 write8 destructive
- Users sign in with
- Access token
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Toggl 2.0 connection
In AgentKit > Connections, create a Toggl 2.0 connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'togglfocus'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Toggl 2.0:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'togglfocus_get_user_settings',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "togglfocus"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Toggl 2.0:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="togglfocus_get_user_settings",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user opens the link once and enters their Toggl 2.0 credentials there. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_tooltogglfocus_get_clientGet one client by id.Read-onlyGet Client
Get one client by id. Returns the client: id, name, currency, active and workspace_id. Use after togglfocus_list_clients to read one client. Needs workspace_id. togglfocus_get_user_settings returns current_workspace_id.
Inputs
client_idintegerrequired- Numeric ID of the client. Find it with togglfocus_list_clients. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_get_current_time_entryGet the time entry the authenticated user is tracking right now.Read-onlyGet Current Time Entry
Get the time entry the authenticated user is tracking right now. Returns the running time entry, or no content (HTTP 204) when nothing is being tracked. Use before togglfocus_start_tracking or togglfocus_stop_tracking to check the timer state. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_get_milestoneGet one milestone by id.Read-onlyGet Milestone
Get one milestone by id. Returns the milestone: id, name, due_date, color, completed_at, project_ids and team_ids. Use after togglfocus_list_milestones to read one milestone. Needs workspace_id. togglfocus_get_user_settings returns current_workspace_id.
Inputs
milestone_idintegerrequired- Numeric ID of the milestone. Find it with togglfocus_list_milestones. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_get_projectGet one project by id.Read-onlyGet Project
Get one project by id. Returns the project: id, name, client_id, color, billable, private, dates, estimated_mins, completion_mode and permissions. Use after togglfocus_list_projects to read a project in full. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
project_idintegerrequired- Numeric ID of the project. Find it with togglfocus_list_projects. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_get_statusGet one task status by id.Read-onlyGet Status
Get one task status by id. Returns the status: id, name, emoji, position and type. Use after togglfocus_list_statuses to read one status. Needs workspace_id. togglfocus_get_user_settings returns current_workspace_id.
Inputs
status_idintegerrequired- Numeric ID of the task status. Find it with togglfocus_list_statuses. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_get_tagGet one tag by id.Read-onlyGet Tag
Get one tag by id. Returns the tag: id, name, color and workspace_id. Use after togglfocus_list_tags to read one tag. Needs workspace_id. togglfocus_get_user_settings returns current_workspace_id.
Inputs
tag_idintegerrequired- Numeric ID of the tag. Find it with togglfocus_list_tags. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_get_taskGet one task by id.Read-onlyGet Task
Get one task by id. Returns the task: id, name, notes, state fields, priority, estimated_mins, start_date, end_date, project, assignees and tags. Use after togglfocus_list_tasks to read a task in full. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
task_idintegerrequired- Numeric ID of the task. Find it with togglfocus_list_tasks. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
include_assigneesboolean- Includes the unified user and team assignees. Example: true
togglfocus_get_time_accounting_reportGenerate the per-member time accounting report (logged, overtime, holiday and leave minutes) for a period.Read-onlyGet Time Accounting Report
Generate the per-member time accounting report (logged, overtime, holiday and leave minutes) for a period. Returns members (one row per member), periods (team totals per day, week or month) and period_unit. Use for hours per member across a period. This POST only reads data. Needs workspace_id. togglfocus_get_user_settings returns current_workspace_id.
Inputs
periodobjectrequired- Report period as a JSON object with either a preset or both from and to, for example {"from": "2026-09-01", "to": "2026-09-30"}. Required; a period that resolves to nothing is rejected. Accepts a JSON object. Example: {}
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_get_time_entryGet one time entry by id.Read-onlyGet Time Entry
Get one time entry by id. Returns the time entry: id, description, start, duration, planned_start, planned_duration, task_id, project_id, tag_ids, billable and type. Use after togglfocus_list_time_entries to read one entry. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
time_entry_idintegerrequired- Numeric ID of the time entry. Find it with togglfocus_list_time_entries. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_get_user_settingsGet the authenticated user's Toggl 2.0 settings, including their current workspace.Read-onlyGet User Settings
Get the authenticated user's Toggl 2.0 settings, including their current workspace. Returns the user's preference fields such as current_workspace_id, mcp_active_organization_id, mcp_active_workspace_id, date_format, duration_format and calendar options. Use this first to learn the workspace and organization ids the other tools need.
Inputs
This tool takes no inputs.
togglfocus_get_workspace_permissionsList the permissions the authenticated user holds in a workspace.Read-onlyGet Workspace Permissions
List the permissions the authenticated user holds in a workspace. Returns permissions, an array of permission names. Use to check whether the user may perform an action before calling a write tool. Needs workspace_id. togglfocus_get_user_settings returns current_workspace_id.
Inputs
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_list_clientsList clients in a workspace, optionally filtered by name.Read-onlyList Clients
List clients in a workspace, optionally filtered by name. Returns data (array of clients) plus page and per_page. Use to find a client id for togglfocus_create_project. Needs workspace_id. togglfocus_get_user_settings returns current_workspace_id.
Inputs
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
namestring- Filter clients by their names. Example: Website redesign
order_byarray- Order by. Accepts a JSON array. Example: ["value"]
pageinteger- Page number. Example: 1
per_pageinteger- Results per page. Example: 50
togglfocus_list_custom_fieldsList the custom fields defined in a workspace, optionally filtered by entity type.Read-onlyList Custom Fields
List the custom fields defined in a workspace, optionally filtered by entity type. Returns data (array of custom fields) plus page, per_page and total. Use to find custom field ids and options before setting custom_fields on a project or task. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
entity_typestring- Filter by entity type. Allowed values: project, task, user. Example: projectone of
projecttaskuser order_byarray- Order by. Accepts a JSON array. Example: ["value"]
pageinteger- Page number. Example: 1
per_pageinteger- Results per page. Example: 50
togglfocus_list_milestonesList milestones in a workspace, filtered by due date, project or team.Read-onlyList Milestones
List milestones in a workspace, filtered by due date, project or team. Returns data (array of milestones) plus page and per_page. Use to see upcoming deadlines across projects. Needs workspace_id. togglfocus_get_user_settings returns current_workspace_id.
Inputs
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
due_date_fromstring- Filter by due date from. Format: YYYY-MM-DD. Example: 2026-09-01
due_date_tostring- Filter by due date to. Format: YYYY-MM-DD. Example: 2026-09-01
order_byarray- Order by. Accepts a JSON array. Example: ["value"]
pageinteger- Page number. Example: 1
per_pageinteger- Results per page. Example: 50
project_idarray- Filter by project id. Accepts a JSON array. Example: [123456, 234567]
team_idarray- Filter by team id. Accepts a JSON array. Example: [123456, 234567]
togglfocus_list_my_goalsList the active and inactive goals owned by the authenticated user in a workspace.Read-onlyList My Goals
List the active and inactive goals owned by the authenticated user in a workspace. Returns an array of goals. Use to review the user's time tracking goals. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_list_organization_rolesList the roles defined in an organization.Read-onlyList Organization Roles
List the roles defined in an organization. Returns an array of role records. Use to find the role_id that togglfocus_add_project_members requires. Needs organization_id. togglfocus_get_user_settings returns mcp_active_organization_id when set.
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
togglfocus_list_organization_teamsList the teams (user groups) of a workspace within an organization.Read-onlyList Organization Teams
List the teams (user groups) of a workspace within an organization. Returns data (array of teams) plus page, per_page and total. Use to find team ids for task assignment or milestones. Use togglfocus_list_organization_users for individual users. Needs organization_id. togglfocus_get_user_settings returns mcp_active_organization_id when set.
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
active_members_onlyboolean- Filter by active members only. Example: true
filterstring- Filter by name. Example: design
group_idsarray- Filter by group IDs. Accepts a JSON array. Example: [123456, 234567]
organization_user_idinteger- Filter groups that contain this organization user. Example: 1234567
pageinteger- Page number. Example: 1
per_pageinteger- Results per page. Example: 50
querystring- Filter by team name and its members' names. Example: design
sort_dirstring- Direction to sort by (asc/desc). Example: value
togglfocus_list_organization_usersList the users in an organization, with filters for workspace, team, role, status and name or email.Read-onlyList Organization Users
List the users in an organization, with filters for workspace, team, role, status and name or email. Returns an array of organization user records. Use to find user ids for assignees, time entries and project members. Use togglfocus_list_organization_teams for teams. Needs organization_id. togglfocus_get_user_settings returns mcp_active_organization_id when set.
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
active_statusarray- Filter by active status. Accepts a JSON array. Example: ["value"]
filterstring- Filter by name or email. Example: design
groupsarray- Filter by group IDs. Accepts a JSON array. Example: [123456, 234567]
only_adminsboolean- Only return admins. Example: true
pageinteger- Page number. Example: 1
per_pageinteger- Results per page. Example: 50
rolesarray- Filter by roles. Accepts a JSON array. Example: [123456, 234567]
sort_dirstring- Sort direction (asc/desc). Example: value
tag_idsarray- Filter by tag IDs. Accepts a JSON array. Example: [123456, 234567]
user_account_idsarray- Filter by user account IDs. Accepts a JSON array. Example: [123456, 234567]
workspacesarray- Filter by workspace IDs. Accepts a JSON array. Example: [123456, 234567]
togglfocus_list_project_membersList the users and teams that are members of a project.Read-onlyList Project Members
List the users and teams that are members of a project. Returns project_id, user_ids and group_ids. Use to see who has access before calling togglfocus_add_project_members or togglfocus_remove_project_member. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
project_idintegerrequired- Numeric ID of the project. Find it with togglfocus_list_projects. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_list_projectsList projects in a workspace, with filters for name, client, tags, archived, completed and date range.Read-onlyList Projects
List projects in a workspace, with filters for name, client, tags, archived, completed and date range. Returns data (array of projects) plus page, per_page, total and task counts. Use to browse or find a project id. Use togglfocus_get_project for one project. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
archivedboolean- Filter by archived state (true = archived only, false = active only, omit = active only, empty = all projects). Example: true
assignee_user_idarray- Filter by assignee user IDs; pass empty value (?assignee_user_id=) to include projects without user assignees. Accepts a JSON array. Example: [123456, 234567]
client_idarray- Filter by client IDs. Accepts a JSON array. Example: [123456, 234567]
completedboolean- Filter by completion state (true = completed only, false = non-completed only, empty = all projects, omit = non-completed only, or all projects when archived=true). Example: true
creator_idarray- Filter by project creator id. Accepts a JSON array. Example: [123456, 234567]
end_datestring- Filter projects overlapping date range (end). Used with start_date to find projects where project.start_date <= end_date AND project.end_date >= start_date. Format: YYYY-MM-DD. Example: 2026-09-01
include_draftsboolean- Include draft projects in the response (default false hides them; requires view_draft_projects permission). Example: true
include_ratesboolean- Includes the projects' rate data. Example: true
member_onlyboolean- Only projects where the caller has an active project role, directly or through a team; normal visibility and lifecycle filters still apply. Example: true
namestring- Filter by project name or client name. Example: Website redesign
order_byarray- Order by. Also accepts cf_<id> / -cf_<id> to sort by any active workspace custom field. Multi_select and users CF types sort by their canonicalized (sorted) value array, so projects sharing the same set cluster together. Accepts a JSON array. Example: ["value"]
pageinteger- Page number. Example: 1
per_pageinteger- Results per page. Example: 50
pinnedboolean- Filter by only pinned tasks. Example: true
privateboolean- Filter by project privacy (true for private, false for public). Example: true
project_idarray- Filter by project IDs. Accepts a JSON array. Example: [123456, 234567]
start_datestring- Filter projects overlapping date range (start). Used with end_date to find projects where project.start_date <= end_date AND project.end_date >= start_date. Format: YYYY-MM-DD. Example: 2026-09-01
tag_idarray- Filter by tag IDs. Accepts a JSON array. Example: [123456, 234567]
user_idarray- Return only projects accessible by the given users (requires manage workspace users when inspecting another user). Incompatible with only_me. Accepts a JSON array. Example: [123456, 234567]
togglfocus_list_saved_viewsList the authenticated user's saved views in a workspace, optionally filtered by name or type.Read-onlyList Saved Views
List the authenticated user's saved views in a workspace, optionally filtered by name or type. Returns an array of saved views. Use to find a saved report or board view. Needs workspace_id. togglfocus_get_user_settings returns current_workspace_id.
Inputs
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
namestring- Filter saved views by name (partial match). Example: Website redesign
order_bystring- Order by field. Allowed values: name, -name, type, -type, created_at, -created_at, updated_at, -updated_at. Example: nameone of
name-nametype-typecreated_at-created_atupdated_at-updated_at typestring- Filter saved views by type. Allowed values: inbox, archive, board, timeline, project, project.tasks, project.board, project.timeline, projects, reports.summary, reports.detailed, reports.utilization, reports.workload, reports.profitability, reports.time-off, reports.time-accounting. Example: inboxone of
inboxarchiveboardtimelineprojectproject.tasksproject.boardproject.timelineprojectsreports.summaryreports.detailedreports.utilizationreports.workloadreports.profitabilityreports.time-offreports.time-accounting
togglfocus_list_statusesList task statuses in a workspace, optionally filtered by name or type.Read-onlyList Statuses
List task statuses in a workspace, optionally filtered by name or type. Returns data (array of statuses) plus page and per_page. Use to find status_id values for togglfocus_create_task and togglfocus_update_task. Needs workspace_id. togglfocus_get_user_settings returns current_workspace_id.
Inputs
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
namestring- Filter by status name. Example: Website redesign
order_byarray- Order by. Accepts a JSON array. Example: ["value"]
pageinteger- Page number. Example: 1
per_pageinteger- Results per page. Example: 50
typestring- Filter by status type. Allowed values: todo, in_progress, done, blocked. Example: todoone of
todoin_progressdoneblocked
togglfocus_list_subtasksList the child tasks of a task.Read-onlyList Subtasks
List the child tasks of a task. Returns data (array of child tasks) plus page and per_page. Use to walk a task hierarchy. Use togglfocus_list_tasks with parent_task_id to search across parents. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
task_idintegerrequired- Numeric ID of the task. Find it with togglfocus_list_tasks. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
archivedboolean- Filter in/out archived tasks. Example: true
assignee_user_idarray- Filter in tasks by assignee's user IDs. Accepts a JSON array. Example: [123456, 234567]
include_assigneesboolean- Includes the unified user and team assignees. Example: true
order_byarray- Order by. tag_ids and assignees order by the canonicalized (sorted) array, so tasks with the same set of tags or assignees cluster together regardless of storage order. Accepts a JSON array. Example: ["value"]
pageinteger- Page number. Example: 1
per_pageinteger- Results per page. Example: 50
sourcearray- Filter by sources. Accepts a JSON array. Example: ["value"]
status_idinteger- Filter children tasks by status ID. Example: 1234567
tag_idarray- Filter in tasks by tag IDs. Accepts a JSON array. Example: [123456, 234567]
team_idarray- Filter children tasks by team IDs. Accepts a JSON array. Example: [123456, 234567]
togglfocus_list_task_time_entriesList the time entries of one task.Read-onlyList Task Time Entries
List the time entries of one task. Returns data (array of time entries) plus page and per_page. Use to see time spent on a task. Use togglfocus_list_time_entries to list across tasks by date range. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
task_idintegerrequired- Numeric ID of the task. Find it with togglfocus_list_tasks. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
archivedboolean- Filter in/out archived TEs. Example: true
include_subtasksboolean- Also list entries of the subtasks summed into this task's totals (default false). Example: true
order_byarray- Order by. Accepts a JSON array. Example: ["value"]
pageinteger- Page number. Example: 1
per_pageinteger- Results per page. Example: 50
typestring- Time entry type. Allowed values: activity, break. Example: activityone of
activitybreak
togglfocus_list_tasksList tasks in a workspace, with filters for project, assignee, state, status, tags, dates and name.Read-onlyList Tasks
List tasks in a workspace, with filters for project, assignee, state, status, tags, dates and name. Returns data (array of tasks) plus page, per_page and total. Use to browse or find a task id. Use togglfocus_get_task for one task. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
archivedboolean- Filter in/out archived tasks. Example: true
assignee_team_idarray- Filter in tasks assigned to these teams, without expanding the teams to their members. Accepts a JSON array. Example: [123456, 234567]
assignee_user_idarray- Filter in tasks by assignee's user IDs. Accepts a JSON array. Example: [123456, 234567]
client_idarray- Filter by client ids. `?client_id=` will include tasks with no client. Accepts a JSON array. Example: [123456, 234567]
end_datestring- Filter tasks overlapping date range (end). Used with start_date to find tasks where task.start_date <= end_date AND task.end_date >= start_date. Format: YYYY-MM-DD. Example: 2026-09-01
estimated_mins_maxinteger- Filter by estimated mins max. Example: 1234567
estimated_mins_mininteger- Filter by estimated mins min. Example: 1234567
has_time_entriesboolean- Filter tasks if it has time entries. Example: true
include_assigneesboolean- Includes the unified user and team assignees. Example: true
namestring- Filter tasks by task name, project name, or client name. Example: Website redesign
order_byarray- Order by. tag_ids and assignees order by the canonicalized (sorted) array, so tasks with the same set of tags or assignees cluster together regardless of storage order. Also accepts pcf_<id> / -pcf_<id> to sort tasks by the named custom field on the task's parent project, and cf_<id> / -cf_<id> to sort by the task's own custom field. Multi_select and users CF types use the same canonicalized-array semantics. sub_tasks_grouped orders top-level tasks by name (direction applies) with each task's subtasks directly after it in position order; it cannot be combined with other order_by values. Accepts a JSON array. Example: ["value"]
pageinteger- Page number. Example: 1
parent_task_idarray- Filter by parent task ids. `?parent_task_id=` will include tasks with no parent. Accepts a JSON array. Example: [123456, 234567]
per_pageinteger- Results per page. Example: 50
pinnedboolean- Filter by pinned state. Example: true
priorityarray- Filter by priority. Accepts a JSON array. Example: ["value"]
privateboolean- Filter tasks by private state. Example: true
project_idarray- Filter by project ids. `?project_id=` will include tasks with no project. Accepts a JSON array. Example: [123456, 234567]
sourcearray- Filter by sources. Accepts a JSON array. Example: ["value"]
start_datestring- Filter tasks overlapping date range (start). Used with end_date to find tasks where task.start_date <= end_date AND task.end_date >= start_date. Format: YYYY-MM-DD. Example: 2026-09-01
statearray- Filter by state. Accepts a JSON array. Example: ["value"]
status_idarray- Filter in tasks by status' IDs. Accepts a JSON array. Example: [123456, 234567]
tag_idarray- Filter in tasks by tag IDs. Accepts a JSON array. Example: [123456, 234567]
togglfocus_list_time_entriesList the authenticated user's time entries in a date range, optionally filtered by task or project.Read-onlyList Time Entries
List the authenticated user's time entries in a date range, optionally filtered by task or project. Returns data (array of time entries) plus page and per_page. Use to review tracked or planned time. It returns only the caller's own entries; use togglfocus_get_time_accounting_report for other members. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
date_fromstringrequired- Range start, as an RFC 3339 timestamp, e.g. 2026-09-01T00:00:00Z (percent-encode a + offset). Example: 2026-09-01T09:00:00Z
date_tostringrequired- Range end, as an RFC 3339 timestamp, e.g. 2026-09-30T23:59:59Z. Example: 2026-09-01T09:00:00Z
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
archivedboolean- True for archived entries only, false for unarchived only; omit for both. Example: true
include_tasklessboolean- Include entries without a task (default false). Example: true
order_byarray- Sort columns, repeated or comma-separated; prefix - for descending. Ties are broken by id. Accepts a JSON array. Example: ["value"]
pageinteger- Page number, starting at 1 (default 1). Example: 1
per_pageinteger- Results per page (default 20, max 100). Example: 50
project_idinteger- Only entries of this project (the entry's own project, else its task's). Example: 1234567
status_idinteger- Only entries whose task has this status. Example: 1234567
task_idinteger- Only entries of this task. Example: 1234567
typestring- Time entry type. Allowed values: activity, break. Example: activityone of
activitybreak
togglfocus_list_timeoff_categoriesList the time off policies of an organization, archived ones included.Read-onlyList Time Off Policies
List the time off policies of an organization, archived ones included. Returns an array of time off policies. Use to find category_id values for togglfocus_list_timeoff_entries. Needs organization_id. togglfocus_get_user_settings returns mcp_active_organization_id when set.
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
togglfocus_list_timeoff_entriesList time off entries in any status, filtered by user, team, policy, status and date window.Read-onlyList Time Off Entries
List time off entries in any status, filtered by user, team, policy, status and date window. Returns data (array of time off entries) plus page, rows and total. Use to review requests and approved leave. Use togglfocus_list_timeoff_whos_out for a short who-is-away view. Needs organization_id. togglfocus_get_user_settings returns mcp_active_organization_id when set.
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
category_idinteger- Only this policy. Example: 1234567
fromstring- Window start (YYYY-MM-DD). Example: 2026-09-01
pageinteger- Page number, from 1. Example: 1
rowsinteger- Page size, 1 to 500 (default 50). Example: 50
statusarray- Only these statuses: pending, approved, rejected, canceled. Accepts a JSON array. Example: ["value"]
team_idinteger- Only this team; the caller must lead it or view the whole organization. Example: 1234567
tostring- Window end (YYYY-MM-DD). Example: 2026-09-01
user_idarray- Only these users. Accepts a JSON array. Example: [123456, 234567]
togglfocus_list_timeoff_whos_outList members with pending or approved time off in a window of at most 7 days.Read-onlyList Who's Out
List members with pending or approved time off in a window of at most 7 days. Returns an array of members with their overlapping time off. Use for a quick team availability check. Needs organization_id. togglfocus_get_user_settings returns mcp_active_organization_id when set.
Inputs
end_datestringrequired- Window end (YYYY-MM-DD). Example: 2026-09-01
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
start_datestringrequired- Window start (YYYY-MM-DD). Example: 2026-09-01
togglfocus_list_timesheetsList the timesheets visible to the caller whose period overlaps a date window of at most 90 days.Read-onlyList Timesheets
List the timesheets visible to the caller whose period overlaps a date window of at most 90 days. Returns an array of timesheets. Use to see submission and approval status for members. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
date_fromstringrequired- Inclusive start of the window; every period overlapping it is returned (YYYY-MM-DD). Example: 2026-09-01
date_tostringrequired- Inclusive end of the window, at most 90 days after date_from; every period overlapping it is returned (YYYY-MM-DD). Example: 2026-09-01
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
approver_user_account_idsarray- Filter to setups staffed by these approvers, comma-separated or repeated. Accepts a JSON array. Example: [123456, 234567]
current_layer_approver_user_account_idinteger- Filter to timesheets whose current approval layer is staffed by this approver (their turn to act); combine with statuses=submitted for a pending-review view. Example: 1234567
pageinteger- Page number. Example: 1
per_pageinteger- Page size. Example: 50
setup_idinteger- Filter to a single setup. Example: 1234567
statusesarray- Filter to statuses, comma-separated or repeated (not_submitted, submitted, approved, changes_requested). Accepts a JSON array. Example: ["value"]
team_idsarray- Filter to members of these teams, comma-separated or repeated. Accepts a JSON array. Example: [123456, 234567]
user_account_idsarray- Filter to members, comma-separated or repeated. Accepts a JSON array. Example: [123456, 234567]
togglfocus_searchSearch time entries by description, tasks by name and projects by name in one call.Read-onlySearch Workspace
Search time entries by description, tasks by name and projects by name in one call. Returns projects, tasks and time_entries, each an array of matches. Use when you have a keyword but no id. Use togglfocus_list_tasks or togglfocus_list_projects for filtered browsing. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
keywordstringrequired- Search term, at least 3 characters. Matches time entry descriptions, task names and project names. Example: design
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
assignee_user_idinteger- Scope tasks to this assignee. Example: 1234567
include_draftsboolean- Include draft projects and tasks in the search results. Example: true
only_meboolean- Scope the projects group to the projects the current user is assigned to, plus public projects when they hold view_public_projects (Track-shaped timer/picker scope; suppresses admin view_private_projects full-access). The time_entries and tasks groups are unaffected. Off by default. Example: true
per_groupinteger- Max results per group (1-10, default 5). Example: 50
project_idinteger- Scope time-entry and task suggestions to this project. Example: 1234567
task_idinteger- Scope time-entry (description) suggestions to this task. Example: 1234567
togglfocus_add_project_membersAdd users and teams to a project with a given role.WriteAdd Project Members
Add users and teams to a project with a given role. Returns no content on success (HTTP 204). Use to grant access to a project. Use togglfocus_remove_project_member to revoke it. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set). role_id comes from togglfocus_list_organization_roles.
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
project_idintegerrequired- Numeric ID of the project. Find it with togglfocus_list_projects. Example: 1234567
role_idintegerrequired- Numeric ID of the project role granted to the added users and teams. Find it with togglfocus_list_organization_roles. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
group_idsarray- Numeric IDs of teams (user groups) to add to the project. Find them with togglfocus_list_organization_teams. Accepts a JSON array. Example: [123456, 234567]
user_idsarray- Numeric IDs of users to add to the project. Find them with togglfocus_list_organization_users. Accepts a JSON array. Example: [123456, 234567]
togglfocus_archive_projectArchive a project by id.WriteArchive Project
Archive a project by id. Returns no content on success (HTTP 204). Use to hide a finished project. Use togglfocus_unarchive_project to bring it back. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
project_idintegerrequired- Numeric ID of the project. Find it with togglfocus_list_projects. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_archive_tagArchive a tag by id.WriteArchive Tag
Archive a tag by id. Returns no content on success (HTTP 204). Use to retire a tag without deleting it. Use togglfocus_unarchive_tag to undo. Needs workspace_id. togglfocus_get_user_settings returns current_workspace_id.
Inputs
tag_idintegerrequired- Numeric ID of the tag. Find it with togglfocus_list_tags. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_archive_taskArchive a task and its time entries.WriteArchive Task
Archive a task and its time entries. Returns no content on success (HTTP 204). Use to hide a finished task. Use togglfocus_unarchive_task to bring it back. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
task_idintegerrequired- Numeric ID of the task. Find it with togglfocus_list_tasks. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_create_clientCreate a client in a workspace.WriteCreate Client
Create a client in a workspace. Returns the created client with its id. Use to add a client before attaching projects to it. Needs workspace_id. togglfocus_get_user_settings returns current_workspace_id.
Inputs
namestringrequired- Name of the client. Example: Website redesign
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
currencystring- Currency is the client's optional default display currency (ISO 4217). Omitted or null means the client falls back to the workspace currency. On update (PUT) it is set directly, so send it to set/keep it or null to clear. Example: USD
togglfocus_create_milestoneCreate a milestone with a due date, optionally linked to projects and teams.WriteCreate Milestone
Create a milestone with a due date, optionally linked to projects and teams. Returns the created milestone with its id. Use to mark a deadline for one or more projects. Needs workspace_id. togglfocus_get_user_settings returns current_workspace_id.
Inputs
colorstringrequired- Milestone color as a hex code, for example #06aaf5. Example: #06aaf5
due_datestringrequired- Milestone due date, formatted YYYY-MM-DD. Example: 2026-09-01
namestringrequired- Name of the milestone. Example: Website redesign
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
completed_atstring- Timestamp (RFC 3339) at which the milestone was completed. Leave empty if not complete. Example: 2026-09-01T09:00:00Z
project_idsarray- Numeric IDs of the projects the milestone applies to. Accepts a JSON array. Example: [123456, 234567]
team_idsarray- Numeric IDs of the teams the milestone applies to. Accepts a JSON array. Example: [123456, 234567]
togglfocus_create_projectCreate a project in a workspace.WriteCreate Project
Create a project in a workspace. Returns the created project with its id. Use to add a project before creating tasks in it. Use togglfocus_update_project to change an existing one. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
namestringrequired- Name of the project. Example: Website redesign
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
auto_compute_estimatesboolean- When true, the project's estimate is computed automatically as the sum of its task estimates. Off by default. Example: true
billableboolean- Whether the time or work is billable. Send true or false; leave empty to keep the default inherited from the task or project. Example: true
client_idinteger- Numeric ID of the client the project belongs to. Find it with togglfocus_list_clients. Example: 1234567
colorstring- Project color as a hex code, for example #06aaf5. Example: #06aaf5
completion_modestring- How the project is marked complete: manual (a person marks it) or automatic (it completes when its work is done). Allowed values: manual, automatic. Example: manualone of
manualautomatic descriptionstring- Free-text description of the project. Example: Prepare Q4 planning
draftboolean- When true, the project is created or kept as a draft, which is hidden from listings unless drafts are requested. Example: true
end_datestring- Project end date, formatted YYYY-MM-DD. Example: 2026-09-01
estimate_sourcestring- Where the project estimate comes from: manual (estimated_mins on the project) or tasks (sum of task estimates). Allowed values: manual, tasks. Example: manualone of
manualtasks estimated_minsinteger- Project estimate in minutes, for example 4800. Used when estimate_source is manual. Example: 3600
parent_project_idinteger- Numeric ID of the parent project, to create a sub-project. Example: 1234567
pinnedboolean- When true, pins the item for the current user. Example: true
privateboolean- When true, only invited people can see the item. When omitted, it inherits the parent's visibility or the workspace default. Example: true
start_datestring- Project start date, formatted YYYY-MM-DD. Example: 2026-09-01
tag_idsarray- Numeric IDs of tags to apply to the project. Find them with togglfocus_list_tags. Accepts a JSON array. Example: [123456, 234567]
togglfocus_create_statusCreate a task status in a workspace.WriteCreate Status
Create a task status in a workspace. Returns the created status with its id and type. Use to add a column to the task workflow. Needs workspace_id. togglfocus_get_user_settings returns current_workspace_id.
Inputs
emojistringrequired- Emoji shown next to the status name, for example a single emoji character. Example: 🚀
namestringrequired- Name of the status. Example: Website redesign
positionintegerrequired- Zero-based position of the status in the workflow order. Example: 1
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_create_tagCreate a tag in a workspace.WriteCreate Tag
Create a tag in a workspace. Returns the created tag with its id. Use to add a tag before applying it through tag_ids. Needs workspace_id. togglfocus_get_user_settings returns current_workspace_id.
Inputs
colorstringrequired- Tag color as a hex code, for example #06aaf5. Required by the API. Example: #06aaf5
namestringrequired- Name of the tag. Example: Website redesign
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_create_taskCreate a task in a workspace, optionally inside a project and assigned to users or teams.WriteCreate Task
Create a task in a workspace, optionally inside a project and assigned to users or teams. Returns the created task with its id. Use to add work to plan. Use togglfocus_update_task to change an existing task. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
namestringrequired- Name of the task. Example: Website redesign
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
assignee_user_idsarray- Numeric IDs of the users the task is assigned to. Find them with togglfocus_list_organization_users. Accepts a JSON array. Example: [123456, 234567]
billableboolean- Whether the time or work is billable. Send true or false; leave empty to keep the default inherited from the task or project. Example: true
colorstring- Task color as a hex code, for example #06aaf5. Example: #06aaf5
descriptionstring- Free-text description of the task. Example: Prepare Q4 planning
end_datestring- Task end date (due date), formatted YYYY-MM-DD. Example: 2026-09-01
estimate_typestring- How estimated_mins is spread over the task's dates: total (spread across the whole date range) or daily (a per-day estimate). Allowed values: daily, total. Example: dailyone of
dailytotal estimated_minsinteger- Estimated effort in minutes. Use a whole number, for example 480 for eight hours. Example: 3600
notesstring- Free-text notes on the task. Example: Prepare Q4 planning
parent_task_idinteger- Numeric ID of the parent task, to create a subtask. Example: 1234567
pinnedboolean- When true, pins the item for the current user. Example: true
prioritystring- Task priority: none, low, medium or high. Allowed values: none, low, medium, high. Example: noneone of
nonelowmediumhigh privateboolean- When true, only invited people can see the item. When omitted, it inherits the parent's visibility or the workspace default. Example: true
project_idinteger- Numeric ID of the project the task belongs to. Find it with togglfocus_list_projects. Example: 1234567
start_datestring- Task start date, formatted YYYY-MM-DD. Example: 2026-09-01
status_idinteger- Numeric ID of the task's status. Find it with togglfocus_list_statuses. Example: 1234567
tag_idsarray- Numeric IDs of tags to apply to the task. Find them with togglfocus_list_tags. Accepts a JSON array. Example: [123456, 234567]
team_assignee_idsarray- Numeric IDs of the teams the task is assigned to. Find them with togglfocus_list_organization_teams. Accepts a JSON array. Example: [123456, 234567]
togglfocus_create_task_time_entryCreate a logged or planned time entry on a task.WriteCreate Task Time Entry
Create a logged or planned time entry on a task. Returns the created time entry with its id. Use to log or plan time against a known task. Use togglfocus_create_time_entry for time without a task. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
task_idintegerrequired- Numeric ID of the task. Find it with togglfocus_list_tasks. Example: 1234567
typestringrequired- Kind of entry: activity (work) or break. Allowed values: activity, break. Example: activityone of
activitybreak workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
billableboolean- Whether the time or work is billable. Send true or false; leave empty to keep the default inherited from the task or project. Example: true
descriptionstring- What the time was spent on. Example: Prepare Q4 planning
durationinteger- Tracked length in seconds, for logged time. For example 3600 for one hour. Example: 3600
planned_atstring- Timestamp (RFC 3339) of the planned slot, for planned time. Leave empty for logged time. Example: 2026-09-01T09:00:00Z
planned_durationinteger- Planned length in seconds, for planned time. For example 3600 for one hour. Example: 3600
planned_startstring- Start of the planned slot (RFC 3339), for time planned on the calendar. Example: 2026-09-01T09:00:00Z
project_idinteger- Numeric ID of the project, overriding the task's project. Find it with togglfocus_list_projects. Example: 1234567
startstring- Start of the tracked time (RFC 3339), for logged time. Leave empty for planned-only entries. Example: 2026-09-01T09:00:00Z
tag_idsarray- Numeric IDs of tags to apply to the entry. Find them with togglfocus_list_tags. Accepts a JSON array. Example: [123456, 234567]
tracked_atstring- Timestamp (RFC 3339) the time was tracked at. Usually left empty so the server sets it. Example: 2026-09-01T09:00:00Z
user_idinteger- Numeric ID of the user the entry is for. Omit to use the authenticated user; other users need the manage_time_entries permission. Example: 1234567
togglfocus_create_time_entryCreate a time entry that is not linked to a task, either logged (start and duration) or planned.WriteCreate Time Entry
Create a time entry that is not linked to a task, either logged (start and duration) or planned. Returns the created time entry with its id. Use for time without a task. Use togglfocus_create_task_time_entry to log time on a task, or togglfocus_start_tracking for a live timer. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
typestringrequired- Kind of entry: activity (work) or break. Allowed values: activity, break. Example: activityone of
activitybreak workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
billableboolean- Whether the time or work is billable. Send true or false; leave empty to keep the default inherited from the task or project. Example: true
descriptionstring- What the time was spent on. Example: Prepare Q4 planning
durationinteger- Tracked length in seconds, for logged time. For example 3600 for one hour. Example: 3600
planned_atstring- Timestamp (RFC 3339) of the planned slot, for planned time. Leave empty for logged time. Example: 2026-09-01T09:00:00Z
planned_durationinteger- Planned length in seconds, for planned time. For example 3600 for one hour. Example: 3600
planned_startstring- Start of the planned slot (RFC 3339), for time planned on the calendar. Example: 2026-09-01T09:00:00Z
project_idinteger- Numeric ID of the project, overriding the task's project. Find it with togglfocus_list_projects. Example: 1234567
startstring- Start of the tracked time (RFC 3339), for logged time. Leave empty for planned-only entries. Example: 2026-09-01T09:00:00Z
tag_idsarray- Numeric IDs of tags to apply to the entry. Find them with togglfocus_list_tags. Accepts a JSON array. Example: [123456, 234567]
tracked_atstring- Timestamp (RFC 3339) the time was tracked at. Usually left empty so the server sets it. Example: 2026-09-01T09:00:00Z
user_idinteger- Numeric ID of the user the entry is for. Omit to use the authenticated user; other users need the manage_time_entries permission. Example: 1234567
togglfocus_log_planned_time_entryLog a planned time entry by copying its planned start and duration to the logged side.WriteLog Planned Time Entry
Log a planned time entry by copying its planned start and duration to the logged side. Returns the updated time entry. Use to confirm planned time as done. It fails with 409 if the entry is already logged. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
time_entry_idintegerrequired- Numeric ID of the time entry. Find it with togglfocus_list_time_entries. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_restore_clientRestore a deleted client by id.WriteRestore Client
Restore a deleted client by id. Returns no content on success (HTTP 204). Use to undo togglfocus_delete_client. Needs workspace_id. togglfocus_get_user_settings returns current_workspace_id.
Inputs
client_idintegerrequired- Numeric ID of the client. Find it with togglfocus_list_clients. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_start_trackingStart a live timer, optionally on a task or project; a running timer is stopped first.WriteStart Tracking
Start a live timer, optionally on a task or project; a running timer is stopped first. Returns the new running time entry. Use for a live timer on a known task or project. Use togglfocus_start_tracking_from_description when you only have a name. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
typestringrequired- Kind of entry: activity (work) or break. Allowed values: activity, break. Example: activityone of
activitybreak workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
billableboolean- Whether the time or work is billable. Send true or false; leave empty to keep the default inherited from the task or project. Example: true
descriptionstring- What the timer is tracking. Example: Prepare Q4 planning
project_idinteger- Numeric ID of the project to track against. Find it with togglfocus_list_projects. Example: 1234567
startstring- Start time of the timer (RFC 3339). Leave empty to start now. Example: 2026-09-01T09:00:00Z
tag_idsarray- Numeric IDs of tags to apply to the entry. Find them with togglfocus_list_tags. Accepts a JSON array. Example: [123456, 234567]
task_idinteger- Numeric ID of the task to track against. Find it with togglfocus_list_tasks. Example: 1234567
togglfocus_start_tracking_from_descriptionStart a timer, or log a completed entry, by resolving or creating a task from a name, project name and tags.WriteStart Tracking From Description
Start a timer, or log a completed entry, by resolving or creating a task from a name, project name and tags. Returns time_entry, task, match_reason, resolution_strategy and flags showing whether the task, project or tags were created. Use when you have a task name but no task id. Use togglfocus_start_tracking when you have ids. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
extension_sourcestringrequired- Label for the client or integration starting the timer, for example 'scalekit-agentkit'. Required by the API. Example: scalekit-agentkit
namestringrequired- Task name used to find or create the task to track against. Example: Website redesign
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
typestringrequired- Kind of entry: activity (work) or break. Allowed values: activity, break. Example: activityone of
activitybreak workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
billableboolean- Whether the time or work is billable. Send true or false; leave empty to keep the default inherited from the task or project. Example: true
create_project_if_not_foundboolean- When true and no project matches project_name, a new project with that name is created. Defaults to false. Example: true
create_tags_if_not_foundboolean- When true, any name in tag_names that does not exist yet is created as a tag. Defaults to false. Example: true
create_task_if_not_foundboolean- When true and no task matches name, a new task is created. Defaults to false. Example: true
descriptionstring- What the timer is tracking. Example: Prepare Q4 planning
durationinteger- Length in seconds. When set, a completed entry is logged instead of a running timer, and start is then required. Example: 3600
project_namestring- Name of the project to attach the task to. Matched by name, and created only if create_project_if_not_found is true. Example: Website redesign
resolution_strategystring- How an existing task is matched: uri, name, name_project or name_project_tags. When omitted, the server chooses. Allowed values: uri, name, name_project, name_project_tags. Example: urione of
urinamename_projectname_project_tags startstring- Start time of the timer (RFC 3339). Leave empty to start now. Example: 2026-09-01T09:00:00Z
tag_namesarray- Tag names to apply. Missing tags are created only if create_tags_if_not_found is true. Accepts a JSON array. Example: ["design", "urgent"]
togglfocus_stop_trackingStop the running timer at a given end time.WriteStop Tracking
Stop the running timer at a given end time. Returns the stopped time entry with its final duration. Use after togglfocus_get_current_time_entry confirms a timer is running. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
endstringrequired- End time (RFC 3339) at which the running timer stops, for example the current time. Example: 2026-09-01T09:00:00Z
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_unarchive_projectUnarchive a previously archived project.WriteUnarchive Project
Unarchive a previously archived project. Returns no content on success (HTTP 204). Use to restore a project hidden by togglfocus_archive_project. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
project_idintegerrequired- Numeric ID of the project. Find it with togglfocus_list_projects. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_unarchive_tagUnarchive a tag by id.WriteUnarchive Tag
Unarchive a tag by id. Returns no content on success (HTTP 204). Use to undo togglfocus_archive_tag. Needs workspace_id. togglfocus_get_user_settings returns current_workspace_id.
Inputs
tag_idintegerrequired- Numeric ID of the tag. Find it with togglfocus_list_tags. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_unarchive_taskUnarchive a previously archived task and its time entries.WriteUnarchive Task
Unarchive a previously archived task and its time entries. Returns no content on success (HTTP 204). Use to restore a task hidden by togglfocus_archive_task. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
task_idintegerrequired- Numeric ID of the task. Find it with togglfocus_list_tasks. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_update_clientUpdate a client's name and currency.WriteUpdate Client
Update a client's name and currency. Returns no content on success (HTTP 204). Use to rename a client. name is required on every update. Needs workspace_id. togglfocus_get_user_settings returns current_workspace_id.
- Idempotent
Inputs
client_idintegerrequired- Numeric ID of the client. Find it with togglfocus_list_clients. Example: 1234567
namestringrequired- Name of the client. Example: Website redesign
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
currencystring- Currency is the client's optional default display currency (ISO 4217). Omitted or null means the client falls back to the workspace currency. On update (PUT) it is set directly, so send it to set/keep it or null to clear. Example: USD
togglfocus_update_milestoneUpdate fields of a milestone; only the fields you send change.WriteUpdate Milestone
Update fields of a milestone; only the fields you send change. Returns no content on success (HTTP 204). Use to move a due date or mark a milestone complete with completed_at. Needs workspace_id. togglfocus_get_user_settings returns current_workspace_id.
Inputs
milestone_idintegerrequired- Numeric ID of the milestone. Find it with togglfocus_list_milestones. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
colorstring- Milestone color as a hex code, for example #06aaf5. Example: #06aaf5
completed_atstring- Timestamp (RFC 3339) at which the milestone was completed. Leave empty if not complete. Example: 2026-09-01T09:00:00Z
due_datestring- Milestone due date, formatted YYYY-MM-DD. Example: 2026-09-01
namestring- Name of the milestone. Example: Website redesign
project_idsarray- Numeric IDs of the projects the milestone applies to. Accepts a JSON array. Example: [123456, 234567]
team_idsarray- Numeric IDs of the teams the milestone applies to. Accepts a JSON array. Example: [123456, 234567]
togglfocus_update_projectUpdate fields of an existing project; only the fields you send change.WriteUpdate Project
Update fields of an existing project; only the fields you send change. Returns no content on success (HTTP 204). Use to rename, recolor, reschedule or re-assign a project. Use togglfocus_archive_project to archive it. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
project_idintegerrequired- Numeric ID of the project. Find it with togglfocus_list_projects. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
auto_compute_estimatesboolean- When true, the project's estimate is computed automatically as the sum of its task estimates. Off by default. Example: true
billableboolean- Whether the time or work is billable. Send true or false; leave empty to keep the default inherited from the task or project. Example: true
client_idinteger- Numeric ID of the client the project belongs to. Find it with togglfocus_list_clients. Example: 1234567
colorstring- Project color as a hex code, for example #06aaf5. Example: #06aaf5
completion_modestring- How the project is marked complete: manual (a person marks it) or automatic (it completes when its work is done). Allowed values: manual, automatic. Example: manualone of
manualautomatic descriptionstring- Free-text description of the project. Example: Prepare Q4 planning
draftboolean- When true, the project is created or kept as a draft, which is hidden from listings unless drafts are requested. Example: true
end_datestring- Project end date, formatted YYYY-MM-DD. Example: 2026-09-01
estimate_sourcestring- Where the project estimate comes from: manual (estimated_mins on the project) or tasks (sum of task estimates). Allowed values: manual, tasks. Example: manualone of
manualtasks estimated_minsinteger- Project estimate in minutes, for example 4800. Used when estimate_source is manual. Example: 3600
namestring- Name of the project. Example: Website redesign
parent_project_idinteger- Numeric ID of the parent project, to create a sub-project. Example: 1234567
pinnedboolean- When true, pins the item for the current user. Example: true
privateboolean- When true, only invited people can see the item. When omitted, it inherits the parent's visibility or the workspace default. Example: true
start_datestring- Project start date, formatted YYYY-MM-DD. Example: 2026-09-01
tag_idsarray- Numeric IDs of tags to apply to the project. Find them with togglfocus_list_tags. Accepts a JSON array. Example: [123456, 234567]
togglfocus_update_statusUpdate a task status's name, emoji and position.WriteUpdate Status
Update a task status's name, emoji and position. Returns the updated status. Use to rename or reorder a status. name, emoji and position are all required. Needs workspace_id. togglfocus_get_user_settings returns current_workspace_id.
- Idempotent
Inputs
emojistringrequired- Emoji shown next to the status name, for example a single emoji character. Example: 🚀
namestringrequired- Name of the status. Example: Website redesign
positionintegerrequired- Zero-based position of the status in the workflow order. Example: 1
status_idintegerrequired- Numeric ID of the task status. Find it with togglfocus_list_statuses. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_update_tagUpdate a tag's name and color.WriteUpdate Tag
Update a tag's name and color. Returns the updated tag. Use to rename or recolor a tag. name and color are both required. Needs workspace_id. togglfocus_get_user_settings returns current_workspace_id.
- Idempotent
Inputs
colorstringrequired- Tag color as a hex code, for example #06aaf5. Required by the API. Example: #06aaf5
namestringrequired- Name of the tag. Example: Website redesign
tag_idintegerrequired- Numeric ID of the tag. Find it with togglfocus_list_tags. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_update_taskUpdate fields of an existing task; only the fields you send change.WriteUpdate Task
Update fields of an existing task; only the fields you send change. Returns no content on success (HTTP 204). Use to rename, reschedule, re-assign, re-prioritize or change the status of a task. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
task_idintegerrequired- Numeric ID of the task. Find it with togglfocus_list_tasks. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
assignee_user_idsarray- Numeric IDs of the users the task is assigned to. Find them with togglfocus_list_organization_users. Accepts a JSON array. Example: [123456, 234567]
billableboolean- Whether the time or work is billable. Send true or false; leave empty to keep the default inherited from the task or project. Example: true
colorstring- Task color as a hex code, for example #06aaf5. Example: #06aaf5
descriptionstring- Free-text description of the task. Example: Prepare Q4 planning
end_datestring- Task end date (due date), formatted YYYY-MM-DD. Example: 2026-09-01
estimate_typestring- How estimated_mins is spread over the task's dates: total (spread across the whole date range) or daily (a per-day estimate). Allowed values: daily, total. Example: dailyone of
dailytotal estimated_minsinteger- Estimated effort in minutes. Use a whole number, for example 480 for eight hours. Example: 3600
namestring- Name of the task. Example: Website redesign
notesstring- Free-text notes on the task. Example: Prepare Q4 planning
parent_task_idinteger- Numeric ID of the parent task, to create a subtask. Example: 1234567
pinnedboolean- When true, pins the item for the current user. Example: true
prioritystring- Task priority: none, low, medium or high. Allowed values: none, low, medium, high. Example: noneone of
nonelowmediumhigh privateboolean- When true, only invited people can see the item. When omitted, it inherits the parent's visibility or the workspace default. Example: true
project_idinteger- Numeric ID of the project the task belongs to. Find it with togglfocus_list_projects. Example: 1234567
start_datestring- Task start date, formatted YYYY-MM-DD. Example: 2026-09-01
status_idinteger- Numeric ID of the task's status. Find it with togglfocus_list_statuses. Example: 1234567
tag_idsarray- Numeric IDs of tags to apply to the task. Find them with togglfocus_list_tags. Accepts a JSON array. Example: [123456, 234567]
team_assignee_idsarray- Numeric IDs of the teams the task is assigned to. Find them with togglfocus_list_organization_teams. Accepts a JSON array. Example: [123456, 234567]
togglfocus_update_time_entryUpdate fields of an existing time entry; only the fields you send change.WriteUpdate Time Entry
Update fields of an existing time entry; only the fields you send change. Returns no content on success (HTTP 204). Use to correct a description, duration, project, task or tags. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
time_entry_idintegerrequired- Numeric ID of the time entry. Find it with togglfocus_list_time_entries. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
billableboolean- Whether the time or work is billable. Send true or false; leave empty to keep the default inherited from the task or project. Example: true
descriptionstring- What the time was spent on. Example: Prepare Q4 planning
durationinteger- Tracked length in seconds, for logged time. For example 3600 for one hour. Example: 3600
planned_atstring- Timestamp (RFC 3339) of the planned slot, for planned time. Leave empty for logged time. Example: 2026-09-01T09:00:00Z
planned_durationinteger- Planned length in seconds, for planned time. For example 3600 for one hour. Example: 3600
planned_startstring- Start of the planned slot (RFC 3339), for time planned on the calendar. Example: 2026-09-01T09:00:00Z
project_idinteger- Numeric ID of the project, overriding the task's project. Find it with togglfocus_list_projects. Example: 1234567
startstring- Start of the tracked time (RFC 3339), for logged time. Leave empty for planned-only entries. Example: 2026-09-01T09:00:00Z
tag_idsarray- Numeric IDs of tags to apply to the entry. Find them with togglfocus_list_tags. Accepts a JSON array. Example: [123456, 234567]
task_idinteger- Numeric ID of the task the entry belongs to. Example: 1234567
tracked_atstring- Timestamp (RFC 3339) the time was tracked at. Usually left empty so the server sets it. Example: 2026-09-01T09:00:00Z
typestring- Kind of entry: activity (work) or break. Allowed values: activity, break. Example: activityone of
activitybreak
togglfocus_delete_clientDelete a client by id.DestructiveDelete Client
Delete a client by id. Returns no content on success (HTTP 204). Use togglfocus_restore_client to undo a deletion. Needs workspace_id. togglfocus_get_user_settings returns current_workspace_id.
- Idempotent
Inputs
client_idintegerrequired- Numeric ID of the client. Find it with togglfocus_list_clients. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_delete_milestoneDelete a milestone by id.DestructiveDelete Milestone
Delete a milestone by id. Returns no content on success (HTTP 204). Use when a milestone is no longer relevant. Needs workspace_id. togglfocus_get_user_settings returns current_workspace_id.
- Idempotent
Inputs
milestone_idintegerrequired- Numeric ID of the milestone. Find it with togglfocus_list_milestones. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_delete_projectDelete a project by id.DestructiveDelete Project
Delete a project by id. Returns no content on success (HTTP 204). Use togglfocus_archive_project instead when the project may be needed again. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
- Idempotent
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
project_idintegerrequired- Numeric ID of the project. Find it with togglfocus_list_projects. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_delete_statusDelete a task status by id.DestructiveDelete Status
Delete a task status by id. Returns no content on success (HTTP 204). Use when a status is no longer needed in the task workflow. Needs workspace_id. togglfocus_get_user_settings returns current_workspace_id.
- Idempotent
Inputs
status_idintegerrequired- Numeric ID of the task status. Find it with togglfocus_list_statuses. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_delete_tagDelete a tag by id.DestructiveDelete Tag
Delete a tag by id. Returns no content on success (HTTP 204). Use togglfocus_archive_tag instead to keep history. Needs workspace_id. togglfocus_get_user_settings returns current_workspace_id.
- Idempotent
Inputs
tag_idintegerrequired- Numeric ID of the tag. Find it with togglfocus_list_tags. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_delete_taskDelete a task by id.DestructiveDelete Task
Delete a task by id. Returns no content on success (HTTP 204). Use togglfocus_archive_task instead when the task may be needed again. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
- Idempotent
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
task_idintegerrequired- Numeric ID of the task. Find it with togglfocus_list_tasks. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_delete_time_entrySoft-delete a time entry by id.DestructiveDelete Time Entry
Soft-delete a time entry by id. Returns no content on success (HTTP 204). Use to remove a wrong or duplicate entry. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
- Idempotent
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
time_entry_idintegerrequired- Numeric ID of the time entry. Find it with togglfocus_list_time_entries. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
togglfocus_remove_project_memberRemove one user or one team from a project.DestructiveRemove Project Member
Remove one user or one team from a project. Returns no content on success (HTTP 204). Use to revoke project access. Pass user_id or group_id, not both. Needs organization_id and workspace_id. togglfocus_get_user_settings returns current_workspace_id (and mcp_active_organization_id when set).
- Idempotent
Inputs
organization_idintegerrequired- Numeric ID of the Toggl 2.0 organization that owns the workspace. Example: 1234567
project_idintegerrequired- Numeric ID of the project. Find it with togglfocus_list_projects. Example: 1234567
workspace_idintegerrequired- Numeric ID of the Toggl 2.0 workspace to operate in. Example: 1234567
group_idinteger- Numeric ID of the team (user group) to remove from the project. Send either group_id or user_id. Example: 1234567
user_idinteger- Numeric ID of the user to remove from the project. Send either user_id or group_id. Example: 1234567
No tools match.