# Build your first agent in just a few minutes with [Rasa Copilot](https://hello.rasa.com/?utm_source=docs&utm_medium=referral&utm_campaign=docs_cta).

## Internally, Rasa conversations are represented as
a list of [events](/content/docs/reference/integrations/action-server/events/index.html). Rasa SDK provides classes
for each event, and takes care of turning instances of event classes into properly formatted
event payloads.

This page is about the event classes in `rasa_sdk`.
The side effects of events and their underlying
payloads are identical regardless of whether you use `rasa_sdk` or another action
server.
For details about the side effects of an event, its underlying
payload and the class in Rasa it is translated to
see the [documentation for events for all action servers](/content/docs/reference/integrations/action-server/events/index.html)
(also linked to in each section).

## Importing events

All events written in a Rasa SDK action server need to be imported from `rasa_sdk.events`.

## Event Classes

### SlotSet

```python
rasa_sdk.events.SlotSet(
    key: Text,
    value: Any = None,
    timestamp: Optional[float] = None
)
```

**Underlying event**: [`slot`](/content/docs/reference/integrations/action-server/events/#slot/index.html)

**Parameters**:

- `key`: Name of the slot to set
- `value`: Value to set the slot to. The datatype must match the [type](/content/docs/reference/primitives/slots/#slot-types/index.html)
of the slot
- `timestamp`: Optional timestamp of the event

**Example**

```python
evt = SlotSet(key = "name", value = "Mary")
```

### AllSlotsReset

```python
rasa_sdk.events.AllSlotsReset(timestamp: Optional[float] = None)
```

**Underlying event**: [`reset_slots`](/content/docs/reference/integrations/action-server/events/#reset_slots/index.html)

**Parameters**:

- `timestamp`: Optional timestamp of the event

**Example**:

```python
evt = AllSlotsReset()
```

### ReminderScheduled

```python
rasa_sdk.events.ReminderScheduled(
    intent_name: Text,
    trigger_date_time: datetime.datetime,
    entities: Optional[Union[List[Dict[Text, Any]], Dict[Text, Text]]] = None,
    name: Optional[Text] = None,
    kill_on_user_message: bool = True,
    timestamp: Optional[float] = None,
)
```

**Underlying event**: [`reminder`](/content/docs/reference/integrations/action-server/events/#reminder/index.html)

**Parameters**:

- `intent_name`: Intent which the reminder will trigger
- `trigger_date_time`: Datetime at which the execution of the action should be triggered.
- `entities`: Entities to send with the intent
- `name`: ID of the reminder. If there are multiple reminders with the same id only the last will be run.
- `kill_on_user_message`: Whether a user message before the trigger time will abort the reminder
- `timestamp`: Optional timestamp of the event

**Example**:

```python
from datetime import datetime

evt = ReminderScheduled(
    intent_name = "EXTERNAL_dry_plant",
    trigger_date_time = datetime(2020, 9, 15, 0, 36, 0, 851609),
    entities = [{"name": "plant","value":"orchid"}],
    name = "remind_water_plants",
)
```

### ReminderCancelled

```python
ReminderCancelled(
    name: Optional[Text] = None,
    intent_name: Optional[Text] = None,
    entities: Optional[Union[List[Dict[Text, Any]], Dict[Text, Text]]] = None,
    timestamp: Optional[float] = None,
)
```

**Underlying event**: [`cancel_reminder`](/content/docs/reference/integrations/action-server/events/#cancel_reminder/index.html)

**Parameters**:

- `name`: ID of the reminder.
- `intent_name`: Intent which the reminder triggers
- `entities`: Entities sent with the intent
- `timestamp`: Optional timestamp of the event

**Example**:

```python
evt = ReminderCancelled(name = "remind_water_plants")
```

### ConversationPaused

```python
ConversationPaused(timestamp: Optional[float] = None)
```

**Underlying event**: [`pause`](/content/docs/reference/integrations/action-server/events/#slot/index.html)

**Parameters**:

- `timestamp`: Optional timestamp of the event

**Example**:

```python
evt = ConversationPaused()
```

### ConversationResumed

```python
ConversationResumed(timestamp: Optional[float] = None)
```

**Underlying event**: [`resume`](/content/docs/reference/integrations/action-server/events/#resume/index.html)

**Parameters**:

- `timestamp`: Optional timestamp of the event

**Example**:

```python
evt = ConversationResumed()
```

### FollowupAction

```python
FollowupAction(
    name: Text,
    timestamp: Optional[float] = None
)
```

**Underlying event**: [`followup`](/content/docs/reference/integrations/action-server/events/#followup/index.html)

**Parameters**:

- `name`: The name of the follow up action that will be executed.
- `timestamp`: Optional timestamp of the event

**Example**:

```python
evt = FollowupAction(name = "action_say_goodbye")
```

### UserUtteranceReverted

```python
UserUtteranceReverted(timestamp: Optional[float] = None)
```

**Underlying event**: [`rewind`](/content/docs/reference/integrations/action-server/events/#rewind/index.html)

**Parameters**:

- `timestamp`: Optional timestamp of the event

**Example**:

```python
evt = UserUtteranceReverted()
```

### ActionReverted

```python
ActionReverted(timestamp: Optional[float] = None)
```

**Underlying event**: [`undo`](/content/docs/reference/integrations/action-server/events/#undo/index.html)

**Parameters**:

- `timestamp`: Optional timestamp of the event

**Example**:

```python
evt = ActionReverted()
```

### Restarted

```python
Restarted(timestamp: Optional[float] = None)
```

**Underlying event**: [`restart`](/content/docs/reference/integrations/action-server/events/#restart/index.html)

**Parameters**:

- `timestamp`: Optional timestamp of the event

**Example**:

```python
evt = Restarted()
```

### SessionStarted

```python
SessionStarted(timestamp: Optional[float] = None)
```

**Underlying event**: [`session_started`](/content/docs/reference/integrations/action-server/events/#session_started/index.html)

**Parameters**:

- `timestamp`: Optional timestamp of the event

**Example**:

```python
evt = SessionStarted()
```

### UserUttered

```python
UserUttered(
    text: Optional[Text],
    parse_data: Optional[Dict[Text, Any]] = None,
    timestamp: Optional[float] = None,
    input_channel: Optional[Text] = None,
)
```

**Underlying event**: [`user`](/content/docs/reference/integrations/action-server/events/#user/index.html)

**Parameters**:

- `text`: Text of the user message
- `parse_data`: Parsed data of user message. This is ordinarily filled by NLU.
- `input_channel`: The channel on which the message was received
- `timestamp`: Optional timestamp of the event

**Example**:

```python
evt = UserUttered(text = "Hallo bot")
```

### BotUttered

```python
BotUttered(
    text: Optional[Text] = None,
    data: Optional[Dict[Text, Any]] = None,
    metadata: Optional[Dict[Text, Any]] = None,
    timestamp: Optional[float] = None,
)
```

**Underlying event**: [`bot`](/content/docs/reference/integrations/action-server/events/#bot/index.html)

**Parameters**:

- `text`: The text the bot sends to the user
- `data`: Any non-text elements of the bot response. The structure of `data` matches that of `responses` given in the [API spec](/content/docs/reference/api/pro/action-server-api/index.html).
- `metadata`: Arbitrary key-value metadata
- `timestamp`: Optional timestamp of the event

**Example**:

```python
evt = BotUttered(text = "Hallo user")
```

### ActionExecuted

```python
ActionExecuted(
    action_name,
    policy=None,
    confidence: Optional[float] = None,
    timestamp: Optional[float] = None,
)
```

**Underlying event**: [`action`](/content/docs/reference/integrations/action-server/events/#action/index.html)

**Parameters**:

- `action_name`: Name of the action that was called
- `policy`: The policy used to predict the action
- `confidence`: The confidence with which the action was predicted
- `timestamp`: Optional timestamp of the event

**Example**:

```python
evt = ActionExecuted("action_greet_user")
```
