[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)

# Publish the schedule

> Publish the schedule of a unit or section up to a date. Inputs, cURL, Python and Node.js examples and an example response.

Source: https://cotlet.dev/docs/api/quinyx/publish_schedule

Docs sections: [Get started](https://cotlet.dev/docs.md) · [REST API](https://cotlet.dev/docs/api.md) · [MCP](https://cotlet.dev/docs/mcp.md) · [SDKs & CLI](https://cotlet.dev/docs/sdks.md) · [Integrations](https://cotlet.dev/docs/integrations.md)

Publish the schedule of a unit or section up to a date.

Quinyx API: https://cotlet.dev/docs/api/quinyx.md

`POST https://cotlet.dev/api/v1/quinyx/groups/{group_id}/schedule/publish`

Access: write. Confirm: waits for the user's OK before it runs.

Publishes up to the unit's daybreak on that date and sends a Qmail to the employees who have an active role on the group, unless Pause notifications is on. Units with the Schedule approval flow send an approval request to the approver instead, and there the publish date cannot be reversed. A section can be published further out than its unit. By default you confirm each call; you can switch that off for this tool.

## Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `group_id` | string | yes | Unit or section id from list_groups. |
| `publish_until` | string | yes | Last day to publish, YYYY-MM-DD. An earlier date than the current one unpublishes the days after it. |

## Request

**cURL**

```bash
curl -X POST https://cotlet.dev/api/v1/quinyx/groups/group_8c41d2/schedule/publish \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"publish_until":"publish until"}'
```

**Python**

```python
result = client.call("quinyx", "publish_schedule", {"group_id":"group_8c41d2","publish_until":"publish until"})
```

**Node.js**

```js
const result = await cotlet.call('quinyx', 'publish_schedule', {"group_id":"group_8c41d2","publish_until":"publish until"});
```

**CLI**

```bash
cotlet call quinyx publish_schedule --data '{"group_id":"group_8c41d2","publish_until":"publish until"}'
```

## Example response

```json
{
  "group_id": "1042",
  "name": "Harbor Cafe",
  "published_until": "2026-11-12",
  "previous_published_until": "2026-11-05",
  "employees_notified": 14
}
```

Previous: [Attest worked hours](https://cotlet.dev/docs/api/quinyx/attest_hours.md)

---

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.
