— Social Media

Free WhatsApp and Telegram Formatter

Write a message in Markdown and get it formatted for WhatsApp, or as Telegram MarkdownV2 or HTML for a bot.

— Samples
Characters 308Notes 3Valid
Live

What is a WhatsApp and Telegram Formatter?

WhatsApp and Telegram both format messages with symbols around text, but each uses its own rules, and Telegram bots need a stricter syntax again. This formatter takes a message written in ordinary Markdown and rewrites it for each app, so formatting arrives the way you meant it.

It converts bold, italic, strikethrough, code, code blocks, quotes, lists, links and spoilers. For Telegram bots it writes MarkdownV2 with every reserved character escaped, or HTML for parse mode HTML, and the check notes what one app can’t show, such as spoilers on WhatsApp or messages over Telegram’s 4,096 characters.

Key Features

WhatsApp Text

*Bold*, _italic_, ~strike~, code, quotes and lists in WhatsApp’s syntax.

Telegram MarkdownV2

Bot-ready text with every reserved character escaped by a backslash.

Telegram HTML

The same message as HTML tags for parse mode HTML, with spoilers.

Chat Preview

A bubble showing how the message reads, spoilers included.

Conversion Notes

What each app can’t show, and when a message is too long for Telegram.

Perfect for everyone

  • Community managers
  • Bot developers
  • Marketers and anyone posting in group chats

How to Use the WhatsApp and Telegram Formatter

Write the message in Markdown, the same way you would in a doc or a README, or paste one you already have. Every output is converted from the same text, so you only write the message once and switch between apps with a click.

1

Write in Markdown

Use **bold**, *italic*, ~~strike~~, `code` and [links](url).

2

Pick the App

Choose WhatsApp, Telegram MarkdownV2 or Telegram HTML.

3

Read the Notes

See what one app shows differently from the other.

4

Copy and Send

Paste into the chat, or send it from your bot.

Worked Examples

Messages, Formatted for Each App

Each row is a message of the kind people send to groups and channels, written in Markdown. Each answer is this tool’s output in the mode on the chip: WhatsApp text, Telegram MarkdownV2, Telegram HTML or the check.

REF_001A group announcement for WhatsApp

“# Saturday cleanup **Meet at 9:00** by the _north gate_ of Riverside Park. Bring: - gloves - a water bottle (refills at the café) > Rain plan: we move to the community hall. Sign up here: [form](https://example.com/cleanup) — the raffle prize is ||a bike||! Old route ~~via Elm St.~~ is closed; use `Gate B`.”

REF_002The same announcement as Telegram MarkdownV2

“# Saturday cleanup **Meet at 9:00** by the _north gate_ of Riverside Park. Bring: - gloves - a water bottle (refills at the café) > Rain plan: we move to the community hall. Sign up here: [form](https://example.com/cleanup) — the raffle prize is ||a bike||! Old route ~~via Elm St.~~ is closed; use `Gate B`.”

REF_003The same announcement as Telegram HTML

“# Saturday cleanup **Meet at 9:00** by the _north gate_ of Riverside Park. Bring: - gloves - a water bottle (refills at the café) > Rain plan: we move to the community hall. Sign up here: [form](https://example.com/cleanup) — the raffle prize is ||a bike||! Old route ~~via Elm St.~~ is closed; use `Gate B`.”

REF_004The same announcement, checked

“# Saturday cleanup **Meet at 9:00** by the _north gate_ of Riverside Park. Bring: - gloves - a water bottle (refills at the café) > Rain plan: we move to the community hall. Sign up here: [form](https://example.com/cleanup) — the raffle prize is ||a bike||! Old route ~~via Elm St.~~ is closed; use `Gate B`.”

REF_005Every reserved character escaped

