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

clockify-automation skill

/clockify-automation

This skill helps automate Clockify time tracking by creating entries, starting timers, querying data, and managing workspaces via natural language commands.

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

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

Files (1)
SKILL.md
5.3 KB
---
name: Clockify Automation
description: "Automate time tracking workflows in Clockify -- create and manage time entries, workspaces, and users through natural language commands."
requires:
  mcp:
    - rube
---

# Clockify Automation

Automate your Clockify time tracking operations directly from Claude Code. Log time entries, query historical data, manage workspaces, and audit team activity -- all without leaving your terminal.

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

---

## Setup

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

---

## Core Workflows

### 1. Create Time Entries

Log time with project, task, and tag associations, plus billable status.

**Tool:** `CLOCKIFY_CREATE_TIME_ENTRY`

```
Log 2 hours of work on project 64a687e2 in workspace 64a687e3 starting at 9am UTC today with description "API development"
```

Key parameters:
- `workspaceId` (required) -- workspace where the entry is created
- `start` (required) -- ISO 8601 start time (e.g., `2026-02-11T09:00:00Z`)
- `end` -- ISO 8601 end time; omit to create a running timer
- `projectId` -- associate with a project
- `taskId` -- associate with a task
- `description` -- work description (0-3000 chars)
- `tagIds` -- array of tag IDs
- `billable` -- whether the entry is billable
- `customFieldValues` -- array of custom field entries with `customFieldId` and `value`

### 2. Query Time Entries

Retrieve historical time entries for reporting, auditing, and invoicing.

**Tool:** `CLOCKIFY_GET_TIME_ENTRIES`

```
Get all time entries for user abc123 in workspace xyz789 from January 2026
```

Key parameters:
- `workspaceId` (required) -- workspace to query
- `userId` (required) -- user whose entries to retrieve
- `start` / `end` -- ISO 8601 date range filters
- `project` -- filter by project ID
- `task` -- filter by task ID
- `tags` -- comma-separated tag IDs
- `description` -- text filter (partial match)
- `hydrated` -- set `true` to get full project/task/tag objects instead of just IDs
- `in-progress` -- set `true` to return only the running timer
- `page` / `page-size` -- pagination (default 50 per page)

### 3. Delete Time Entries

Remove erroneous, duplicate, or cancelled time entries.

**Tool:** `CLOCKIFY_DELETE_TIME_ENTRY`

```
Delete time entry 5b715448 from workspace 64a687e3
```

- Requires `workspaceId` and `id` (the time entry ID)
- Use for cleanup of bad imports or duplicates

### 4. Manage Workspaces

List all workspaces the authenticated user belongs to.

**Tool:** `CLOCKIFY_GET_ALL_MY_WORKSPACES`

```
Show me all my Clockify workspaces
```

- Optional `roles` filter -- array of roles like `["WORKSPACE_ADMIN", "OWNER"]`
- Use this to discover workspace IDs before creating or querying entries

### 5. User Information

Retrieve current user details and list workspace members.

**Tools:** `CLOCKIFY_GET_CURRENTLY_LOGGED_IN_USER_INFO`, `CLOCKIFY_FIND_ALL_USERS_ON_WORKSPACE`

```
Who am I logged in as? Then list all users in workspace 64a687e3
```

- `CLOCKIFY_GET_CURRENTLY_LOGGED_IN_USER_INFO` returns the authenticated user's profile (no parameters needed)
- `CLOCKIFY_FIND_ALL_USERS_ON_WORKSPACE` requires `workspaceId`; supports `name`, `email` filters and pagination (`page`, `page-size` max 100)

### 6. Running Timer Management

Start a timer by omitting `end` in create, or check for running entries.

**Tools:** `CLOCKIFY_CREATE_TIME_ENTRY`, `CLOCKIFY_GET_TIME_ENTRIES`

```
Start a timer on project abc in workspace xyz with description "Working on bug fix"
```

- Create without `end` to start a running timer
- Use `CLOCKIFY_GET_TIME_ENTRIES` with `in-progress: true` to check if a timer is running

---

## Known Pitfalls

- **Workspace and user IDs are required:** Most Clockify tools require both `workspaceId` and `userId`. Always call `CLOCKIFY_GET_ALL_MY_WORKSPACES` and `CLOCKIFY_GET_CURRENTLY_LOGGED_IN_USER_INFO` first to resolve these IDs.
- **ISO 8601 timestamps:** All time parameters must be in ISO 8601 format with timezone (e.g., `2026-02-11T09:00:00Z`). Omitting the timezone causes unpredictable behavior.
- **Running timers:** Only one timer can run at a time. Creating a new entry without `end` will fail if another timer is already active. Stop the existing timer first.
- **Pagination defaults:** `CLOCKIFY_GET_TIME_ENTRIES` defaults to 50 entries per page. For full exports, loop through pages until no more results are returned.
- **Tag IDs are workspace-scoped:** Tag IDs from one workspace cannot be used in another. Always resolve tags within the target workspace context.

---

## Quick Reference

| Tool Slug | Description |
|---|---|
| `CLOCKIFY_CREATE_TIME_ENTRY` | Create a time entry or start a timer (requires `workspaceId`, `start`) |
| `CLOCKIFY_GET_TIME_ENTRIES` | List time entries with filters (requires `workspaceId`, `userId`) |
| `CLOCKIFY_DELETE_TIME_ENTRY` | Delete a time entry (requires `workspaceId`, `id`) |
| `CLOCKIFY_GET_ALL_MY_WORKSPACES` | List all workspaces for the authenticated user |
| `CLOCKIFY_GET_CURRENTLY_LOGGED_IN_USER_INFO` | Get current user profile info |
| `CLOCKIFY_FIND_ALL_USERS_ON_WORKSPACE` | List all users in a workspace (requires `workspaceId`) |

---

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

Overview

This skill automates Clockify time tracking from natural language commands. It lets you create and manage time entries, workspaces, and users, and query or clean up historical data without leaving your workflow. Use it to start/stop timers, generate reports, and audit team activity programmatically.

How this skill works

The skill maps plain-language requests to Clockify toolkit actions (create, query, delete entries; list workspaces; fetch user info). It requires authenticating the Clockify account and resolving workspaceId and userId before most operations. Time parameters use ISO 8601 timestamps, and tools support pagination, filtering, and hydrated responses for richer objects.

When to use it

  • Log billable or non-billable work quickly from the terminal or an agent
  • Start or stop running timers via natural language
  • Export or audit a user’s time entries for a date range
  • Clean up duplicate or erroneous entries by deleting specific records
  • List workspaces and workspace members to resolve IDs before automation

Best practices

  • Always call Get All My Workspaces and Get Currently Logged In User Info first to obtain workspaceId and userId
  • Provide ISO 8601 timestamps with timezone (e.g., 2026-02-11T09:00:00Z) to avoid ambiguity
  • Check for an existing running timer before creating a new one; only one timer can run at a time
  • Use pagination when exporting large data sets; iterate pages until no results remain
  • Resolve tags, projects, and tasks within the target workspace since IDs are workspace-scoped

Example use cases

  • Log 2 hours on a project with description and tags for billing or invoicing
  • Start a running timer for focused work without supplying an end time
  • Retrieve all entries for a user during a month for payroll or audit
  • Delete duplicate imported entries after a bad migration
  • List all workspace members to validate billing roles and permissions

FAQ

What IDs do I need before creating time entries?

Most operations require workspaceId and often userId. Use the workspace and user info tools to resolve these IDs first.

How do I start a running timer?

Create a time entry without providing an end timestamp; ensure no other timer is running in that workspace/account.