# `Appsignal.CheckIn.Event`
[🔗](https://github.com/appsignal/appsignal-elixir/blob/v2.17.0/lib/appsignal/check_in/event.ex#L1)

# `check_in_type`

```elixir
@type check_in_type() :: :cron | :heartbeat
```

# `kind`

```elixir
@type kind() :: :start | :finish
```

# `t`

```elixir
@type t() :: %Appsignal.CheckIn.Event{
  check_in_type: check_in_type(),
  digest: String.t() | nil,
  identifier: String.t(),
  kind: kind() | nil,
  timestamp: integer()
}
```

# `cron`

```elixir
@spec cron(Appsignal.CheckIn.Cron.t(), kind()) :: t()
```

# `deduplicate_cron`

```elixir
@spec deduplicate_cron([t()]) :: [t()]
```

Removes redundant cron check-in events from the given list of events.
This is done by removing redundant *pairs* of events -- that is,
for each identifier, only keep one complete pair of start and finish events.

# `describe`

```elixir
@spec describe([t()]) :: String.t()
```

# `heartbeat`

```elixir
@spec heartbeat(String.t()) :: t()
```

# `redundant?`

```elixir
@spec redundant?(t(), t()) :: boolean()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
