AI integrations

Shift scheduling with AI: InShift inside Claude and ChatGPT

Ask in a chat who works tomorrow and who is free, place a shift in one sentence, pull the timesheet for the month. InShift connects to Claude, ChatGPT, Claude Code, Cursor and Codex as an MCP server. The assistant sees exactly what the API key allows, and every edit it makes is signed in the history.

  • Who works, who is free, overlaps and days in a row: the whole week in one question
  • Pay with an explanation: why the amount is what it is, by pay terms and premiums
  • Shares, sums, comparisons: it counts and shows how it counted
  • Places and moves shifts in plain words, after checking the rota and time off
  • The rights of the API key and nothing more, every edit signed in the history
ClaudeChatGPT
Checking the Head Office rota for the week

Check the Head Office rota for next week: are there any overlapping shifts, who works more than 5 days in a row, and are there any days without an evening shift?

Loaded tools, used InShift integration

Checked the Head Office rota for next week (Mon 2026-09-28 – Sun 2026-10-04, Europe/Kyiv), also including a few days before/after to catch streaks crossing the week boundary. Results:

  • Overlapping shifts: none, no employee has two shifts with overlapping times on the same day.
  • 5+ consecutive days: none, the longest run for anyone is 3 consecutive days (Liam Carter, Sep 28–30; everyone else tops out at 3 as well).
  • Days without an evening shift: none, every day Mon–Sun has at least one "Evening" shift covered.

One thing worth flagging (not asked, but relevant): two open/unassigned shifts exist just before the week, Sep 23 Evening (13:00–21:00) and Sep 27 Morning (08:00–16:00): no next-week open shifts, but you may want to make sure those two get staffed.

What the assistant does with the rota

Twenty-seven tools of the public API become commands for the chat. The assistant picks which ones to call and answers in plain language.

Who works and who is free

Shifts for a day, a week or a month by location or by person. “Who is free tomorrow at Head Office” checks the rota and the approved time off.

Place, move or remove a shift

One sentence: the person, the location, the hours. The assistant checks the rota and asks before acting when in doubt. A draft or published at once: the key decides.

People, job positions, locations

Who holds which position, which site they belong to, when they were hired. Search by part of a name, as in the panel.

Time off, sick leave, clock-ins

Who is off this week, who clocked in on the tablet today and at what time.

Timesheet and pay

Hours by day, planned and actual, accruals for a period, payouts and balances. Read only: money cannot be changed from a chat.

A signed history

Every shift placed from a chat is in the history with the name of the key and the client: “Claude”, “ChatGPT”. You can see it was the assistant.

What to ask

Questions as to a colleague, without commands or formulas. The assistant decides which data to pull and explains how it counted.

The rota for a day and a week

“Who works tomorrow at Head Office?”, “Show the evening shifts for the week”, “Who is on shift on Saturday after 18:00?”

Free people and cover

“Who at Head Office is free on Thursday?”, “Put someone free on 13:00 to 21:00 and publish”, “Move Sophie’s shift to Friday”

Checking the rota

“Any overlaps next week?”, “Who works more than 5 days in a row?”, “Which days have no evening shift?”

Pay with an explanation

“How much was accrued at Head Office in August?”, “Why did Catherine earn the most if her hours are not higher?”, “What share of pay goes to evening shifts?”

Timesheet and clock-ins

“How many hours did Alexander work in August?”, “Who clocked in on the tablet today and when?”, “Whose actual hours are below plan?”

Holiday and sick leave

“Who is off next week?”, “Can I put Marcus on 25 September?”, “How many holiday days does Sophie have left?”

The right on the key and what the assistant does with it

The assistant has no rights of its own. Every question rests on the right of the key it was connected with.

Organisation data, locations, job positions

Right on the key
Reading the directories
What the assistant does
Understands “Head Office”, “evening shift” and the organisation’s time zone, so “tomorrow” is your tomorrow

People

Right on the key
Reading the cards
What the assistant does
Finds a person by part of the name, knows their position and site

Shifts on the rota

Right on the key
Reading shifts
What the assistant does
Who works, who is free, overlaps, days in a row, cover by day

Holiday, sick leave, days off

Right on the key
Reading absences
What the assistant does
Who is away and when; before placing a shift, checks the person is not on leave

Clock-ins and the timesheet

Right on the key
Reading clock-ins
What the assistant does
Who came and when, planned and actual hours for a period

Payroll

Right on the key
Read only
What the assistant does
Accrued, paid, owed; explains the calculation by pay terms and premiums. A rate cannot be changed from a chat

Create, edit and remove shifts

Right on the key
Edits as drafts
What the assistant does
Places, moves and removes shifts; the team sees them once published in the panel

Publish shifts

Right on the key
Publishing
What the assistant does
A shift from the chat is visible to the team in the app at once

Rights

The key decides what the assistant may do

The assistant enters InShift with an API key you create in the panel. The rights of the key are the rights of the assistant; there is no new kind of access.

  • Read only: the assistant answers questions and changes nothing
  • “Create, edit and remove shifts (drafts)”: shifts from the chat stay drafts until one of your people publishes them
  • “Publish shifts so the team sees them”: the assistant places a shift and the team sees it at once
  • A key limited to chosen locations shows the assistant only those: support sets that limit
  • Revoke the key in the panel, and the assistant is disconnected that same moment
