io.usefulapi/when-i-work
up checked
Unclaimed · Unverified
Agent searches it appeared in, last 30 days: 0. Run this server? Claim the listing: verified label, uptime alerts and analytics.
Publisher-provided title
When I Work MCP by usefulapi
Publisher-provided description
Check shifts, time clock entries, time-off requests, swaps and availability, and manage shifts.
Summary by lookupd
Read and manage employee shifts, time clock entries, time-off requests, swaps and availability in a When I Work scheduling account.
Install
Claude Code, remote (streamable-http)
claude mcp add --transport http when-i-work https://when-i-work.usefulapi.io/mcp
Codex, remote (streamable-http)
codex mcp add when-i-work --url https://when-i-work.usefulapi.io/mcp
Cursor, remote (streamable-http) → .cursor/mcp.json
{
"mcpServers": {
"when-i-work": {
"url": "https://when-i-work.usefulapi.io/mcp"
}
}
}Other clients: docs. Or tell your agent: Set up lookupd for me: read https://lookupd.com/agent.md and follow it.
Tools (21 tools)
Publisher-provided text
wheniwork_get_accountFetch the When I Work account (workplace) the token acts on — company name, plan and settings; for a parent account also its child accounts. A cheap way to confwheniwork_list_usersList the employees, supervisors, managers and admins in the account, optionally limited to some schedules or searched by name/email. Role codes: 1 admin, 2 manawheniwork_get_userFetch one user by id — name, email, role, positions, schedules, wage. When I Work: GET /2/users/{id}.wheniwork_list_locationsList the schedules in the account. The API calls a schedule a "location"; its id is the location_id every shift belongs to. When I Work: GET /2/locations.wheniwork_list_positionsList the positions (job roles such as Cashier or Dishwasher) in the account. When I Work: GET /2/positions.wheniwork_list_shiftsList scheduled shifts in a time window — who works when, where and in which position — optionally including open shifts and unpublished drafts. Answers "who iswheniwork_get_shiftFetch one shift by id, including its breaks and publish state. When I Work: GET /2/shifts/{id}.wheniwork_list_eligible_users_for_shiftFind who could take an open shift — either an existing shift (shift_id) or a hypothetical one (start, end, position_id and location_id all required). When I Worwheniwork_list_timesList clocked time entries — actual hours worked, clock-in/out times, length and approval state. Use only_open to see who is clocked in right now. When I Work: Gwheniwork_list_time_off_requestsList time-off requests in a date range, with the requesting users. Status: 0 pending, 1 canceled, 2 accepted, 3 expired, 4 denied. When I Work: GET /2/requests.wheniwork_get_time_off_requestFetch one time-off request by id, with its message thread and users. When I Work: GET /2/requests/{request_id}.wheniwork_list_time_off_typesList the time-off types (e.g. Personal, Sick, Holiday) and whether each allows paid time. Their ids are the type_id for a new request. When I Work: GET /2/requewheniwork_list_shift_swapsList shift requests: swaps, drops and alerts, with the shifts and users involved. Status: 0 pending, 1 approved, 2 declined, 3 completed, 4 canceled, 5 expired.wheniwork_list_availabilityList availability events — when people said they can or cannot work, including recurring patterns that fall in the window. Defaults to the caller, from now to twheniwork_list_annotationsList schedule annotations — announcements, business-closed days and blackout dates when time off is not allowed. Defaults to today through one year out. When Iwheniwork_create_shiftCreate one shift on a schedule — assigned to a user, or open (user_id 0). Created as a draft unless published is true. Undo by editing it or unpublishing. Whenwheniwork_update_shiftChange a shift — reassign it, move it, change position or notes. When I Work requires start_time, end_time and location_id on every update, so fetch the shift fwheniwork_publish_shiftsPublish draft shifts so employees can see them. Publishing does not itself send notifications. Undo with wheniwork_unpublish_shifts. When I Work: POST /2/shiftswheniwork_unpublish_shiftsReturn published shifts to draft, hiding them from employees. Undo with wheniwork_publish_shifts. When I Work: POST /2/shifts/unpublish.wheniwork_create_time_off_requestCreate a time-off request for a user (default the calling user). It starts pending; cancel it with wheniwork_update_time_off_request (status 1). Get type ids frwheniwork_update_time_off_requestChange a time-off request: set its status (0 pending, 1 canceled, 2 accepted/approved, 3 expired, 4 denied) and/or its dates or hours. Reversible — set the stat
Details
- Version: 1.37.3
- Transports: streamable-http
- Uptime (7 days): 100%
- Median latency: 599 ms
- First indexed:
- Last seen in registry:
- Repository: https://github.com/m190/usefulapi-mcp
- Website: https://usefulapi.io/when-i-work/
Badge for your README
Shows this live status and links here; updates hourly.
[](https://lookupd.com/servers/io.usefulapi/when-i-work)
- 62071 servers
- Last crawl: 2026-11-11T16:17:25.167Z
- API base:
https://api.lookupd.com - MCP URL:
https://api.lookupd.com/mcp