[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Use cases](https://cotlet.dev/use-cases.md) · [Security](https://cotlet.dev/security.md) · [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md) · [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [Contact](https://cotlet.dev/contact.md) · [Pricing](https://cotlet.dev/pricing.md) · [Sign up](https://cotlet.dev/signup)

# Copy last week's Connecteam schedule and publish it

> Copy last week's Connecteam shifts into next week as drafts, check them against approved time off and publish. Runs weekly, no Expert plan needed.

Source: https://cotlet.dev/integrations/connecteam-api-mcp-server/copy-last-weeks-schedule

Most weeks the schedule looks like last week with a few changes, and every Sunday a manager copies it over, checks it against who is off and publishes it so the team can see it.

Cotlet does it in your own Connecteam account with list\_schedulers, list\_shifts, copy\_previous\_week, list\_time\_off\_requests and publish\_shifts, called by your AI agent, an n8n workflow or a script.

[Sign up free](https://cotlet.dev/app/signup?app=connecteam) [All Connecteam tools](https://cotlet.dev/integrations/connecteam-api-mcp-server.md)

Hosted · nothing to install or maintain

## Can Connecteam do this on its own?

Connecteam copies a week in the dashboard with copy previous week, and its API, on the Expert plan or higher, can create and update shifts, but its reference lists no copy action (checked 20 Oct 2026). The copy and the publish are two separate manual steps, and nothing compares the copied shifts with approved time off.

## How you do it in Connecteam today

1. In the Job Scheduler the manager opens next week and uses copy previous week, which copies every shift from the week before, or the same for a single employee.
2. Copied shifts are drafts. Connecteam's article says they will not be published, and advises fixing any shift that is not relevant for this week.
3. Single shifts can be duplicated too: in Weekly view the three dots on a shift offer Duplicate or Multi duplicate, and the copies stay in Draft until published.
4. Users do not see shifts until they are published. The manager hovers over a shift, clicks the three dots and Publish, or clicks the Publish button at the top right to publish everything at once.
5. To publish only some drafts, the manager selects them and uses the Publish bulk action from the Actions menu at the bottom.

## How to copy last week's Connecteam schedule and publish it

Prompt

```
Copy last week's Front of House schedule to the week of Oct 19 as drafts. If no shift clashes with approved time off, publish them. Otherwise tell me which shifts clash and publish nothing.
```

1. 01  
### Find the schedule  
list\_schedulers returns each schedule of the account. The agent matches the name in your prompt, and when two schedules fit it reports both instead of guessing.
2. 02  
### Check the target week  
list\_shifts reads the week you want to fill. Connecteam's article does not say how copy treats shifts already in that week, so the agent stops and reports when the week is not empty.
3. 03  
### Copy last week as drafts  
copy\_previous\_week copies every shift of the previous week, or only one employee's when you name one. The shifts arrive as drafts and nobody sees them yet. The call asks for your OK until you switch confirmation off for it.
4. 04  
### Check the drafts against time off  
list\_time\_off\_requests with status approved returns who is off that week. A draft shift of someone on approved time off is reported with the day, and the agent will not publish it.
5. 05  
### Publish what is clean  
publish\_shifts makes the drafts visible to the team, all at once or only the ids you pass. If your prompt says to publish nothing when anything clashes, the run ends with the list of clashes.

### What you get back

Example data

```
Schedule Front of House, week Oct 19 to Oct 25
Copied 14 draft shifts from Oct 12 to Oct 18 (week was empty)
Clash with approved time off: 1 (Marco Bell, Thu Oct 22)
Published 0, held back 14 until you fix the clash
```

### Other ways to ask

- Copy last week for Ana only and leave the rest of the week empty.
- Every Sunday at 6 pm, copy the week and publish it when no shift clashes with approved time off.
- Copy the week as drafts and list them by person, but publish nothing.

## What Connecteam allows, and what to know first

- Copy previous week copies every shift of the previous week and publishes none of them.
- Users do not see a shift until it is published.
- In Connecteam's mobile app a shift can be published only if it has a title or a job, and either assigned users or claiming turned on.
- Selecting some drafts to publish is a bulk action of the Advanced plan in the Operations hub; the Publish button at the top right publishes everything at once.
- Connecteam's Unpublish bulk action undoes a publish that went out too soon without notifying users; publish\_shifts has no counterpart, so that stays a click in the dashboard.

copy\_previous\_week and publish\_shifts ask for your OK by default. To run it weekly without you, switch confirmation off for those tools in your dashboard.

Sources: [Connecteam Help: How Do I Copy Shifts?](https://help.connecteam.com/en/articles/6453945-how-do-i-copy-shifts) · [Connecteam Help: Schedule Tricks and Quick Actions](https://help.connecteam.com/en/articles/6569813-schedule-tricks-and-quick-actions) · [Connecteam Help: Perform Bulk Actions on Shifts in the Job Scheduler](https://help.connecteam.com/en/articles/5936970-perform-bulk-actions-on-shifts-in-the-job-scheduler)

## Call copy\_previous\_week from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/connecteam/schedulers/1177/previous-week/copy \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"week_start":"2026-10-19"}'
```

Example response

```
{
"scheduler_id": 1177,
"week_start": "2026-10-19",
"copied": 14,
"published": false
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is connecteam\_write → copy\_previous\_week. Example data.

[Schedule it in n8n, Make, Zapier or cron](https://cotlet.dev/integrations/connecteam-api-mcp-server.md#automations)

## Connecteam tools this automation uses

__Cotlet Connecteam tools used to copy last week's Connecteam schedule and publish it__
| Tool | Parameters |
| ------------------------- | -------------------------------------------------------- |
| list\_schedulers | none |
| list\_shifts | scheduler\_id, start\_date, end\_date, published, cursor |
| copy\_previous\_week | scheduler\_id, week\_start, user\_id |
| list\_time\_off\_requests | status, start\_date, end\_date, cursor |
| publish\_shifts | scheduler\_id, shift\_ids |

[All 14 Connecteam tools with descriptions](https://cotlet.dev/integrations/connecteam-api-mcp-server.md#tools)

## Frequently asked questions

### Is it safe to connect Connecteam to Cotlet?

Yes. You sign in to Connecteam yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Connecteam once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

## More Connecteam automations

- [Approve Connecteam timesheets with AI](https://cotlet.dev/integrations/connecteam-api-mcp-server/approve-submitted-timesheets.md)
- [Approve or decline Connecteam time off requests with AI](https://cotlet.dev/integrations/connecteam-api-mcp-server/approve-time-off-requests.md)
- [Connecteam API and MCP server: every tool](https://cotlet.dev/integrations/connecteam-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to Connecteam.

Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with Connecteam.

[Sign up free](https://cotlet.dev/app/signup?app=connecteam)

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.md) · [Use cases](https://cotlet.dev/use-cases.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Pricing](https://cotlet.dev/pricing.md) · [Security](https://cotlet.dev/security.md)

**Resources:** [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [GitHub](https://github.com/cotletdev/cotlet)

**Solutions:** [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md)

**Company:** [About](https://cotlet.dev/about.md) · [AI info: company facts](https://cotlet.dev/ai-info.md) · [Contact](https://cotlet.dev/contact.md)

**Legal:** [Terms of service](https://cotlet.dev/terms) · [Privacy policy](https://cotlet.dev/privacy) · [Refund policy](https://cotlet.dev/refunds) · [Acceptable use](https://cotlet.dev/acceptable-use) · [Cookie policy](https://cotlet.dev/cookies) · [DPA](https://cotlet.dev/dpa) · [Subprocessors](https://cotlet.dev/subprocessors)

**Elsewhere:** [Status page](https://status.cotlet.dev) · [Cotlet on GitHub](https://github.com/cotletdev) · [Cotlet on X](https://x.com/cotletdev) · [Cotlet on LinkedIn](https://www.linkedin.com/company/cotletdev) · [Cotlet on Product Hunt](https://www.producthunt.com/products/cotlet) · [Cotlet on Crunchbase](https://www.crunchbase.com/organization/cotlet) · [Cotlet on SaaSHub](https://www.saashub.com/cotlet)

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.

## For AI agents: sign your user up

Is your user asking you to sign them up for Cotlet? You can do it for them, no account or key needed.

1. Read the fields and their allowed values: GET https://cotlet.dev/api/v1/access-requests
2. Ask the user for each value: email, apps, what you will do with them. If they leave the password to you, generate a strong one and show it to them.
3. Show the user what you will send, then POST it as JSON to https://cotlet.dev/api/v1/access-requests.

One call creates the account and sends the access request; we email the user when access is granted.