“**Price:** 4.99 (incl. tax) - see [docs](https://example.com/pricing) ||spoiler||”

REF_006Plain text with symbols for MarkdownV2

“Order #1042 is ready! Total: $18.50 + tip.”

REF_007HTML characters for Telegram HTML

“**A & B** <tag> ||secret|| `x<y`”

REF_008Underscores inside words

“file_name_here and `*not italic*` and snake_case”

REF_009A numbered recipe for WhatsApp

“1. Preheat to 180°C 2. Mix **flour** and _sugar_ 3. Bake ~~30~~ 25 minutes”

REF_010A code block for WhatsApp

“``` docker compose up -d ``` Then open http://localhost:3000”

Syntax Reference

Formatting in Each App

The same idea is written differently in each place a message can go. These cards show what to type for each kind of formatting in WhatsApp and in Telegram’s bot syntax, next to the Markdown you write here, so you can check any output by eye.

01 / BOLD

Bold

Markdown **bold**; WhatsApp and MarkdownV2 *bold*.

“How is bold written in WhatsApp?”

02 / ITALIC

Italic

Markdown *italic*; WhatsApp and MarkdownV2 _italic_.

“How is italic written in WhatsApp?”

03 / STRIKETHROUGH

Strikethrough

Markdown ~~strike~~; WhatsApp and MarkdownV2 ~strike~.

“How many tildes does WhatsApp use?”

04 / INLINE

Inline Code

Backticks in all three: `code`.

“Is code the same everywhere?”

05 / CODE

Code Block

Three backticks around the block in all three.

“What wraps a code block?”

06 / QUOTE

Quote

A line starting with > in all three.

“How do you quote a line?”

07 / SPOILER

Spoiler

||hidden|| in Markdown here and MarkdownV2; WhatsApp has none.

“Does WhatsApp support spoilers?”

08 / LINK

Link

[label](url) in MarkdownV2; WhatsApp shows the address.

“Can WhatsApp hide a link behind text?”

09 / LISTS

Lists

- or 1. at the start of a line in WhatsApp; MarkdownV2 escapes them.

“What does MarkdownV2 need before a hyphen?”

Escaping for Telegram MarkdownV2

MarkdownV2 is strict: eighteen characters are reserved, and a message that uses one without a backslash is rejected by the Bot API rather than sent. These rules are why the MarkdownV2 output looks so full of backslashes, and why it is safer to generate than to type.

Reserved Characters

_ * [ ] ( ) ~ ` > # + - = | { } . and ! all need a backslash in ordinary text.

Inside Code

Only ` and \ need escaping inside code and code blocks.

Inside Link Addresses

Only ) and \ need escaping inside the (url) part.

Common Surprises

Full stops, hyphens and exclamation marks are the characters people forget most.

Or Use HTML

Parse mode HTML only needs &, < and > escaped, which is simpler for long text.

Telegram App Versus Telegram Bots

People typing in the Telegram app and bots sending through the Bot API use different syntax for the same formatting. That difference is the most common reason a bot’s message arrives with stray symbols or fails to send at all, even when the same text looked fine when someone typed it by hand.

Tip 01

Typing in the App

The app accepts **bold**, __italic__, ~~strike~~ and ||spoilers|| as you type.

Tip 02

Bots Use MarkdownV2

The Bot API’s MarkdownV2 uses *bold* and _italic_, with escaping.

Tip 03

Legacy Markdown

The older Markdown mode has fewer features; new bots should use MarkdownV2 or HTML.

Tip 04

Entities

Bots can also send plain text with entity offsets, avoiding escaping entirely.

Tip 05

Test in a Private Chat

Send to yourself first: a rejected message returns a parse error.

How WhatsApp Formatting Works

WhatsApp reads a few symbols around words and turns them into formatting when the message is sent. The rules are simple, but they are stricter than they look, and a misplaced space is enough to leave the symbols showing in everyone’s chat.

Markers Touch the Words

The asterisk or underscore must sit right against the first and last letters, with no space inside.

Combining Styles

Styles can nest, as in *_bold italic_*, as long as each pair closes inside the other.

Lists and Quotes

Lines starting with a hyphen, a number and full stop, or > become lists and quotes.

Inline Code

Single backticks mark a short piece of code; three mark a monospace block.

Menus on Phones

Selecting text in the app offers bold, italic, strikethrough and monospace without typing symbols.

Everywhere at Once

The same formatting shows in chats, groups and channels on phones, desktop and the web.

Chat Formatting Pitfalls

Mistakes that make formatting show up as stray symbols, or stop a bot’s message from sending, usually because the text was written for a different app or edited after it was converted.

Tip 01

Markdown Bold in WhatsApp

**double** shows extra asterisks. WhatsApp bold is *single*.

Tip 02

Unescaped Full Stops

A plain . in MarkdownV2 makes the Bot API reject the whole message.

Tip 03

Spaces Inside Markers

* bold * won’t format in WhatsApp. Keep markers touching the words.

Tip 04

Hidden Links on WhatsApp

Link text can’t hide an address there; write the address out.

Tip 05

Long Messages

Telegram splits nothing for you: messages over 4,096 characters fail.

Tip 06

Formatting Across Lines

Bold or italic that spans a line break often won’t format.

When to Use a Chat Formatter

Whenever one message has to go to more than one chat app, or a bot has to send formatted text without being rejected. Writing once in Markdown and converting keeps every version of the message in step when you edit it.

Community Posts

Send the same announcement to a WhatsApp group and a Telegram channel.

Bot Messages

Get MarkdownV2 or HTML that the Bot API accepts first time.

Newsletters to Chat

Turn a Markdown draft into chat-ready text.

Support Replies

Keep saved replies readable in each app.

Event Reminders

Format times, places and links consistently.

Frequently Asked Questions