> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to Toggl Track

The Toggl Track connector lets your AI agent work with Toggl Track. Scalekit handles authentication for every call, so your agent never handles credentials. It comes with 44 tools.

**Authentication:** API Token
**Categories:** Productivity, Project Management
**Tools:** 44: 23 read, 15 write, 6 destructive
**Users sign in with:** API key
**Built by:** Scalekit connector
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=TOGGL)

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the Toggl Track connection

   In **AgentKit > Connections**, create a Toggl Track connection. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'toggl_get_client',
  toolInput: {
    client_id: 64123456,
    workspace_id: 1234567,
  },
  connector: 'toggl',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="toggl_get_client",
    tool_input={
        "client_id": 64123456,
        "workspace_id": 1234567,
    },
    connection_name="toggl",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `toggl_get_client`

Get Client · Read-only

Get one client in a Toggl Track workspace by ID.
Returns the client id, name, notes, archived flag, external_reference, and workspace id (wid).
Use this for a known client. Use list_clients to find client IDs.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `client_id` (`integer`, required): Numeric ID of the client. Get it from the list clients tool. Example: 64123456.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.

Example input: `{"client_id":64123456,"workspace_id":1234567}`

### `toggl_get_current_time_entry`

Get Running Time Entry · Read-only

Get the connected user's currently running time entry.
Returns the running time entry with id, workspace_id, project_id, description, start, and a negative duration; returns an empty result when no timer is running.
Use this before stop_time_entry to find the running entry's id. Use get_time_entry for a specific entry by ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `toggl_get_current_user`

Get Current User · Read-only

Get the Toggl Track profile of the user who owns the connected API token.
Returns the user id, email, full name, time zone, beginning of week, and default_workspace_id; with related data on, also returns their clients, projects, tags, tasks, time entries, and workspaces.
Use this to find the default workspace or confirm whose account is connected. Use list_workspaces for every workspace the user belongs to.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `with_related_data` (`boolean`, optional): Set to true to also return the user's clients, projects, tasks, tags, workspaces and time entries in one response. Example: true.

Example input: `{}`

### `toggl_get_detailed_report`

Get Detailed Report · Read-only

