repairshopr-timelog

star 0

Manage general employee time logs (clock in/out) in RepairShopr

omiinaya By omiinaya schedule Updated 3/6/2026

name: repairshopr-timelog description: Manage general employee time logs (clock in/out) in RepairShopr license: MIT compatibility: opencode metadata: audience: employees, administrators, payroll api: GET /timelogs, PUT /timelogs, GET /timelogs/last

What I do

I manage employee time logs for clock-in/clock-out tracking. These logs record when employees start and end work shifts, including lunch breaks and notes. I can list timelogs (with optional user filter), retrieve the last timelog for a user, and update timelog details (like adding notes or correcting times).

When to use me

Use this when:

  • Employees need to clock in/out via integration
  • Reviewing timesheets for payroll
  • Correcting timelog entries (adding notes, fixing missed clock-outs)
  • Checking who is currently working (timelog with null out_at)
  • Getting the last timelog for a user to determine current status

How to use

Required API base URL:

  • VITE_REPAIRSHOPR_SUBDOMAIN
  • VITE_REPAIRSHOPR_API_KEY

Permissions: Users with "Timelogs - Manage" can see all users' timelogs; otherwise only own.

List Timelogs (GET /timelogs) Optional:

  • user_id (integer) - Filter by user ID (current user if omitted)

Get Last Timelog (GET /timelogs/last) Optional:

  • user_id (integer) - Default is current user if not provided

Update Timelog (PUT /timelogs) This is a bit unusual: the endpoint is /timelogs (no ID in path), so it likely updates the most recent or open timelog for the current user, or you pass id in body? The docs show a PUT with no path ID. Let's infer you can update timelog by passing its ID in body or it updates the "last" or currently open one. The example body doesn't include id. For safety, assume it updates the most recent/active timelog for the authenticated user.

Body fields:

  • in_at (string, ISO 8601) - Clock-in time
  • out_at (string, ISO 8601) - Clock-out time (null to indicate still working)
  • lunch (boolean) - Whether lunch break was taken
  • in_note (string) - Note at clock-in
  • out_note (string) - Note at clock-out

Example calls:

// Clock in (create new timelog) - Actually perhaps via some other endpoint? 
// The provided docs don't show a POST create; maybe UI uses different endpoint.
// Update timelog (clock out) - likely need to update the open one
await skill({ name: "repairshopr-timelog" }, {
  out_at: "2024-01-15T17:00:00Z",
  out_note: "End of day",
  lunch: true
}, { method: 'PUT' })

// Get last timelog for user 5
const last = await skill({ name: "repairshopr-timelog" }, {}, 
  { user_id: 5, method: 'GET', endpoint: '/last' }
)

// List timelogs
const logs = await skill({ name: "repairshopr-timelog" }, {
  user_id: 5
})

Response includes:

  • List: timelogs array with objects: id, in_at, out_at, user_id, in_note, out_note, lunch, manually_updated
  • Last: single timelog object (no wrapper)
  • Put: updated timelog object

Important

  • The API appears to lack explicit create endpoint in these docs; typical flow might be: Get last timelog (if none, create by POST to /timelogs? not shown). The provided docs only show GET, PUT, GET /last. Your integration may need to handle creating via a different method or by updating a placeholder.
  • lunch is a boolean indicating lunch break taken; don't confuse with lunch duration.
  • Updating likely requires in_at to set original clock-in; can't change after posting maybe.
  • Single-Customer Users may have limited access.

Related skills

  • repairshopr-ticket-timer - Separate timer system specifically for tickets
  • repairshopr-user - For user information to map user_id to names
Install via CLI
npx skills add https://github.com/omiinaya/repairshopr-skills --skill repairshopr-timelog
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator