home / skills / composiohq / awesome-claude-skills / toggl-automation

toggl-automation skill

/toggl-automation

This skill automates Toggl Track workflows from Claude Code, enabling you to create time entries, manage projects, clients, tags, and workspaces efficiently.

npx playbooks add skill composiohq/awesome-claude-skills --skill toggl-automation

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
6.0 KB
---
name: Toggl Automation
description: "Automate time tracking workflows in Toggl Track -- create time entries, manage projects, clients, tags, and workspaces through natural language commands."
requires:
  mcp:
    - rube
---

# Toggl Automation

Automate your Toggl Track time tracking operations directly from Claude Code. Log time, manage projects and clients, organize with tags, and control workspaces -- all without leaving your terminal.

**Toolkit docs:** [composio.dev/toolkits/toggl](https://composio.dev/toolkits/toggl)

---

## Setup

1. Add the Rube MCP server to your Claude Code config with URL: `https://rube.app/mcp`
2. When prompted, authenticate your Toggl Track account through the connection link provided
3. Start automating your time tracking workflows with natural language

---

## Core Workflows

### 1. Create and Stop Time Entries

Log time with project, task, and tag associations, or start/stop timers.

**Tools:** `TOGGL_CREATE_TIME_ENTRY`, `TOGGL_PATCH_STOP_TIME_ENTRY`

```
Start a time entry in workspace 123456 for project 78910 tagged "meeting" and "design" with description "Design review session"
```

Key parameters for `TOGGL_CREATE_TIME_ENTRY`:
- `workspace_id` (required) -- target workspace
- `created_with` (required) -- client application name (e.g., `"api_client"`)
- `start` (required) -- ISO 8601 timestamp
- `stop` -- ISO 8601 end time; omit to leave the entry running
- `duration` -- duration in seconds; omit for running entries
- `project_id` -- associate with a project
- `task_id` -- associate with a task
- `tags` -- array of tag name strings (not IDs)
- `description` -- description of the work
- `billable` -- billable status

Key parameters for `TOGGL_PATCH_STOP_TIME_ENTRY`:
- `workspace_id` (required) and `time_entry_id` (required)

### 2. Manage Projects

Create new projects and list existing ones with client details and pagination.

**Tools:** `TOGGL_CREATE_PROJECT`, `TOGGL_GET_PROJECTS`, `TOGGL_GET_PROJECT_DETAILS`

```
Create a private billable project called "Q1 Marketing Campaign" in workspace 123456 for client 78910
```

Key parameters for `TOGGL_CREATE_PROJECT`:
- `workspace_id` (required) and `name` (required)
- `client_id`, `billable`, `is_private`, `active`, `color`
- `estimated_hours`, `rate`, `fixed_fee`, `currency` (premium features)

Key parameters for `TOGGL_GET_PROJECTS`:
- `workspace_id` (required)
- `page` / `page_size` (1-200) for pagination
- `since` / `until` -- Unix timestamps for modification filtering (last 3 months only)
- `clients: true` to include full client details

### 3. Manage Clients

Create and list clients within a workspace.

**Tools:** `TOGGL_CREATE_CLIENT`, `TOGGL_GET_LIST_CLIENTS`

```
List all active clients in workspace 123456, then create a new client called "Acme Corp"
```

- `TOGGL_CREATE_CLIENT` requires `workspace_id` and `name`; accepts `notes`, `external_reference`
- `TOGGL_GET_LIST_CLIENTS` requires `workspace_id`; supports `status` (`"active"`, `"archived"`, `"both"`) and `name` (case-insensitive search)

### 4. Tags and Workspace Preferences

Retrieve tags for categorization and check workspace settings.

**Tools:** `TOGGL_GET_TAGS`, `TOGGL_GET_WORKSPACE_PREFERENCES`

```
Show me all tags in workspace 123456 and the workspace preferences
```

- `TOGGL_GET_TAGS` requires `workspace_id`; returns tag IDs and names
- `TOGGL_GET_WORKSPACE_PREFERENCES` requires `workspace_id`; returns pricing plan and display settings

### 5. Workspace Discovery

List all workspaces the authenticated user belongs to.

**Tool:** `TOGGL_GET_USER_WORKSPACES`

```
What Toggl workspaces do I have access to?
```

- No parameters required
- Returns all workspaces with IDs, names, and metadata
- Use this first to discover workspace IDs for other operations

### 6. User Project Visibility

List projects visible to the authenticated user.

**Tool:** `TOGGL_GET_USER_PROJECTS`

```
Show me all projects I can see across my workspaces
```

- Returns projects the authenticated user has access to
- Use alongside `TOGGL_GET_PROJECTS` for workspace-scoped views

---

## Known Pitfalls

- **Tags use names, not IDs:** `TOGGL_CREATE_TIME_ENTRY` accepts tag names as strings in the `tags` array, unlike many APIs that use IDs. Use `TOGGL_GET_TAGS` to verify available tag names.
- **`created_with` is required:** Every time entry must include `created_with` (e.g., `"api_client"`). Missing this field causes silent failures.
- **Duration is in seconds:** The `duration` parameter on time entries is in seconds, not hours. 1 hour = 3600 seconds.
- **`since` timestamp restriction:** The `since` filter on `TOGGL_GET_PROJECTS` only allows timestamps within the last 3 months. Older queries will be rejected.
- **Premium features gated:** Custom colors, templates, fixed fees, and hourly rates on projects require a premium Toggl plan. Non-premium accounts will get errors when using these fields.
- **Workspace ID required everywhere:** Nearly all Toggl tools require `workspace_id`. Always call `TOGGL_GET_USER_WORKSPACES` first to resolve it.

---

## Quick Reference

| Tool Slug | Description |
|---|---|
| `TOGGL_CREATE_TIME_ENTRY` | Create a time entry or running timer (requires `workspace_id`, `created_with`, `start`) |
| `TOGGL_PATCH_STOP_TIME_ENTRY` | Stop a running time entry (requires `workspace_id`, `time_entry_id`) |
| `TOGGL_GET_PROJECTS` | List projects in a workspace with pagination |
| `TOGGL_GET_PROJECT_DETAILS` | Get details for a specific project |
| `TOGGL_CREATE_PROJECT` | Create a new project (requires `workspace_id`, `name`) |
| `TOGGL_GET_LIST_CLIENTS` | List clients with status/name filters (requires `workspace_id`) |
| `TOGGL_CREATE_CLIENT` | Create a new client (requires `workspace_id`, `name`) |
| `TOGGL_GET_TAGS` | List all tags in a workspace (requires `workspace_id`) |
| `TOGGL_GET_WORKSPACE_PREFERENCES` | Get workspace settings (requires `workspace_id`) |
| `TOGGL_GET_USER_WORKSPACES` | List all workspaces for the authenticated user |
| `TOGGL_GET_USER_PROJECTS` | List projects visible to the authenticated user |

---

*Powered by [Composio](https://composio.dev)*

Overview

This skill automates Toggl Track time tracking and workspace management using natural language commands. It lets you create and stop time entries, manage projects, clients, tags, and inspect workspace preferences without leaving your CLI or agent environment. Authenticate once and drive common Toggl operations through simple prompts.

How this skill works

The skill exposes a set of tools that call Toggl Track APIs via an MCP bridge. Use commands to create time entries (or running timers), stop timers, list and create projects and clients, fetch tags, and retrieve workspace or user-scoped resources. Most operations require a workspace_id, so start by listing user workspaces to discover IDs.

When to use it

  • Start or stop timers from your terminal or agent workflows
  • Create or update projects and associate time entries with clients
  • Batch-create clients or look up existing clients by name
  • Fetch tags and workspace preferences for consistent categorization
  • List visible projects and workspaces to drive other Toggl operations

Best practices

  • Call TOGGL_GET_USER_WORKSPACES first to resolve workspace_id before other calls
  • Always include created_with when creating time entries to avoid silent failures
  • Use tag names (not IDs) when creating time entries; verify available tags with TOGGL_GET_TAGS
  • Provide start as an ISO 8601 timestamp; omit stop for running entries or use duration in seconds for completed entries
  • Use pagination (page, page_size) and recent since/until timestamps when listing projects to avoid rejected queries

Example use cases

  • Start a running time entry for a meeting with tags like "meeting" and "design"
  • Create a private billable project for a client and later list its details
  • List all active clients in a workspace and create a new client called "Acme Corp"
  • Show workspace preferences and available tags to align tagging and billing settings
  • Stop a running time entry using TOGGL_PATCH_STOP_TIME_ENTRY with time_entry_id and workspace_id

FAQ

Do I need to provide workspace IDs for every call?

Yes. Nearly all tools require workspace_id. Use TOGGL_GET_USER_WORKSPACES first to discover the correct workspace IDs.

How should tags be supplied when creating time entries?

Provide tag names as strings in the tags array. Use TOGGL_GET_TAGS to list available tag names before creating entries.

What format and units do time fields use?

Use ISO 8601 timestamps for start/stop. Duration is specified in seconds (3600 seconds = 1 hour).

Are advanced project fields always supported?

Fields like custom colors, fixed fees, hourly rates, and templates require a premium Toggl plan and will error on non-premium accounts.