Run a Toggl Track detailed report: individual time entries for a workspace in a date range, filtered by users, projects, clients, tags, tasks, or description.
Returns the report rows (time entries for the detailed report, grouped when grouped is on); the reference documents no row schema, and results are paged 50 rows at a time.
Use this for other users' time or long date ranges. Use get_summary_report for totals and list_time_entries for the connected user's own recent entries.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `start_date` (`string`, required): First day of the report, YYYY-MM-DD (inclusive, evaluated in each user's own time zone). Example: 2026-10-01.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.
- `billable` (`boolean`, optional): Only include billable (true) or non-billable (false) time (paid-plan feature). Example: true.
- `client_ids` (`array`, optional): Only include time for these client IDs. Use [null] for time with no client. Example: [64123456].
- `description` (`string`, optional): Only include time entries whose description matches this text. Example: planning.
- `end_date` (`string`, optional): Last day of the report, YYYY-MM-DD (inclusive). Must be after start_date. Example: 2026-10-31.
- `enrich_response` (`boolean`, optional): Set to true to return as much detail per row as the export does. Toggl defaults to false. Example: true.
- `first_row_number` (`integer`, optional): Row number to start the page from, for pagination. Toggl returns the next value in the X-Next-Row-Number response header of the previous page. Leave empty for the first page. Example: 51.
- `grouped` (`boolean`, optional): Set to true to group similar time entries together. Toggl defaults to false. Example: true.
- `order_by` (`string`, optional): Sort field: date, user, duration, description or last_update. Toggl defaults to date. Example: duration. One of: `date`, `user`, `duration`, `description`, `last_update`.
- `order_dir` (`string`, optional): Sort direction: ASC or DESC. Example: DESC. One of: `ASC`, `DESC`.
- `page_size` (`integer`, optional): Rows per page. Toggl defaults to 50. Example: 50.
- `project_ids` (`array`, optional): Only include time on these project IDs. Use [null] for time with no project. Example: [203456789].
- `tag_ids` (`array`, optional): Only include time with these tag IDs. Use [null] for time with no tags. Example: [15234567].
- `task_ids` (`array`, optional): Only include time on these task IDs. Use [null] for time with no task. Example: [98765432].
- `user_ids` (`array`, optional): Only include time from these user IDs. Get them from the list workspace users tool. Example: [5123456].

Example input: `{"start_date":"<start_date>","workspace_id":1234567}`

### `toggl_get_organization`

Get Organization · Read-only

Get one Toggl Track organization by ID.
Returns the organization id, name, pricing plan name and id, admin and owner flags, user_count, max_workspaces, and trial info.
Use this for a known organization's plan and size. Use list_organizations to find organization IDs.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`integer`, required): Numeric ID of the organization. Get it from the list organizations tool, or organization_id on a workspace. Example: 7654321.

Example input: `{"organization_id":7654321}`

### `toggl_get_project`

Get Project · Read-only

Get one project in a Toggl Track workspace by ID.
Returns the project id, name, client_id, client_name, active and private flags, billable flag, color, dates, estimated and actual hours, rate, and currency.
Use this for a known project. Use list_projects to find project IDs and get_project_statistics for its first and last time entries.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `project_id` (`integer`, required): Numeric ID of the project. Get it from the list projects tool. Example: 203456789.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.

Example input: `{"project_id":203456789,"workspace_id":1234567}`

### `toggl_get_project_statistics`

Get Project Statistics · Read-only

Get the earliest and latest finished time entries tracked on a Toggl Track project.
Returns earliest_time_entry and latest_time_entry for the project; running entries are not counted.
Use this to see when work on a project started or last happened. Use get_summary_report for totals.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `project_id` (`integer`, required): Numeric ID of the project. Get it from the list projects tool. Example: 203456789.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.

Example input: `{"project_id":203456789,"workspace_id":1234567}`

### `toggl_get_summary_report`

Get Summary Report · Read-only

Run a Toggl Track summary report: tracked time aggregated into groups for a workspace and date range, with optional filters.
Returns the summary report groups with their tracked time; the reference documents no response schema.
Use this for totals by project, client or user. Use get_detailed_report for individual entries and get_weekly_report for a day-by-day week view.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `start_date` (`string`, required): First day of the report, YYYY-MM-DD (inclusive, evaluated in each user's own time zone). Example: 2026-10-01.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.
- `billable` (`boolean`, optional): Only include billable (true) or non-billable (false) time (paid-plan feature). Example: true.
- `client_ids` (`array`, optional): Only include time for these client IDs. Use [null] for time with no client. Example: [64123456].
- `description` (`string`, optional): Only include time entries whose description matches this text. Example: planning.
- `distinguish_rates` (`boolean`, optional): Set to true to split groups by hourly rate. Toggl defaults to false. Example: true.
- `end_date` (`string`, optional): Last day of the report, YYYY-MM-DD (inclusive). Must be after start_date. Example: 2026-10-31.
- `include_time_entry_ids` (`boolean`, optional): Set to true to include the time entry IDs behind each group. Toggl defaults to false. Example: true.
- `project_ids` (`array`, optional): Only include time on these project IDs. Use [null] for time with no project. Example: [203456789].
- `tag_ids` (`array`, optional): Only include time with these tag IDs. Use [null] for time with no tags. Example: [15234567].
- `task_ids` (`array`, optional): Only include time on these task IDs. Use [null] for time with no task. Example: [98765432].
- `user_ids` (`array`, optional): Only include time from these user IDs. Get them from the list workspace users tool. Example: [5123456].

Example input: `{"start_date":"<start_date>","workspace_id":1234567}`

### `toggl_get_task`

Get Task · Read-only

Get one task in a Toggl Track project by ID.
Returns the task id, name, project_id, active flag, estimated_seconds, tracked_seconds, and assigned user.
Use this for a known task. Use list_project_tasks to find task IDs.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `project_id` (`integer`, required): Numeric ID of the project. Get it from the list projects tool. Example: 203456789.
- `task_id` (`integer`, required): Numeric ID of the task. Get it from the list project tasks or list workspace tasks tool. Example: 98765432.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.

Example input: `{"project_id":203456789,"task_id":98765432,"workspace_id":1234567}`

### `toggl_get_time_entry`

Get Time Entry · Read-only

Get one time entry the connected user can access, by ID.
Returns the time entry with id, workspace_id, project_id, task_id, description, start, stop, duration, tags, tag_ids, and billable flag; with meta on, also project, client and task names.
Use this for a known entry. Use list_time_entries to browse entries by date.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `time_entry_id` (`integer`, required): Numeric ID of the time entry. Get it from the list time entries tool or the response of the create time entry tool. Example: 3456789012.
- `include_sharing` (`boolean`, optional): Set to true to include who each time entry is shared with. Example: true.
- `meta` (`boolean`, optional): Set to true to add related names to each time entry (project name and color, client name, task name, user name). Leave empty for the plain time entry fields. Example: true.

Example input: `{"time_entry_id":3456789012}`

### `toggl_get_weekly_report`

Get Weekly Report · Read-only

Run a Toggl Track weekly report: tracked time per day over 7-day periods, grouped by users and projects, for a workspace and date range.
Returns the weekly report rows with daily tracked time; the reference documents no response schema.
Use this for a day-by-day timesheet view. Use get_summary_report for totals over any range.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `start_date` (`string`, required): First day of the report, YYYY-MM-DD (inclusive, evaluated in each user's own time zone). Example: 2026-10-01.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.
- `billable` (`boolean`, optional): Only include billable (true) or non-billable (false) time (paid-plan feature). Example: true.
- `client_ids` (`array`, optional): Only include time for these client IDs. Use [null] for time with no client. Example: [64123456].
- `description` (`string`, optional): Only include time entries whose description matches this text. Example: planning.
- `end_date` (`string`, optional): Last day of the report, YYYY-MM-DD (inclusive). Must be after start_date. Example: 2026-10-31.
- `project_ids` (`array`, optional): Only include time on these project IDs. Use [null] for time with no project. Example: [203456789].
- `tag_ids` (`array`, optional): Only include time with these tag IDs. Use [null] for time with no tags. Example: [15234567].
- `task_ids` (`array`, optional): Only include time on these task IDs. Use [null] for time with no task. Example: [98765432].
- `user_ids` (`array`, optional): Only include time from these user IDs. Get them from the list workspace users tool. Example: [5123456].

Example input: `{"start_date":"<start_date>","workspace_id":1234567}`

### `toggl_get_workspace`

Get Workspace · Read-only

Get one Toggl Track workspace by ID.
Returns the workspace id, name, organization_id, plan flags, default currency and hourly rate, rounding settings, and admin-only permissions.
Use this for the settings of a known workspace. Use list_workspaces to find workspace IDs.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.

Example input: `{"workspace_id":1234567}`

### `toggl_list_clients`

List Clients · Read-only

List clients in a Toggl Track workspace, optionally filtered by status or name.
Returns an array of clients with id, name, notes, archived flag, external_reference, and workspace id (wid).
Use this to find client IDs. Use get_client for one client you already know.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.
- `name` (`string`, optional): Return clients whose name contains this text (case-insensitive). Example: acme.
- `status` (`string`, optional): Which clients to return: active, archived, or both. Toggl returns only active clients when empty. Example: both. One of: `active`, `archived`, `both`.

Example input: `{"workspace_id":1234567}`

### `toggl_list_organization_users`

List Organization Users · Read-only

List users in a Toggl Track organization, with filters for name or email, status, admins, groups and workspaces.
Returns an array of organization users with id, user_id, name, email, admin and owner flags, inactive flag, joined status, groups, and workspaces.
Use this for organization-wide membership. Use list_workspace_users for one workspace.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`integer`, required): Numeric ID of the organization. Get it from the list organizations tool, or organization_id on a workspace. Example: 7654321.
- `active_status` (`string`, optional): Comma-separated statuses to include: active, inactive, invited. All statuses when empty. Example: active,invited.
- `filter` (`string`, optional): Return users whose name or email contains this text. Example: jane.
- `groups` (`string`, optional): Comma-separated group IDs; returns only users in these groups. Example: 112233,112234.
- `only_admins` (`string`, optional): Set to true to return only admins. Example: true.
- `page` (`integer`, optional): Page number. Toggl defaults to 1. Example: 2.
- `per_page` (`integer`, optional): Users per page. Toggl defaults to 50. Example: 100.
- `sort_dir` (`string`, optional): Sort direction by name: asc or desc. Toggl defaults to asc. Example: desc. One of: `asc`, `desc`.
- `workspaces` (`string`, optional): Comma-separated workspace IDs; returns only users in these workspaces. Example: 1234567,1234568.

Example input: `{"organization_id":7654321}`

### `toggl_list_organizations`

List Organizations · Read-only

List the Toggl Track organizations the connected user belongs to.
Returns an array of organizations with id, name, pricing plan, admin and owner flags, user_count, and max_workspaces; empty when the user has none.
Use this to find an organization_id. Use get_organization for one organization.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `toggl_list_project_tasks`

List Project Tasks · Read-only

List the tasks in one Toggl Track project.
Returns an array of tasks with id, name, project_id, active flag, estimated_seconds, tracked_seconds, and assigned user.
Use this for one project's tasks. Use list_workspace_tasks to search tasks across the workspace.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `project_id` (`integer`, required): Numeric ID of the project. Get it from the list projects tool. Example: 203456789.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.
- `active` (`boolean`, optional): Set to true to return only open tasks. Leave empty or false for all tasks. Example: true.

Example input: `{"project_id":203456789,"workspace_id":1234567}`

### `toggl_list_project_users`

List Project Users · Read-only

List project memberships in a Toggl Track workspace, optionally for specific projects or one user.
Returns an array of project users with id, project_id, user_id, manager flag, rate, and labor cost.
Use this to see who is on which project and to find project user IDs. Use add_project_user to add a member.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.
- `project_ids` (`string`, optional): Comma-separated project IDs to filter by. Example: 203456789,203456790.
- `user_id` (`string`, optional): Only return memberships for this user ID. Example: 5123456.
- `with_group_members` (`boolean`, optional): Set to true to include members added through groups. Example: true.

Example input: `{"workspace_id":1234567}`

### `toggl_list_projects`

List Projects · Read-only

List projects in a Toggl Track workspace, optionally filtered by status, client, name or search text.
Returns an array of projects with id, name, client_id, client_name, active, is_private, billable, color, estimated and actual hours, and rate.
Use this to find project IDs or browse projects. Use get_project for one project you already know.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.
- `active` (`string`, optional): Filter by status: true for active projects, false for archived ones, both for all. Example: both. One of: `true`, `false`, `both`.
- `billable` (`boolean`, optional): Return only billable (true) or non-billable (false) projects. Example: true.
- `client_ids` (`string`, optional): Comma-separated client IDs to filter by. Example: 64123456,64123457.
- `name` (`string`, optional): Return projects whose name matches this value. Example: Website Redesign.
- `only_me` (`boolean`, optional): Set to true to return only projects the connected user is assigned to. Example: true.
- `only_templates` (`boolean`, optional): Set to true to return only project templates. Example: true.
- `page` (`integer`, optional): Page number to return, starting at 1. Example: 2.
- `per_page` (`integer`, optional): Projects per page, up to 200. Toggl defaults to 151. Example: 50.
- `project_ids` (`string`, optional): Comma-separated project IDs to return. Example: 203456789,203456790.
- `search` (`string`, optional): Return projects whose name contains this text. Example: website.
- `since` (`integer`, optional): Only return projects created, changed or deleted after this UNIX timestamp in seconds. Toggl rejects timestamps older than 3 months. Example: 1791936000.

Example input: `{"workspace_id":1234567}`

### `toggl_list_tags`

List Tags · Read-only

List tags in a Toggl Track workspace, optionally filtered by name.
Returns an array of tags with id, name, workspace_id, creator_id, and last-updated time.
Use this to find tag IDs for time entries and reports. Use create_tag to add one.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.
- `page` (`integer`, optional): Page number to return, starting at 1. Example: 2.
- `per_page` (`integer`, optional): Tags per page. Example: 50.
- `search` (`string`, optional): Return tags whose name contains this text. Example: meeting.

Example input: `{"workspace_id":1234567}`

### `toggl_list_time_entries`

List Time Entries · Read-only

List the connected user's own time entries, optionally limited to a date range or to entries changed since a timestamp.
Returns an array of time entries with id, workspace_id, project_id, task_id, description, start, stop, duration in seconds (negative while running), tags, and billable flag; with meta on, also project, client and task names.
Use this for the user's own recent or date-bounded entries (up to 1,000). Use get_detailed_report for other users' time or longer ranges, and get_current_time_entry for the running timer.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `before` (`string`, optional): Only return entries that start before this date, as YYYY-MM-DD or an RFC 3339 timestamp. Example: 2026-10-01.
- `end_date` (`string`, optional): Only return entries that start before this date, as YYYY-MM-DD or an RFC 3339 timestamp. A bare date means midnight, so use 2026-10-31T23:59:59Z to include that whole day. Example: 2026-10-31T23:59:59Z.
- `include_sharing` (`boolean`, optional): Set to true to include who each time entry is shared with. Example: true.
- `meta` (`boolean`, optional): Set to true to add related names to each time entry (project name and color, client name, task name, user name). Leave empty for the plain time entry fields. Example: true.
- `since` (`integer`, optional): Only return entries created, changed or deleted after this UNIX timestamp in seconds; deleted entries are included. Toggl rejects timestamps older than 3 months. Example: 1791936000.
- `start_date` (`string`, optional): Only return entries that start on or after this date, as YYYY-MM-DD or an RFC 3339 timestamp. Use together with end_date. Example: 2026-10-01.

Example input: `{}`

### `toggl_list_workspace_tasks`

List Workspace Tasks · Read-only

List or search tasks across all projects in a Toggl Track workspace, with paging and sorting.
Returns an object with data (an array of tasks with id, name, project_id, active flag, and estimates), page, per_page, sort_field, sort_order, and total_count.
Use this to search tasks workspace-wide. Use list_project_tasks for the tasks of one project.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.
- `active` (`string`, optional): Filter by status: true for open tasks, false for done tasks, both for all. Example: both. One of: `true`, `false`, `both`.
- `end_date` (`string`, optional): Latest boundary date, YYYY-MM-DD. Example: 2026-10-31.
- `page` (`integer`, optional): Page number to return. Toggl defaults to 1. Example: 2.
- `per_page` (`integer`, optional): Tasks per page. Toggl defaults to 50. Example: 100.
- `pid` (`integer`, optional): Only return tasks in this project ID. Example: 203456789.
- `search` (`string`, optional): Return tasks whose name contains this text. Example: homepage.
- `since` (`integer`, optional): Only return tasks created, changed or deleted after this UNIX timestamp in seconds. Toggl rejects timestamps older than 3 months. Example: 1791936000.
- `sort_field` (`string`, optional): Field to sort by: name or created_at. Toggl defaults to name. Example: created_at. One of: `name`, `created_at`.
- `sort_order` (`string`, optional): Sort direction: ASC or DESC. Toggl defaults to ASC. Example: DESC. One of: `ASC`, `DESC`.
- `start_date` (`string`, optional): Earliest boundary date, YYYY-MM-DD. Example: 2026-10-01.

Example input: `{"workspace_id":1234567}`

### `toggl_list_workspace_users`

List Workspace Users · Read-only

List the users in a Toggl Track workspace.
Returns an array of users with id, email, fullname, role, admin flag, and active and inactive flags.
Use this to find user IDs for reports, tasks and project membership. Use list_organization_users for organization-wide membership.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.
- `exclude_deleted` (`boolean`, optional): Set to true to leave out deleted users. Example: true.

Example input: `{"workspace_id":1234567}`

### `toggl_list_workspaces`

List Workspaces · Read-only

List the Toggl Track workspaces the connected user belongs to.
Returns an array of workspaces with id, name, organization_id, premium and admin flags, default currency and hourly rate, and workspace settings.
Use this to find a workspace_id for other tools. Use get_workspace for one workspace you already know.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `toggl_add_project_user`

Add Project User · Write

Add a workspace user to a project, optionally as manager or with a project rate.
Returns the new project user with its id, project_id, user_id, manager flag, rate, and labor cost.
Use this to give a user access to a private project. Use update_project_user to change an existing membership.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `project_id` (`integer`, required): Numeric ID of the project to add the user to. Get it from the list projects tool. Example: 203456789.
- `user_id` (`integer`, required): Numeric ID of the user to add. Get it from the list workspace users tool. Example: 5123456.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.
- `labor_cost` (`number`, optional): Labor cost per hour for this user on the project (paid-plan feature). Example: 40.
- `labor_cost_change_mode` (`string`, optional): Which time entries a new labor cost applies to: start-today, override-current or override-all. Example: start-today. One of: `start-today`, `override-current`, `override-all`.
- `manager` (`boolean`, optional): Whether the user manages the project. Example: true.
- `rate` (`number`, optional): Hourly rate for this user on the project (paid-plan feature). Example: 85.
- `rate_change_mode` (`string`, optional): Which time entries a new rate applies to: start-today, override-current or override-all. Example: start-today. One of: `start-today`, `override-current`, `override-all`.

Example input: `{"project_id":203456789,"user_id":5123456,"workspace_id":1234567}`

### `toggl_archive_client`

Archive Client · Write

Archive a client and its projects (paid-plan workspaces only).
Returns an array of the IDs of the projects archived along with the client.
Use this to hide a client without deleting it. Use restore_client to bring it back.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `client_id` (`integer`, required): Numeric ID of the client. Get it from the list clients tool. Example: 64123456.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.

Example input: `{"client_id":64123456,"workspace_id":1234567}`

### `toggl_create_client`

Create Client · Write

Create a client in a Toggl Track workspace.
Returns the created client with its id, name, notes, archived flag, and external_reference.
Use this to add a client before creating projects for it. Use update_client to change an existing one.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): Name of the client. Example: Acme Corp.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.
- `external_reference` (`string`, optional): Your own reference for the client, such as an ID from another system. Example: CRM-1042.
- `notes` (`string`, optional): Free-text notes about the client. Example: Primary contact is Jane Doe.

Example input: `{"name":"<name>","workspace_id":1234567}`

### `toggl_create_project`

Create Project · Write

Create a project in a Toggl Track workspace, optionally linked to a client.
Returns the created project with its id, name, client_id, active and private flags, color, and billing settings.
Use this to add a project. Use update_project to change an existing one.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): Name of the project. Must be unique within the workspace. Example: Website Redesign.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.
- `active` (`boolean`, optional): Whether the project is active. Set to false to archive it. Example: true.
- `billable` (`boolean`, optional): Whether time on the project is billable by default (paid-plan feature). Example: true.
- `client_id` (`integer`, optional): Numeric ID of the client the project belongs to. Get it from the list clients tool. Example: 64123456.
- `color` (`string`, optional): Project color as a hex code. Example: #0b83d9.
- `currency` (`string`, optional): Currency code for the project rate (paid-plan feature). Example: USD.
- `end_date` (`string`, optional): End date of the project timeframe, YYYY-MM-DD. Example: 2026-12-31.
- `estimated_hours` (`integer`, optional): Estimated hours for the project (paid-plan feature). Example: 120.
- `external_reference` (`string`, optional): Your own reference for the project, such as an ID from another system. Example: CRM-4821.
- `fixed_fee` (`number`, optional): Fixed fee for the project (paid-plan feature). Example: 5000.
- `is_private` (`boolean`, optional): Whether the project is private (visible only to its members). Example: true.
- `rate` (`number`, optional): Hourly rate for the project (paid-plan feature). Example: 95.5.
- `start_date` (`string`, optional): Start date of the project timeframe, YYYY-MM-DD. Example: 2026-10-01.

Example input: `{"name":"<name>","workspace_id":1234567}`

### `toggl_create_tag`

Create Tag · Write

Create a tag in a Toggl Track workspace.
Returns the created tag data (documented as an array of tags) with id, name, and workspace_id.
Use this to add a tag ahead of time. Use create_time_entry with tag names to create tags on the fly.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): Name of the tag. Must be unique in the workspace. Example: meeting.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.

Example input: `{"name":"<name>","workspace_id":1234567}`

### `toggl_create_task`

Create Task · Write

Create a task in a Toggl Track project (tasks are a paid-plan feature).
Returns the created task with its id, name, project_id, active flag, estimated_seconds, and assigned user.
Use this to add a task to a project. Use update_task to change or close an existing one.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): Name of the task. Example: Design homepage.
- `project_id` (`integer`, required): Numeric ID of the project. Get it from the list projects tool. Example: 203456789.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.
- `active` (`boolean`, optional): Whether the task is open. Set to false to mark it done. Example: false.
- `estimated_seconds` (`integer`, optional): Estimated effort in seconds. Example: 7200.
- `external_reference` (`string`, optional): Your own reference for the task, such as an issue key. Example: WEB-142.
- `user_id` (`integer`, optional): Numeric ID of the user to assign the task to. Get it from the list workspace users tool. Example: 5123456.

