Integration · Payroll & HR
Connect Claude & ChatGPT to When I Work
Ask your AI who is working tomorrow, who can take an open shift or which time-off requests are waiting, and get the answer from When I Work. It can assign and release shifts, accept or deny time off, approve shift swaps, clock employees in and out, and read and correct timesheet entries.
Free plan, no credit card. Takes about a minute.
Try asking
“Who is working at the downtown location tomorrow?”
The AI lists tomorrow's shifts for that location with the assigned employees.
“Who can take the open Saturday bartender shift?”
It lists the employees eligible for the open shift, and can assign the one you pick.
“Which time-off requests are waiting for me this month?”
It lists time-off requests in the date range and can accept or deny the one you choose.
What your AI can do
Shifts and scheduling
List shifts, open shifts and schedule notes, see eligible employees and availability, assign or release shifts, and handle swap and drop requests.
Time off
List, create, accept and deny time-off requests, with the account's time-off types.
Timesheets and staff
Clock employees in and out, read and correct timesheet entries, and look up, add and update employees, positions and job sites.
“Who is clocked in right now?”
It lists open timesheet entries for people who are currently clocked in.
“Emma forgot to clock out yesterday. Set her end time to 17:00.”
It finds her timesheet entry and updates the end time.
“Approve Lars's shift swap for Friday.”
It finds the swap request and sets it to approved.
113 tools for When I Work
These tools are switched on when you connect. You can switch any of them off, or require your approval before it runs.
assign_open_shiftChanges dataAssign one or more employees (`user_ids`) to an open shift by `shift_id`.clock_inChanges dataClock an employee in; `id` is the user id. Optional `shift_id`, `location_id`, `position_id`, `site_id` and notes.clock_outChanges dataClock an employee out; `id` is the user id. Optional notes and cash tips.create_accountChanges dataCreate a new account. API summary: Create Account.create_addressChanges dataCreate a new address. API summary: Create Schedule (Location).create_alertChanges dataCreate a new alert. API summary: Update User Alert Settings.create_annotationChanges dataCreate a new annotation. API summary: Create Annotation.create_availabilityeventChanges dataCreate a new availabilityevent. Required: type or start time. API summary: Create Availability Event.create_availabilityevent_exceptionChanges dataCreate a new exception for a availabilityevent. Required: type or start time. API summary: Create Availability Event Exception.create_blockChanges dataCreate a new block. API summary: Create Shift Template (Block).create_bulkupdateChanges dataCreate a new bulkupdate. API summary: Create A Batch of Users.create_inviteVisible to othersCreate a new invite. Has effects visible outside this system. API summary: Invite users.create_positionChanges dataCreate a new position. API summary: Create Position.create_profileChanges dataCreate a new profile. API summary: Update User Profile.create_requesttypeChanges dataCreate a new requesttype. API summary: Create or update a Collection of request types.create_shiftChanges dataCreate a new shift. API summary: Create Shift.create_shift_breakChanges dataCreate a new shift break. Required: time id. API summary: Create Shift Break.create_siteChanges dataCreate a new site. API summary: Create Site.create_swapChanges dataCreate a new swap. API summary: Create a new shift request.create_templateChanges dataCreate a new template. API summary: Create Schedule Template.create_time_entryChanges dataAdd a timesheet entry for `user_id` with `start_time` and `end_time`, plus optional location, position, shift, notes and approval.create_time_off_requestChanges dataCreate a time-off request for `user_id` with `start_time`, `end_time` and `type_id` (from list_time_off_types), plus paid `hours` if relevant.create_userChanges dataAdd an employee with name, email, phone, role, positions, locations and hourly rate. An invitation email is sent unless `invite` is false.delete_addressDeletesPermanently delete a address by address id. Destructive action; may require approval. API summary: Delete Schedule (Location).delete_annotationDeletesPermanently delete a annotation by annotation id. Destructive action; may require approval. API summary: Delete Annotation.delete_availabilityeventDeletesPermanently delete a availabilityevent by availabilityevent id. Destructive action; may require approval. API summary: Delete Availability Event.delete_blockDeletesPermanently delete a block by block id. Destructive action; may require approval. API summary: Delete Shift Template (Block).delete_openshiftapprovalrequestDeletesPermanently delete a openshiftapprovalrequest by request id. Destructive action; may require approval. API summary: Delete an OpenShift Approval Request.delete_openshiftapprovarequest_user_requestsMoves moneyPermanently delete a user request by request id. Financial or irreversible action; may require approval. API summary: Cancel an individual's request for an OpenShift.delete_positionDeletesPermanently delete a position by position id. Destructive action; may require approval. API summary: Delete Position.delete_requestDeletesPermanently delete a request by request id. Destructive action; may require approval. API summary: Delete Time Off Request.delete_requesttypeDeletesPermanently delete a requesttype by requesttype id. Destructive action; may require approval. API summary: Delete Time Off Request Type.delete_shiftDeletesPermanently delete a shift by `shift_id`. Optional `message` is emailed to the assigned employee; `chain` also deletes later shifts in a repeating series.delete_shift_breakDeletesPermanently delete a shift break by shift break id. Destructive action; may require approval. API summary: Delete Shift Break.delete_shiftsMoves moneyPermanently delete a shift. Financial or irreversible action; may require approval. API summary: Bulk Delete Shifts.delete_siteDeletesPermanently delete a site by site id. Destructive action; may require approval. API summary: Delete Site.delete_swapDeletesPermanently delete a swap by swap id. Destructive action; may require approval. API summary: Delete the given shift request.delete_templateDeletesPermanently delete a template by template id. Destructive action; may require approval. API summary: Delete Schedule Template.delete_timeDeletesPermanently delete a time by time id. Destructive action; may require approval. API summary: Delete Time.delete_userDeletesPermanently delete a user by user id. Destructive action; may require approval. API summary: Delete User.get_accountGet the connected When I Work account's details and settings.get_addressGet one address by address id. API summary: Get Schedule (Location).get_annotationGet one annotation by annotation id. API summary: Get Annotation.get_availabilityeventGet one availabilityevent by availabilityevent id. API summary: Get Availability Event.get_blockGet one block by block id. API summary: Get Shift Template (Block).get_importGet one import by import id. API summary: Get Import.get_openshiftapprovalrequestGet one openshiftapprovalrequest by request id. API summary: Get specific OpenShift Approval Request.get_payrollGet one payroll by payroll id. API summary: Get Payroll.get_positionGet one position by position id. API summary: Get Position.get_requesttypeGet one requesttype by requesttype id. API summary: Get Time Off Request Type.get_shiftGet one shift by `shift_id`.get_shift_breakGet one shift break by shift break id. API summary: Get Shift Break.get_siteGet one site by site id. API summary: Get Site.get_swapGet one swap by swap id. API summary: Get the details of a specific shift request.get_templateGet one template by template id. API summary: Get Schedule Template.get_time_entryGet one timesheet entry by `time_id`.get_time_off_requestGet one time-off request by `request_id`.get_timezoneGet one timezone by timezone id. API summary: Get Timezone.get_userGet one employee by `user_id`, with contact details, positions and schedules.list_account_adminsList admins for a account.list_auto_assignsList auto assigns. Optional filters: start, end, ids, location, auto schedule max hours or auto schedule unavailability. API summary: List Auto Scheduled shifts.list_availabilityList employees' availability and unavailability entries up to `end`, optionally for one `user_id`.list_blocksList blocks. API summary: List Shift Templates (Blocks).list_eligible_usersList employees eligible to take an open shift, by shift `id`, `position_id` or `location_id`.list_job_sitesList job sites that shifts and clock-ins can be tagged with.list_noticesList notices. Optional filters: ignore dismissed at or range in days.list_openshiftapprovalrequestsList openshiftapprovalrequests. Optional filters: start or end. Results are paginated. API summary: List OpenShift Approval Requests.list_payroll_statsList stats for a payroll. Optional filters: map objects. API summary: Get Payroll Statistics for current hours.list_payrollsList payrolls. Optional filters: start or end.list_positionsList the account's positions (job roles), used when scheduling shifts.list_profilesList profiles. API summary: Get User Profile.list_schedule_notesList schedule annotations (announcements, closures, no-time-off days) between `start_date` and `end_date`.list_scheduled_breaksList scheduled breaks. Optional filters: start time, end time, shift id, user id or location id. Results are paginated. API summary: List Scheduled Shift Breaks.list_schedulesList schedules (locations) in the account.list_shift_breaksList shift breaks. Optional filters: time, start time, end time, shift id, time id or location id. Results are paginated.list_shift_historiesList histories for a shift. Optional filters: include deleted. API summary: Fetch shift history.list_shift_swapsList shift swap and drop requests, filtered by date range, `status`, `type`, `user_id` or `shift_id`.list_shift_swapusersList swapusers for a shift. Optional filters: id or ids only. Results are paginated. API summary: List swap users.list_shiftsList shifts up to `end` (defaults to 3 days ahead), filtered by `user_id` or `location_id`; set `include_open` or `unpublished` to include open or unpublished shifts.list_statesList states. Optional filters: user id, location id, site id, shift id, device type or latitude. API summary: Punch State.list_templatesList templates. API summary: List Schedule Templates.list_time_entriesList timesheet entries up to `end`, filtered by `user_id`; set `only_open` for people currently clocked in.list_time_off_requestsList time-off requests between `start` and `end` (yyyy-mm-dd), filtered by `user_id`, `location_id`, `status` or `type`.list_time_off_typesList the account's time-off request types (e.g. personal, sick, holiday).list_timezonesList timezones.search_usersList or search employees by `search` text, optionally filtered by `location_id` or including pending and deleted users.send_shiftVisible to othersNotify a shift. Has effects visible outside this system. API summary: Notify shifts.submit_importVisible to othersPreview a import (import id). Has effects visible outside this system. API summary: Preview Import.submit_import_finalizeVisible to othersFinalize a import (import id). Has effects visible outside this system. API summary: Finalize Import.submit_shiftVisible to othersPublish a shift. Has effects visible outside this system. API summary: Publish Shifts.submit_shift_unpublishVisible to othersUnpublish a shift. Has effects visible outside this system. API summary: Unpublish Shifts.unassign_shiftsChanges dataRelease the given `shift_ids` from their assigned employees, turning them into open shifts.update_accountChanges dataUpdate an existing account identified by account id. API summary: Update Account.update_account_settingsChanges dataCreate a new account. API summary: Update Account Settings.update_addressChanges dataUpdate an existing address identified by address id. API summary: Update Schedule (Location).update_annotationChanges dataUpdate an existing annotation identified by annotation id. API summary: Update Annotation.update_availabilityeventChanges dataUpdate an existing availabilityevent identified by availabilityevent id. API summary: Update Availability Event.update_avatarChanges dataUpdate an existing avatar identified by avatar id. API summary: Create/Update user avatar.update_blockChanges dataUpdate an existing block identified by block id. API summary: Update Shift Template (block).update_bulksVisible to othersUpdate an existing bulk. Has effects visible outside this system. API summary: Bulk Update Shifts.update_inviteVisible to othersUpdate an existing invite identified by invite id. Has effects visible outside this system. API summary: Invite single user.update_notifyVisible to othersUpdate an existing notify identified by notify id. Has effects visible outside this system. API summary: Notify single shift.update_openshiftapprovalrequestChanges dataUpdate an existing openshiftapprovalrequest identified by request id. API summary: Update an OpenShift Approval Request.update_payrollChanges dataUpdate an existing payroll identified by payroll id. API summary: Update Payroll.update_positionChanges dataUpdate an existing position identified by position id. API summary: Update Position.update_shiftChanges dataUpdate an existing shift identified by shift id. API summary: Update Shift.update_shift_breakChanges dataUpdate an existing shift break identified by shift break id. Only the fields you pass are changed. API summary: Update Shift Break.update_shift_swapChanges dataUpdate a shift swap or drop request by `swap_id`, e.g. set `status` to 1 to approve or 2 to decline.update_siteChanges dataUpdate an existing site identified by site id. API summary: Update Site.update_templateChanges dataUpdate an existing template identified by template id. API summary: Update Schedule Template.update_time_entryChanges dataUpdate a timesheet entry by `time_id`, e.g. start or end time, notes or `is_approved`.update_time_off_requestChanges dataUpdate a time-off request by `request_id`; set `status` to 2 to accept or 4 to deny, or change times and hours.update_userChanges dataUpdate an employee by `user_id`, e.g. name, contact details, role, positions, locations, max hours or hourly rate.
Set up in three steps
- 1
Pick the app
Create a free HeyMyApps account and choose When I Work from the app list.
- 2
Paste your key
Enter three things: the email and password of a When I Work user, and a When I Work developer key. API access depends on your When I Work plan: an admin must email When I Work to request API access and receive a private developer key. The AI acts with that user's permissions.
- 3
Add the link to your AI
You get a personal MCP link. Add it to Claude, ChatGPT or Cursor:
- Click your name, then Settings › Connectors › Add custom connector.
- Paste your link as the Remote MCP server URL.
- Switch it on from the + menu in a chat.
Questions
What can the AI do in When I Work?
The AI can read shifts, schedules, schedule notes, availability, positions, job sites, time-off requests, shift swaps and timesheet entries. It can assign and release shifts, delete a shift, create and update time-off requests and timesheet entries, handle swap requests, clock employees in and out, and add and update employees.
Does the AI see my When I Work credentials?
No. Your When I Work email, password and developer key are encrypted at rest and never shown to the AI. After you save them, they are not shown again, not even to you. The AI only sees the results of the tools it calls.
Can I control what the AI is allowed to do?
Yes. You choose which tools are switched on, so you can start with schedules and timesheets as read-only. Deleting a shift is permanent and can email the assigned employee, and adding an employee sends an invitation email by default. These and other changes can require your approval before they run. Every tool call is logged.
Does it work with ChatGPT?
Yes. In ChatGPT go to Settings › Apps & Connectors › Advanced and turn on Developer mode, then add your HeyMyApps link. Developer mode needs a paid ChatGPT plan: Plus, Pro, Business or Enterprise. The same link also works in Claude (Settings › Connectors › Add custom connector), Cursor and other MCP clients.
What does it cost?
HeyMyApps has a free plan with no credit card required. Paid plans bill per completed task. You also need your own When I Work account with API access.
Why does When I Work need a login and a developer key?
When I Work gives API access through a private developer key, which an admin requests by email from When I Work. The API then signs in as a When I Work user with their email and password and acts with that user's permissions. A user with limited permissions limits what the AI can do.
Related integrations
Let your AI work in When I Work today.
Start free. Your key stays encrypted, and you decide what the AI may do.
Connect When I Work freeHeyMyApps is not affiliated with When I Work. Product names are trademarks of their owners.






