# Events

Conversations in Rasa are represented as a sequence of events. This page lists the event types defined in Rasa Core.

**Note**  
If you are using the Rasa SDK to write custom actions in python, you need to import the events from `rasa_sdk.events`, not from `rasa.core.events`. If you are writing actions in another language, your events should be formatted like the JSON objects on this page.

## General Purpose Events

### Set a Slot

Short

Event to set a slot on a tracker

**JSON**  
```json
evt = {"event": "slot", "name": "departure_airport", "value": "BER"}
```

### Restart a conversation

Short

Resets anything logged on the tracker.

**JSON**  
```json
evt = {"event": "restart"}
```

### Reset all Slots

Short

Resets all the slots of a conversation.

**JSON**  
```json
evt = {"event": "reset_slots"}
```

### Schedule a reminder

Short

Schedule an intent to be triggered in the future.

**JSON**  
```json
evt = {
  "event": "reminder",
  "intent": "my_intent",
  "entities": {"entity1": "value1", "entity2": "value2"},
  "date_time": "2018-09-03T11:41:10.128172",
  "name": "my_reminder",
  "kill_on_user_msg": true,
}
```

### Cancel a reminder

Short

Cancel one or more reminders.

**JSON**  
```json
evt = {
  "event": "cancel_reminder",
  "name": "my_reminder",
  "intent": "my_intent",
  "entities": [
        {"entity": "entity1", "value": "value1"},
        {"entity": "entity2", "value": "value2"}
    ],
  "date_time": "2018-09-03T11:41:10.128172",
}
```

### Pause a conversation

Short

Stops the bot from responding to messages. Action prediction will be halted until resumed.

**JSON**  
```json
evt = {"event": "pause"}
```

### Resume a conversation

Short

Resumes a previously paused conversation. The bot will start predicting actions again.

**JSON**  
```json
evt = {"event": "resume"}
```

### Force a followup action

Short

Instead of predicting the next action, force the next action to be a fixed one.

**JSON**  
```json
evt = {"event": "followup", "name": "my_action"}
```

## Automatically tracked events

### User sent message

Short

Message a user sent to the bot.

**JSON**  
```json
evt = {
    "event": "user",
    "text": "Hey",
    "parse_data": {
        "intent": {
            "name": "greet",
            "confidence": 0.9
        },
        "entities": []
    },
    "metadata": {},
}
```

### Bot responded message

Short

Message a bot sent to the user.

**JSON**  
```json
evt = {"event": "bot", "text": "Hey there!", "data": {}}  
```

### Undo a user message

Short

Undoes all side effects that happened after the last user message (including the `user` event of the message).

**JSON**  
```json
evt = {"event": "rewind"}
```

### Undo an action

Short

Undoes all side effects that happened after the last action (including the `action` event of the action).

**JSON**  
```json
evt = {"event": "undo"}
```

### Log an executed action

Short

Logs an action the bot executed to the conversation. Events that action created are logged separately.

**JSON**  
```json
evt = {"event": "action", "name": "my_action"}
```

### Start a new conversation session

Short

Marks the beginning of a new conversation session. Resets the tracker and triggers an `ActionSessionStart` which by default applies the existing `SlotSet` events to the new session.

**JSON**  
```json
evt = {"event": "session_started"}
```