Example input: `{"name":"<name>","project_id":203456789,"workspace_id":1234567}`

### `toggl_create_time_entry`

Create Time Entry · Write

Create a time entry in a Toggl Track workspace, either as a finished entry (start plus duration or stop) or as a running timer (duration -1).
Returns the created time entry with its id, start, stop, duration, description, project_id, and tags.
Use this to log time or start a timer. Use update_time_entry to change an existing entry and stop_time_entry to stop a running one.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `duration` (`integer`, required): Duration in seconds. Use a positive number (for example 3600) for a finished entry, or -1 to start a running timer. If you also set stop, it must equal start plus duration. Example: 3600.
- `start` (`string`, required): Start time of the time entry in UTC, RFC 3339 format. Example: 2026-10-14T09:00:00Z.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.
- `billable` (`boolean`, optional): Whether the entry is billable (a paid-plan feature). Toggl defaults to false. Example: true.
- `created_with` (`string`, optional): Name of the application creating the entry. Toggl requires it on every new time entry; the tool sends "Scalekit AgentKit" unless you override it. Example: Scalekit AgentKit. Default: `Scalekit AgentKit`.
- `description` (`string`, optional): What the time was spent on. Example: Sprint planning meeting.
- `meta` (`boolean`, optional): Set to true to add related names to each time entry (project name and color, client name, task name, user name). Leave empty for the plain time entry fields. Example: true.
- `project_id` (`integer`, optional): Numeric ID of the project to assign the entry to. Get it from the list projects tool. Example: 203456789.
- `stop` (`string`, optional): Stop time in UTC, RFC 3339 format. Optional: Toggl derives it from start plus duration, so leave it empty for a running entry. Example: 2026-10-14T10:00:00Z.
- `tag_ids` (`array`, optional): Numeric IDs of existing tags to apply. Get them from the list tags tool. Example: [15234567].
- `tags` (`array`, optional): Tag names to apply. Tags that don't exist yet are created automatically. Example: ["meeting", "billable"].
- `task_id` (`integer`, optional): Numeric ID of a task within the project. Get it from the list project tasks tool. Example: 98765432.

