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

# Auto Messages

> Post a message on a repeating schedule.

## Overview

Set a channel, an interval, and a message — confine handles the rest, reposting on schedule until you remove it. Useful for rule reminders, recurring announcements, or promo drops.

<Warning>
  One auto message per channel, and the interval can't be shorter than **10 minutes**.
</Warning>

<Info>
  All of these require the **Manage Server** permission.
</Info>

## Creating one

<CodeGroup>
  ```javascript Syntax theme={null}
  ,timer add (channel) (interval) (message)
  ```

  ```javascript Example theme={null}
  ,timer add #general 2h remember to read the rules
  ```
</CodeGroup>

`,timer create` does the same thing.

### Interval format

Intervals are built from a number and a unit, with no spaces:

| Unit | Meaning |
| ---- | ------- |
| `s`  | Seconds |
| `m`  | Minutes |
| `h`  | Hours   |
| `d`  | Days    |

Units can be chained for anything in between — `1h30m` and `2d12h` both work. Anything confine can't parse cleanly gets rejected, so `2 h` or `two hours` won't go through.

### The message

Plain text works, but so does the full embed syntax. Start your message with `{embed}` to build a rich embed instead, and use variables to make it dynamic — see [Embed Scripting](/resources/scripting) for the details.

Confine validates the message before saving it, so a broken template gets caught immediately rather than silently failing on the first scheduled post.

## Removing one

<CodeGroup>
  ```javascript Syntax theme={null}
  ,timer remove (channel)
  ```

  ```javascript Example theme={null}
  ,timer remove #general
  ```
</CodeGroup>

### Clearing all of them

```javascript theme={null}
,timer reset
```

Wipes every auto message in the server behind a confirmation prompt. The buttons only respond to whoever ran the command and expire after 30 seconds.

## Checking what's set up

<AccordionGroup>
  <Accordion title="A single channel">
    Shows the raw code behind the message plus its channel and interval.

    <CodeGroup>
      ```javascript Syntax theme={null}
          ,timer view (channel)
      ```

      ```javascript Example theme={null}
          ,timer view #general
      ```
    </CodeGroup>
  </Accordion>

  <Accordion title="Everything at once">
    `,timer list` pages through every auto message in the server with its channel and interval.
  </Accordion>
</AccordionGroup>
