Events & Updates
Part of the API Reference. A best-effort, high-signal subset of Telegram’s update system — new messages and membership/admin changes, the events most automation cares about. For anything else, listen to client.raw’s .stream directly for the full raw update feed.
TelegramClient.events
Stream<TelegramEvent> get events => _events.stream;
A broadcast stream of TelegramEvents, active once connect() has been called. See Filtering Events by Chat for narrowing this down with .where().
client.events.listen((event) {
switch (event) {
case NewMessageEvent():
print('${event.chatId}: ${event.text}');
case MemberStatusChangedEvent():
print('${event.userId} changed status in ${event.chatId}');
}
});
Types
TelegramEvent
The sealed base type for everything delivered on events. Switch exhaustively over its two subtypes, or match one with is.
NewMessageEvent
A new message was sent or received.
| Field | Type | Meaning |
|---|---|---|
messageId |
int |
|
chatId |
int |
The chat (user, group, or channel) this message belongs to. |
senderId |
int? |
Who sent it, if known (may be null for channel posts, service messages, etc). |
text |
String |
Empty for pure-media messages. |
isOutgoing |
bool |
True if this account sent it. |
date |
DateTime |
MemberStatusChangedEvent
A member’s status changed in a basic group or a supergroup/channel — joined, left, was banned/restricted, or had their admin rights changed. Fires for the target of the change; check Members.get if you need the resulting role/rights spelled out as a Participant.
| Field | Type | Meaning |
|---|---|---|
chatId |
int |
|
userId |
int |
The member whose status changed. |
actorId |
int |
Who made the change (an admin, or userId itself if they left/joined on their own). |
date |
DateTime |