Example input: `{"duration":3600,"start":"<start>","workspace_id":1234567}`

### `toggl_restore_client`

Restore Client · Write

Restore an archived client, along with all or selected projects.
Returns the restored client with its id, name, notes, and archived flag.
Use this to undo archive_client. Set restore_all_projects or list the projects to restore.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `client_id` (`integer`, required): Numeric ID of the client. Get it from the list clients tool. Example: 64123456.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.
- `projects` (`array`, optional): IDs of the specific projects to restore with the client. Example: [203456789].
- `restore_all_projects` (`boolean`, optional): Set to true to restore every project archived with the client. Example: true.

Example input: `{"client_id":64123456,"workspace_id":1234567}`

### `toggl_stop_time_entry`

Stop Time Entry · Write

Stop a running time entry at the current time.
Returns the stopped time entry with its final stop time and duration in seconds; fails with 409 if it is already stopped.
Use this to end a running timer. Use update_time_entry to set a specific stop time.
Requires the running entry's id from get_current_time_entry.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `time_entry_id` (`integer`, required): Numeric ID of the time entry. Get it from the list time entries tool or the response of the create time entry tool. Example: 3456789012.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.

Example input: `{"time_entry_id":3456789012,"workspace_id":1234567}`

### `toggl_update_client`

Update Client · Write

