> ## Documentation Index
> Fetch the complete documentation index at: https://docs.automate.ax/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Automate.ax automations are TypeScript programs.
> Use Bun for installation and command examples.
> Use Automate.ax for the product name and automate.ax for the package, CLI, and domain.
> Treat documented public APIs as current; do not invent transitional or deprecated names.

# Schedule message

> Schedule a Slack message for future delivery.

`scheduleMessage` asks Slack to deliver a message later, up to 120 days in the
future. It can schedule a top-level message or a thread reply.

## Example

```ts automations/schedule-slack-message.automation.ts theme={null}
import { automation } from "automate.ax"
import { scheduleMessage } from "automate.ax/slack"

export default automation("Schedule Slack reminder", () => {
  scheduleMessage({
    conversation: "C01234567",
    postAt: new Date("2026-08-12T16:00:00Z"),
    text: "Time for the weekly review.",
  })
})
```

## Inputs

| Input                           | Type                                             | Required     | Description                                                                               |
| ------------------------------- | ------------------------------------------------ | ------------ | ----------------------------------------------------------------------------------------- |
| `conversation` / `channel`      | `string`                                         | Yes          | Destination aliases; if both are present, they must match.                                |
| `postAt`                        | `Date \| number`                                 | Yes          | Delivery time as a Date or Unix timestamp in seconds. Dates are floored to whole seconds. |
| `threadTimestamp`               | `string`                                         | No           | Parent timestamp for a scheduled thread reply.                                            |
| `text`, `blocks`, `attachments` | Slack message content                            | At least one | Message content.                                                                          |
| `unfurlLinks`, `unfurlMedia`    | `boolean`                                        | No           | Slack unfurl behavior.                                                                    |
| `account`                       | `string \| IntegrationAccountReference<"slack">` | No           | Slack binding.                                                                            |

## Output

Returns `conversationId`, `postAt`, `scheduledMessageId`, and Slack's optional
provider-native `message` preview. Save `scheduledMessageId` with
`conversationId`; [Cancel scheduled message](/reference/integrations/slack/actions/cancel-scheduled-message)
needs both.
