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.
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.
Write in Markdown
Use **bold**, *italic*, ~~strike~~, `code` and [links](url).
Pick the App
Choose WhatsApp, Telegram MarkdownV2 or Telegram HTML.
Read the Notes
See what one app shows differently from the other.
Copy and Send
Paste into the chat, or send it from your bot.
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.
“# 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`.”
“# 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`.”
“# 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`.”
“# 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`.”
“**Price:** 4.99 (incl. tax) - see [docs](https://example.com/pricing) ||spoiler||”
“Order #1042 is ready! Total: $18.50 + tip.”
“**A & B** <tag> ||secret|| `x<y`”
“file_name_here and `*not italic*` and snake_case”
“1. Preheat to 180°C 2. Mix **flour** and _sugar_ 3. Bake ~~30~~ 25 minutes”
“``` docker compose up -d ``` Then open http://localhost:3000”
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.
Bold
Markdown **bold**; WhatsApp and MarkdownV2 *bold*.
“How is bold written in WhatsApp?”
Italic
Markdown *italic*; WhatsApp and MarkdownV2 _italic_.
“How is italic written in WhatsApp?”
Strikethrough
Markdown ~~strike~~; WhatsApp and MarkdownV2 ~strike~.
“How many tildes does WhatsApp use?”
Inline Code
Backticks in all three: `code`.
“Is code the same everywhere?”
Code Block
Three backticks around the block in all three.
“What wraps a code block?”
Quote
A line starting with > in all three.
“How do you quote a line?”
Spoiler
||hidden|| in Markdown here and MarkdownV2; WhatsApp has none.
“Does WhatsApp support spoilers?”
Link
[label](url) in MarkdownV2; WhatsApp shows the address.
“Can WhatsApp hide a link behind text?”
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.
Typing in the App
The app accepts **bold**, __italic__, ~~strike~~ and ||spoilers|| as you type.
Bots Use MarkdownV2
The Bot API’s MarkdownV2 uses *bold* and _italic_, with escaping.
Legacy Markdown
The older Markdown mode has fewer features; new bots should use MarkdownV2 or HTML.
Entities
Bots can also send plain text with entity offsets, avoiding escaping entirely.
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.
Markdown Bold in WhatsApp
**double** shows extra asterisks. WhatsApp bold is *single*.
Unescaped Full Stops
A plain . in MarkdownV2 makes the Bot API reject the whole message.
Spaces Inside Markers
* bold * won’t format in WhatsApp. Keep markers touching the words.
Hidden Links on WhatsApp
Link text can’t hide an address there; write the address out.
Long Messages
Telegram splits nothing for you: messages over 4,096 characters fail.
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.