Update a client's name, notes, or external reference.
Returns the updated client with its id, name, notes, archived flag, and external_reference.
Use this to edit a client. Use archive_client or restore_client to change its archived state.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `client_id` (`integer`, required): Numeric ID of the client. Get it from the list clients tool. Example: 64123456.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.
- `external_reference` (`string`, optional): Your own reference for the client, such as an ID from another system. Example: CRM-1042.
- `name` (`string`, optional): New name for the client. Example: Acme Corporation.
- `notes` (`string`, optional): Free-text notes about the client. Example: Primary contact is Jane Doe.

Example input: `{"client_id":64123456,"workspace_id":1234567}`

### `toggl_update_project`

Update Project · Write

Update a project's name, client, status, privacy, color, dates, estimate, or billing settings.
Returns the updated project with its id, name, client_id, active and private flags, color, and billing settings.
Use this to edit or archive a project (set active to false). Use delete_project to remove it.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `project_id` (`integer`, required): Numeric ID of the project. Get it from the list projects tool. Example: 203456789.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.
- `active` (`boolean`, optional): Whether the project is active. Set to false to archive it. Example: true.
- `billable` (`boolean`, optional): Whether time on the project is billable by default (paid-plan feature). Example: true.
- `client_id` (`integer`, optional): Numeric ID of the client the project belongs to. Get it from the list clients tool. Example: 64123456.
- `color` (`string`, optional): Project color as a hex code. Example: #0b83d9.
- `currency` (`string`, optional): Currency code for the project rate (paid-plan feature). Example: USD.
- `end_date` (`string`, optional): End date of the project timeframe, YYYY-MM-DD. Example: 2026-12-31.
- `estimated_hours` (`integer`, optional): Estimated hours for the project (paid-plan feature). Example: 120.
- `external_reference` (`string`, optional): Your own reference for the project, such as an ID from another system. Example: CRM-4821.
- `fixed_fee` (`number`, optional): Fixed fee for the project (paid-plan feature). Example: 5000.
- `is_private` (`boolean`, optional): Whether the project is private (visible only to its members). Example: true.
- `name` (`string`, optional): New name for the project. Example: Website Redesign Phase 2.
- `rate` (`number`, optional): Hourly rate for the project (paid-plan feature). Example: 95.5.
- `start_date` (`string`, optional): Start date of the project timeframe, YYYY-MM-DD. Example: 2026-10-01.

