---
title: "openemail follow-ups"
description: "Every command in this namespace, with its arguments, flags and examples."
url: "https://openemail.uk/docs/cli/reference/follow-ups"
area: "CLI"
category: "Reference"
---

# openemail follow-ups

Every command in this namespace, with its arguments, flags and examples.

## Commands

### `openemail follow-ups list`

List reminders

```bash
openemail follow-ups list [flags]
```

Resolves the reminders you set on mail you sent, newest first: the ones still waiting for a reply and the ones that ended. A reminder is `waiting` until somebody replies (`answered`), its time comes with no reply (`due`, and the thread is back at the top of the inbox, unread) or it is cancelled.

An API key lists the reminders of the workspace owner, and an app those of the person who connected it. A key or an app limited to particular addresses lists only reminders on threads delivered to them. They come back as one plain array with no paging, and `limit` caps how many.

- Scopes: `threads:read`.
- Needs a sign-in.
- Aliases: `ls`.

**Flags**

- `--status <value>`: Only reminders in this state: `waiting`, `answered`, `due` or `cancelled`.
- `--thread-id <value>`: Only the reminders on this thread.
- `--limit <n>`: How many to return, newest first, from 1 to 200. 100 when left out.

**Examples**

```bash
openemail follow-ups list
```

With optional flags

```bash
openemail follow-ups list --status waiting
```

Also available in: API [`GET /follow-ups`](https://openemail.uk/docs/api/reference/threads#get-follow-ups); TypeScript [`followUps.list()`](https://openemail.uk/docs/sdk/reference/follow-ups#list); Python [`follow_ups.list()`](https://openemail.uk/docs/python/reference/follow-ups#list); Ruby [`follow_ups.list`](https://openemail.uk/docs/ruby/reference/follow-ups#list); PHP [`followUps->list`](https://openemail.uk/docs/php/reference/follow-ups#list); Go [`FollowUps.List`](https://openemail.uk/docs/go/reference/follow-ups#list); Java [`followUps().list`](https://openemail.uk/docs/java/reference/follow-ups#list); C# [`FollowUps.ListAsync`](https://openemail.uk/docs/csharp/reference/follow-ups#list).

### `openemail follow-ups set`

Set a reminder on a thread

```bash
openemail follow-ups set --thread-id <value> --remind-at <when> [flags]
openemail follow-ups set --data <json|@file|-> [flags]
```

Asks to be reminded about a thread if nobody replies by `--remind-at`. If a real reply arrives first, the reminder closes by itself. Otherwise, when the time comes, the thread returns to the top of the inbox, unread, with the built-in `FOLLOW_UP` label and a push to your phones. Automatic replies, delivery reports and your own sending address do not count as a reply.

A thread holds one waiting reminder per person, so setting another moves the time. `--remind-at` takes a `Date` or an ISO 8601 string with an offset, and the SDK converts a `Date` with `toISOString()`. To set one as you send, pass `followUpAt` to `emails.send` instead.

- Scopes: `threads:write`.
- Needs a sign-in.

**Flags**

- `--thread-id <value>`: The thread to be reminded about, as `threads.list` returns it. Required, here or in `--data`.
- `--remind-at <when>`: When the thread comes back if nobody replied: a future instant, at most 365 days out. Required, here or in `--data`.
- `--data <json|@file|->`: The whole `body` as JSON, inline, from a file with @path, or - for standard input. Flags override its keys.

**Examples**

```bash
openemail follow-ups set --thread-id CAHk7pQ2x9LmZ4-mail.example.com --remind-at 2026-10-01T00:00:00Z
```

Read the whole body from a JSON file

```bash
openemail follow-ups set --data @follow-ups.json
```

Also available in: API [`POST /follow-ups`](https://openemail.uk/docs/api/reference/threads#post-follow-ups); TypeScript [`followUps.set()`](https://openemail.uk/docs/sdk/reference/follow-ups#set); Python [`follow_ups.set()`](https://openemail.uk/docs/python/reference/follow-ups#set); Ruby [`follow_ups.set`](https://openemail.uk/docs/ruby/reference/follow-ups#set); PHP [`followUps->set`](https://openemail.uk/docs/php/reference/follow-ups#set); Go [`FollowUps.Set`](https://openemail.uk/docs/go/reference/follow-ups#set); Java [`followUps().set`](https://openemail.uk/docs/java/reference/follow-ups#set); C# [`FollowUps.SetAsync`](https://openemail.uk/docs/csharp/reference/follow-ups#set).

### `openemail follow-ups cancel`

Cancel a reminder

```bash
openemail follow-ups cancel <id> [flags]
```

Cancels a waiting reminder, so the thread stays where it is when the time comes. A reminder that already ended is returned as it is, which is why the SDK retries this call. Only your own reminders can be cancelled.

- Scopes: `threads:write`.
- Needs a sign-in.
- Asks you to confirm.

**Arguments**

- `<id>` (required): The id of the reminder, `fup_` and 24 hex characters, as `list` returns it.

**Examples**

```bash
openemail follow-ups cancel fup_4c1b257a9e3d6f8025b7c1d4
```

Skip the confirmation, for scripts

```bash
openemail follow-ups cancel fup_4c1b257a9e3d6f8025b7c1d4 --yes
```

Also available in: API [`DELETE /follow-ups/{id}`](https://openemail.uk/docs/api/reference/threads#delete-follow-ups-id); TypeScript [`followUps.cancel()`](https://openemail.uk/docs/sdk/reference/follow-ups#cancel); Python [`follow_ups.cancel()`](https://openemail.uk/docs/python/reference/follow-ups#cancel); Ruby [`follow_ups.cancel`](https://openemail.uk/docs/ruby/reference/follow-ups#cancel); PHP [`followUps->cancel`](https://openemail.uk/docs/php/reference/follow-ups#cancel); Go [`FollowUps.Cancel`](https://openemail.uk/docs/go/reference/follow-ups#cancel); Java [`followUps().cancel`](https://openemail.uk/docs/java/reference/follow-ups#cancel); C# [`FollowUps.CancelAsync`](https://openemail.uk/docs/csharp/reference/follow-ups#cancel).
