## Overview

**Scheduled messages** let you prepare now an outbound message that will be sent later in the same
conversation. The module supports one message, sequences and recurrences in the selected timezone. It
uses the same content contract and channel checks as immediate sending.

This feature is different from:

- **Campaigns**, which distribute content to an audience or multiple contacts.
- **Follow-up**, which automates a follow-up cadence and its conditions.
- **Calendar**, which manages appointments. A scheduled message does not create or change one.

## Prerequisites

- The **Scheduled messages** feature enabled for the account.
- An existing conversation and a channel capable of carrying the content.
- Agents create and manage their own schedules. Managing someone else's schedules or changing
  account/inbox policy requires an administrator or the **Manage scheduled messages** permission.
- An administrator must complete the account policy before the first publication.

## Step by step

1. Open a conversation and compose the message as usual.
2. Beside **Send**, in the conversation header, or in the right-side panel, open the calendar icon and
   choose **Schedule once**, **Schedule a sequence**, or **Schedule recurring messages**. The primary
   **Send** click still sends immediately.
3. Enter a name and date, then search for the timezone by city. For each message, write text, drag in
   media/files, or open the interactive and template composer available for the channel. For a
   sequence, order the items and set each interval.
4. For recurrence, choose the frequency and an ending: never, until a date or after a count. For a
   special pattern, open **Advanced settings** and start from one of the explained examples before
   editing the rule.
5. Review the preview. It shows blockers, effective policies, channel capability and the next five
   occurrences.
6. Confirm. The conversation draft is cleared only after creation succeeds.
7. Open **Scheduled messages** in the main navigation to manage everything. For the current
   conversation, use the **Scheduled messages** tray in the side panel.

> Suggested screenshot: split send button, preview dialog and global module with the detail open.

## Settings & options

In **Scheduled messages → Settings**, select **Account defaults** or **A specific inbox**. On a new
account, choose **Apply recommended setup** to fill a safe baseline, then review only the exceptions.
Policies are grouped by goal and searchable by name. For each Inbox policy, choose **Use account
default** or **Customize for this inbox**. Counters show customized, inherited, and pending policies
before you save.

Policies cover inbound replies, resolved conversations, misfires, failure retries, resume behavior,
quiet hours, overlap, Inbox changes, sender, variables, daylight-saving time and
materialization/recovery limits. The source of every value remains visible. If another operator saves
first, reload the current version before applying your change again.

From schedule detail you can pause, resume, cancel, archive, retry or reconcile an uncertain result.
For an occurrence, you can reschedule, skip, send now or retry. Always confirm the scope: this
occurrence, this and future ones, or all future ones.

### Media and interactive content

Inside the scheduling dialog, choose **Choose from library** to reuse account media, **Upload from
device** for a new file, or drag images, video, audio, and documents onto the message. Options follow
the conversation: WhatsApp Cloud shows **Cloud templates and interactives**; WhatsApp Web shows
**WhatsApp Web interactive**; a Coexistence conversation shows both composers, clearly separated.
Other channels do not receive incompatible actions. Content templates also open their native
composer when the channel supports them. After you apply content, preview keeps its type and body
visible and offers **Edit** or **Replace** in the native composer without losing the name, date,
timezone, recurrence, or policies. In a sequence, **Duplicate message** copies the complete content; technical
details stay collapsed by default.

## Use cases

- Confirm a follow-up promised to the customer for tomorrow.
- Send a short instruction sequence in the same support conversation.
- Repeat a weekly reminder without creating a campaign.
- Schedule an approved template for a WhatsApp message outside the session window.

## Tips, limits & best practices

- The target is always **one existing conversation**; audience, segment and multi-contact targets are
  rejected.
- Up to 500 occurrences per schedule are materialized within a 30-day horizon. Later occurrences are
  created progressively.
- Attachments remain linked to the schedule. Do not delete the source file while future sends exist.
- The channel is checked during preview and again when due. Disconnects, opt-outs, closed windows,
  unapproved templates or removed sender access may block a later send.
- Notifications are exception-only: failures or **Needs attention**. Normal occurrences do not create
  an alert each time.
- An uncertain provider effect is never retried blindly. Use **Reconcile** after checking the provider.

## Troubleshooting

- **The schedule option is missing**: check the account feature and your permission.
- **Preview reports an incomplete policy**: an administrator must complete the account setting or the
  missing value at the indicated scope.
- **The channel is blocked**: open the blocker details and correct connection, window, template,
  attachment, opt-out or sender access.
- **Saving or an action returns a conflict**: another operator or job changed the record. Reload its
  detail and repeat the intention against the current version.
- **An occurrence Needs attention**: verify the provider outcome, then choose
  **Reconcile → Sent, Failed or Canceled**.

## See also

- [Scheduled messages API and MCP](/hc/ajuda/articles/api-developers-mensagens-agendadas-api-mcp-en)
- [Delivering reminders through WhatsApp and email](/hc/ajuda/articles/calendar-scheduling-entrega-por-whatsapp-e-email-en)
- [API reference (Swagger/OpenAPI)](/hc/ajuda/articles/api-developers-swagger-reference-en)