Example input: `{"project_id":203456789,"workspace_id":1234567}`

### `toggl_update_project_user`

Update Project User · Write

Update a project membership's manager flag, rate, or labor cost.
Returns the updated project user with its id, project_id, user_id, manager flag, rate, and labor cost.
Use this to change a member's role or rate. Use remove_project_user to take them off the project.
Requires a project user id from list_project_users.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `project_user_id` (`integer`, required): Numeric ID of the project user (the membership record linking a user to a project, not the user ID). Get it from the list project users tool. Example: 123456789.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.
- `labor_cost` (`number`, optional): Labor cost per hour for this user on the project (paid-plan feature). Example: 40.
- `labor_cost_change_mode` (`string`, optional): Which time entries a new labor cost applies to: start-today, override-current or override-all. Example: start-today. One of: `start-today`, `override-current`, `override-all`.
- `manager` (`boolean`, optional): Whether the user manages the project. Example: true.
- `rate` (`number`, optional): Hourly rate for this user on the project (paid-plan feature). Example: 85.
- `rate_change_mode` (`string`, optional): Which time entries a new rate applies to: start-today, override-current or override-all. Example: start-today. One of: `start-today`, `override-current`, `override-all`.

Example input: `{"project_user_id":123456789,"workspace_id":1234567}`

### `toggl_update_tag`

Rename Tag · Write

Rename a tag in a Toggl Track workspace.
Returns the updated tag data (documented as an array of tags) with id, name, and workspace_id.
Use this to rename a tag everywhere it is used. Use delete_tag to remove it.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `name` (`string`, required): New name for the tag. Example: client-meeting.
- `tag_id` (`integer`, required): Numeric ID of the tag. Get it from the list tags tool. Example: 15234567.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.

Example input: `{"name":"<name>","tag_id":15234567,"workspace_id":1234567}`

### `toggl_update_task`

Update Task · Write

Update a task's name, status, estimate, assignee, or external reference.
Returns the updated task with its id, name, project_id, active flag, estimated_seconds, and assigned user.
Use this to edit a task or mark it done (set active to false). Use delete_task to remove it.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `project_id` (`integer`, required): Numeric ID of the project. Get it from the list projects tool. Example: 203456789.
- `task_id` (`integer`, required): Numeric ID of the task. Get it from the list project tasks or list workspace tasks tool. Example: 98765432.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.
- `active` (`boolean`, optional): Whether the task is open. Set to false to mark it done. Example: false.
- `estimated_seconds` (`integer`, optional): Estimated effort in seconds. Example: 7200.
- `external_reference` (`string`, optional): Your own reference for the task, such as an issue key. Example: WEB-142.
- `name` (`string`, optional): New name for the task. Example: Design homepage v2.
- `user_id` (`integer`, optional): Numeric ID of the user to assign the task to. Get it from the list workspace users tool. Example: 5123456.

Example input: `{"project_id":203456789,"task_id":98765432,"workspace_id":1234567}`

### `toggl_update_time_entry`

Update Time Entry · Write