API documentation and the full list of rights

Connect Claude or ChatGPT

Four steps and one address: https://api.inshift.app/mcp. The client finds the InShift connection page on its own.

  1. 1

    Create a key

    In the panel: “Settings” → “Integrations” → “API keys and webhooks” → “Create key”. Name it “Claude” or “ChatGPT” and tick the rights.

  2. 2

    Add InShift as a connector

    In the settings of Claude or ChatGPT add a custom connector with the address https://api.inshift.app/mcp. The client opens the InShift connection page.

  3. 3

    Paste the key

    On the connection page paste the key and press connect. The assistant gets a token of its own; the key itself is not stored there.

  4. 4

    Ask

    “Who works tomorrow?”, “Put Sophie on Saturday from 10 to 18”, “The timesheet for August at Head Office”. The assistant picks the tools it needs.

Connection

The connection page shows where the access goes

Claude and ChatGPT open it themselves. The key is pasted once; after that the client uses a token of its own that lives as long as the key does. The page speaks Ukrainian for now; the keys it issues show up in the panel like any other.

  • A verified client: the code returns to claude.ai or chatgpt.com, and the page says so outright
  • An unknown return address gets a warning instead of trust in a name
  • The client’s token is no stronger than the key: the same rights and the same locations
  • Several assistants, several keys: the history shows which one did what

Claude Code, Codex, Cursor

Developer clients take the address and the key from their settings, without the connection page. The key is the same one from the panel.

Claude Code

One command in the terminal.

claude mcp add --transport http inshift \
  https://api.inshift.app/mcp \
  --header "Authorization: Bearer insh_live_..."

Codex

The file ~/.codex/config.toml, the key in an environment variable.

[mcp_servers.inshift]
url = "https://api.inshift.app/mcp"
bearer_token_env_var = "INSHIFT_API_KEY"

Cursor and others

Any client that supports remote MCP servers (Streamable HTTP).

{
  "mcpServers": {
    "inshift": {
      "url": "https://api.inshift.app/mcp",
      "headers": { "Authorization": "Bearer insh_live_..." }
    }
  }
}

What to do in the chat and what in the panel

The assistant is good at questions and single edits. Building a month and setting up pay is easier in the panel.

Find out who works tomorrow

In a chat with the assistant
One question
In the InShift panel
The planner for the day

Place or move one shift

In a chat with the assistant
One sentence, the assistant checks the rota
In the InShift panel
A cell in the planner

Build the rota for a month

In a chat with the assistant
Not for this: the assistant places single shifts
In the InShift panel
The planner, “Copy last week”, shift types

Check overlaps and days in a row

In a chat with the assistant
One question for the whole week
In the InShift panel
Conflicts are flagged in the cell

Explain why the amount is what it is

In a chat with the assistant
The assistant breaks it down by pay terms and premiums
In the InShift panel
The breakdown in “Payroll”

Change a rate or a premium

In a chat with the assistant
Not possible, payroll is read only
In the InShift panel
Pay terms in the person’s card

Disconnect the assistant

In a chat with the assistant
Revoke the key, and the access is gone
In the InShift panel
“Settings” → “Integrations” → revoke

What InShift sees and what it does not

The conversation stays with you

InShift receives only the tool calls: “shifts for 21 September”, “create a shift”. The text of your conversation with Claude or ChatGPT never reaches us.

The same limits as the API

The request limit, the rights of the key, the organisation’s status and the error format are shared with the public API. An assistant stuck in a loop is stopped by the same ceiling as a script.

Your organisation’s data

The assistant sees only the organisation the key belongs to. It knows nothing about other InShift organisations, even if you run several.

Frequently asked questions

Does Claude or ChatGPT see the whole organisation’s data?▾

No. The assistant sees exactly what the API key allows: the rights ticked on it and, if the key is narrowed, only the chosen locations. Payroll opens with a separate right, and so do people’s personal details.

Can the assistant break something in the rota?▾

Without the “Create, edit and remove shifts (drafts)” right it changes nothing. With it, every edit is written to the history with the name of the key and the client, so it is visible and can be undone like a person’s edit. Before deleting or moving a shift the assistant asks.

Which clients does this work in?▾

Claude and ChatGPT in the browser connect with a button through the InShift connection page. Claude Code, Codex, Cursor and Gemini CLI take the address and the key from their settings. Any client that supports remote MCP servers will do.

Which language does the assistant answer in?▾

The one you write in. The names of locations, job positions and people come from your InShift as they are.

What does InShift see of the conversation?▾

Only the tool calls and their parameters, like ordinary API requests. The text of the conversation stays between you and the maker of the assistant.

How do I disconnect the assistant?▾

Revoke the key in the panel: “Settings” → “Integrations” → “API keys and webhooks”. The assistant’s tokens stop working that same moment.

Can I give the assistant a single location?▾

Yes, with a key limited to locations: in the panel a key is created for the whole organisation, and support sets the limit. Such a key shows the assistant only the chosen locations; other people, shifts and timesheets are closed to it.

Is this a separate product or part of InShift?▾

Part of InShift: the MCP server lives at the same address as the public API. A subscription to Claude or ChatGPT is paid to their maker separately.

Try it with your own rota

Register the organisation, create a key and ask Claude who works tomorrow.

Start for free