How SMS Encoding Works: GSM-7 vs UCS-2
Every SMS message is encoded before transmission. GSM-7 is the default encoding that covers the basic Latin alphabet (A-Z, a-z), digits (0-9), and common symbols like @, $, and !. When your message uses only these characters, each one takes 7 bits, giving you a maximum of 160 characters per single SMS.
The GSM-7 extended character set includes characters like [ ] ~ | ^ \ and the euro sign. These use an escape sequence that counts as two characters each, reducing your effective limit.
UCS-2 encoding activates the moment your message contains any character outside the GSM-7 set. This includes emoji, curly quotes, em dashes, and many accented characters. UCS-2 uses 16 bits per character, cutting the single-SMS limit from 160 down to 70 characters. The switch happens for the entire message — even a single emoji forces UCS-2 for all characters.
Why SMS Length Matters for Appointment Reminders
SMS carriers charge per segment, not per message. A 161-character GSM-7 message gets split into two segments (each with 153 usable characters due to reassembly headers), doubling the cost compared to a 160-character message. For businesses sending hundreds of reminders monthly, this adds up fast.
Shorter messages also perform better. Studies consistently show that concise appointment reminders have higher read-through rates and faster response times. Clients scan SMS messages in seconds — if your key information (date, time, action) isn't visible immediately, the reminder loses effectiveness.
Deliverability can also be affected. Some carriers and handsets handle multi-segment messages differently, occasionally delivering segments out of order or with delays. Keeping reminders to a single segment avoids these edge cases entirely.
SMS Character Limits by Encoding
| Encoding | Single SMS | Multi-part Segment | Max Segments (typical) |
|---|---|---|---|
| GSM-7 | 160 characters | 153 characters | 6-10 segments |
| UCS-2 | 70 characters | 67 characters | 6-10 segments |
The 7-byte User Data Header (UDH) in multi-part messages is what reduces the usable characters per segment from 160 to 153 for GSM-7, and from 70 to 67 for UCS-2. This header tells the receiving phone how to reassemble the segments in the correct order.
Characters That Break GSM-7 Encoding
These commonly used characters force the entire message into the more expensive UCS-2 encoding. Replace them with GSM-safe alternatives to stay within the 160-character limit:
| Unicode Character | Name | GSM-Safe Replacement |
|---|---|---|
| ‘ ’ | Curly single quotes | ' |
| “ ” | Curly double quotes | " |
| — | Em dash | - or -- |
| – | En dash | - |
| … | Ellipsis | ... |
| Emoji | Any emoji character | Remove or use text |
Best Practices for Shorter Reminder SMS
Use straight quotes and simple dashes
Word processors auto-replace straight quotes with curly quotes, which force UCS-2. Always paste through a plain-text editor first, or use this calculator to detect the issue.
Drop the emoji
A single emoji switches the entire message to UCS-2 and cuts your limit from 160 to 70 characters. The cost increase rarely justifies the small engagement bump.
Abbreviate where natural
Use "appt" for appointment, "Tue" for Tuesday, and drop unnecessary filler words. Clients expect brevity in SMS — no one minds a shorter message.
Test with worst-case variable lengths
Template variables like client names expand to different lengths. Use the template variable feature in this calculator to estimate the maximum message length after personalization.
Front-load the key info
Put the client name, date, and time in the first 60 characters. Even if the full message gets truncated in a notification preview, the essential details remain visible.