Update a time entry's description, times, project, task, tags, or billable flag.
Returns the updated time entry with its id, start, stop, duration, description, project_id, and tags.
Use this to edit an entry. Use stop_time_entry to stop a running timer at the current time.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `time_entry_id` (`integer`, required): Numeric ID of the time entry. Get it from the list time entries tool or the response of the create time entry tool. Example: 3456789012.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.
- `billable` (`boolean`, optional): Whether the entry is billable (a paid-plan feature). Toggl defaults to false. Example: true.
- `description` (`string`, optional): What the time was spent on. Example: Sprint planning meeting.
- `duration` (`integer`, optional): New duration in seconds. Use a positive number for a finished entry, or -1 for a running timer. If you also set stop, it must equal start plus duration. Example: 3600.
- `meta` (`boolean`, optional): Set to true to add related names to each time entry (project name and color, client name, task name, user name). Leave empty for the plain time entry fields. Example: true.
- `project_id` (`integer`, optional): Numeric ID of the project to assign the entry to. Get it from the list projects tool. Example: 203456789.
- `start` (`string`, optional): New start time of the time entry in UTC, RFC 3339 format. Example: 2026-10-14T09:00:00Z.
- `stop` (`string`, optional): Stop time in UTC, RFC 3339 format. Optional: Toggl derives it from start plus duration, so leave it empty for a running entry. Example: 2026-10-14T10:00:00Z.
- `tag_action` (`string`, optional): How to apply tags or tag_ids on update: add appends them to the entry's existing tags, delete removes them. Leave empty to replace the tags. Example: add. One of: `add`, `delete`.
- `tag_ids` (`array`, optional): Numeric IDs of existing tags to apply. Get them from the list tags tool. Example: [15234567].
- `tags` (`array`, optional): Tag names to apply. Tags that don't exist yet are created automatically. Example: ["meeting", "billable"].
- `task_id` (`integer`, optional): Numeric ID of a task within the project. Get it from the list project tasks tool. Example: 98765432.

Example input: `{"time_entry_id":3456789012,"workspace_id":1234567}`

### `toggl_delete_client`

Delete Client · Destructive

Delete a client from a Toggl Track workspace.
Returns only the HTTP status; the response body is empty.
Use this to remove a client permanently. Use archive_client to hide it instead.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `client_id` (`integer`, required): Numeric ID of the client. Get it from the list clients tool. Example: 64123456.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.

Example input: `{"client_id":64123456,"workspace_id":1234567}`

### `toggl_delete_project`

Delete Project · Destructive

Delete a project and either delete or unassign its time entries.
Returns only the HTTP status; the response body is empty.
Use this to remove a project permanently. Use update_project with active false to archive it instead.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `project_id` (`integer`, required): Numeric ID of the project. Get it from the list projects tool. Example: 203456789.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.
- `teDeletionMode` (`string`, optional): What happens to the project's time entries: delete removes them, unassign keeps them without a project. Example: unassign. One of: `delete`, `unassign`.

Example input: `{"project_id":203456789,"workspace_id":1234567}`

### `toggl_delete_tag`

Delete Tag · Destructive

Delete a tag from a Toggl Track workspace.
Returns only the HTTP status; the response body is empty.
Use this to remove a tag. Use update_tag to rename it instead.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `tag_id` (`integer`, required): Numeric ID of the tag. Get it from the list tags tool. Example: 15234567.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.

Example input: `{"tag_id":15234567,"workspace_id":1234567}`

### `toggl_delete_task`

Delete Task · Destructive

Delete a task from a Toggl Track project.
Returns only the HTTP status; the response body is empty.
Use this to remove a task. Use update_task with active false to mark it done instead.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `project_id` (`integer`, required): Numeric ID of the project. Get it from the list projects tool. Example: 203456789.
- `task_id` (`integer`, required): Numeric ID of the task. Get it from the list project tasks or list workspace tasks tool. Example: 98765432.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.

Example input: `{"project_id":203456789,"task_id":98765432,"workspace_id":1234567}`

### `toggl_delete_time_entry`

Delete Time Entry · Destructive

Delete a time entry permanently.
Returns only the HTTP status; the response body is empty.
Use this to remove an entry. Use update_time_entry to correct it instead.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `time_entry_id` (`integer`, required): Numeric ID of the time entry. Get it from the list time entries tool or the response of the create time entry tool. Example: 3456789012.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.

Example input: `{"time_entry_id":3456789012,"workspace_id":1234567}`

### `toggl_remove_project_user`

Remove Project User · Destructive

Remove a user from a project.
Returns only the HTTP status; the response body is empty.
Use this to take a member off a project. Use update_project_user to change their role instead.
Requires a project user id from list_project_users.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `project_user_id` (`integer`, required): Numeric ID of the project user (the membership record linking a user to a project, not the user ID). Get it from the list project users tool. Example: 123456789.
- `workspace_id` (`integer`, required): Numeric ID of the Toggl Track workspace. Get it from the list workspaces tool, or use default_workspace_id from the get current user tool. Example: 1234567.

Example input: `{"project_user_id":123456789,"workspace_id":1234567}`

## Related

Other Productivity connectors ([all 144](/agentkit/connectors/?category=productivity)):

- [Slack](/agentkit/connectors/slack/): Scalekit connector, OAuth, 96 tools
- [Microsoft 365](/agentkit/connectors/microsoft365/): Scalekit connector, OAuth, 317 tools
- [Notion](/agentkit/connectors/notion/): Scalekit connector, OAuth, 51 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
