Bookings and appointments
when-i-work
when-i-work was answering at the last check. Checked on 2026-10-03 (daily check).
Check shifts, time clock entries, time-off requests, swaps and availability, and manage shifts.
Agents use servers like this to check availability and book or move appointments.
15 read-only0 change data6 high risk
https://when-i-work.usefulapi.io/mcp
Follow (RSS): status changes, tool-list changes, new advisories and owner verification, in any feed reader.
Tools
21 tools: 15 read-only, 0 change data, 6 high risk (delete, pay, send or run code).
2 tools can send messages; they are listed first.
- read-only
- Only reads or looks things up. Safe for an agent to call on its own.
- changes data
- Creates, edits or sends something. Worth a person's approval the first time.
- high risk
- Can delete, pay, send on your behalf or run code. Hard or impossible to undo.
Connecting costs an agent about 5,625 tokens of tool definitions and a 802 ms handshake.
- high risk
wheniwork_publish_shiftssends messagesPublish draft shifts so employees can see them. Publishing does not itself send notifications. Undo with wheniwork_unpublish_shifts. When I Work: POST /2/shifts/publish. - high risk
wheniwork_unpublish_shiftssends messagesReturn published shifts to draft, hiding them from employees. Undo with wheniwork_publish_shifts. When I Work: POST /2/shifts/unpublish. - high risk
wheniwork_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. When I Work: POST /2/shifts. - high risk
wheniwork_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 first and pass them back. This tool never sends a breaks array; When I Work documents that breaks omitted from an update's breaks list are... - high risk
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 from wheniwork_list_time_off_types. When I Work: POST /2/requests. - high risk
wheniwork_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 status back. start_time and end_time must be given together. When I Work: PUT /2/requests/{request_id}. - read-only
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 confirm the credentials work. When I Work: GET /2/account. - read-only
wheniwork_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 manager, 3 employee, 5 supervisor. When I Work: GET /2/users. - read-only
wheniwork_get_userFetch one user by id - name, email, role, positions, schedules, wage. When I Work: GET /2/users/{id}. - read-only
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. - read-only
wheniwork_list_positionsList the positions (job roles such as Cashier or Dishwasher) in the account. When I Work: GET /2/positions. - read-only
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 is on on Friday?" and "what open shifts are left?". When I Work: GET /2/shifts. - read-only
wheniwork_get_shiftFetch one shift by id, including its breaks and publish state. When I Work: GET /2/shifts/{id}. - read-only
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 Work: GET /2/shifts/eligible. - read-only
wheniwork_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: GET /2/times. - read-only
wheniwork_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. - read-only
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}. - read-only
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/requesttypes. - read-only
wheniwork_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. Type: 1 swap, 2 drop, 3 alert. start and end must be given together. When I Work: GET /2/swaps. - read-only
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 two weeks out. When I Work: GET /2/availabilityevents. - read-only
wheniwork_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 I Work: GET /2/annotations.
Levels are automated estimates from each tool's public name, description and annotations, and can be wrong. Descriptions as the server publishes them.
Status
Newest check: answered with tools, from the daily check, 2026-10-03, 802 ms.
From one check a day over the last 1 day. Servers whose owner verified them are checked every 5 minutes. Sign-in and payment answers count as up.
Last 30 days
2026-09-042026-10-03
answered with toolssign-in or payment askednot answeringnot checked
Compare: the most reliable servers in Bookings and appointments, ranked by days answering.
Trust and supply chain
No owner has verified this server yet.
No tool change since tracking began on 2026-10-03.
Badge
Live: status, days reachable, the tokens its tool list costs an agent. For a README:
[](https://7it.co.il/7maps/s/when-i-work.usefulapi.io/mcp)
Other styles: add ?style=uptime (30-day uptime), ?style=stars (agents’ rating) or ?style=verified (owner mark) to the image address, or ?style=top (shows "top 10%" when the server ranks in the top tenth of its category by days answering; otherwise the standard badge).
Is this badge genuine? Anyone can check what a genuine badge for this server says right now: /7maps/verify/badge?server=when-i-work.usefulapi.io%2Fmcp (add the same &style= for another style).
Own this server? Verify that it is yours.
Status widget
A live status card for a status page, docs or a dashboard: current status, the 30-day strip, uptime and handshake time.
Script (renders where it is placed, in its own shadow DOM):
<script src="https://7it.co.il/7maps/widget/when-i-work.usefulapi.io/mcp.js" async></script>
Or an iframe:
<iframe src="https://7it.co.il/7maps/widget/when-i-work.usefulapi.io/mcp" title="7Maps status" width="360" height="176" style="border:0;max-width:100%" loading="lazy"></iframe>
The widget is drawn only from 7it.co.il. Is a status shown elsewhere genuine? Check it: /7maps/verify/badge?server=when-i-work.usefulapi.io%2Fmcp.
Add ?theme=light or ?theme=dark to either address (default: follows the visitor's setting). Refreshed every 5 minutes. Open the card · script.
For AI agents
Before connecting, an agent can ask 7Maps for this server's full condition, every tool's risk level and what changed since a person approved it: the road_conditions, watch and route tools on https://7it.co.il/7maps/mcp, paid per call in USDC via x402. About 7Maps.
7Maps by 7IT maps the MCP servers AI agents use, from public listings. Observations with a date, not a judgement. Methodology · How we collect, and opting out.