---
ref: tool:slack/schedule-message
name: Schedule a message
company: company:slack
workflows: []
access: [mcp, cli, api]
tags: [capability:route-alerts, category:messaging, has:api, has:cli, has:mcp]
docs: https://docs.slack.dev/reference/methods/chat.scheduleMessage
updated: 2026-09-27
---

# Schedule a message

Schedules a message to post to a channel at a future Unix time and returns its scheduled message ID.

Needs the `chat:write` scope. `post_at` can be at most 120 days ahead.

## Set up

Use the first option your agent supports.

### MCP (official, remote)

Add this server to your agent's MCP settings, then sign in when asked.

```json
{ "mcpServers": { "slack": { "url": "https://mcp.slack.com/mcp" } } }
```

Call the MCP tool `slack_schedule_message`.

Server URL: https://mcp.slack.com/mcp

### CLI (official)

Install the command, then confirm it runs.

```sh
curl -fsSL https://downloads.slack-edge.com/slack-cli/install.sh | bash
slack --version
```

Run `slack api chat.scheduleMessage`.

Set `$SLACK_BOT_TOKEN` in your environment first (get a key: https://api.slack.com/apps).

### API (official)

- Base URL: https://slack.com/api
- Endpoint: `POST /chat.scheduleMessage`
- Auth: send the header `Authorization: Bearer $SLACK_BOT_TOKEN`
- Get a key: https://api.slack.com/apps
- Docs: https://docs.slack.dev/apis/web-api/

Before doing anything else, make one read-only call to confirm access.

## Rules

- Ask the user before anything that sends messages, costs money, or changes data.
- Never print API keys.
