SMS

What are SMS quiet hours?

Quiet hours are the part of the day when a promotional text message may not arrive. The rule is usually written against the recipient's local time, which is what makes it awkward: the same send lands inside the window for one person and outside it for another.

Two different questions hide inside "what are SMS quiet hours". One is what the rules say. The other is who applies them, and on Bird that answer is more definite than most people expect.

Who sets a quiet-hours window?

Three different kinds of body, and they are worth keeping apart because they fail differently.

A regulator can set one in law, with a window and a definition of whose clock it runs on. Where that happens, the window is a legal obligation on you rather than a delivery constraint, and it usually applies to marketing rather than to everything you send. What is the TCPA quotes one such rule in full, including the paragraph that extends it from calls to text messages.

An operator or registry can enforce a window itself, at the network, in which case a message sent outside it is stopped whatever your own software did.

A platform can hold a window as policy. Bird's country policy data distinguishes the first two from the third with a boolean of its own, quiet_hours_is_regulatory, "whether quiet hour restrictions are mandated by regulation rather than platform policy". Beside it, has_quiet_hours says whether a window applies in that country at all, and exempt_message_categories lists the categories a window does not cover.

Which countries carry which values is exactly the sort of fact that goes stale in prose, so it is published per destination on SMS destinations rather than restated here.

Does Bird hold my message until the window opens?

No. Bird's SMS channel does not enforce quiet hours, and that is a decision rather than a gap.

The rule Bird holds itself to is that a quiet-hours window is declared, never inferred: the channel keeps no per-country window ruleset and no workspace default window, classifies no message as promotional, derives no recipient timezone from a number, and blocks nothing on time of day. A message's category does not select a window either.

The reason is the failure mode on the other side. Enforcing a window needs two facts the channel does not have. Which messages are promotional is knowable only by the sender, and inferring it from content is a guess whose safe direction delays a password reset or a one-time passcode by hours. Where the recipient is, is an approximation from their number that portability breaks. Guess both, and the system's most likely error is holding back the message a customer is waiting on.

So a send to any destination at any hour is accepted and delivered on its ordinary path. Nothing queues it, nothing defers it, and no error tells you a window was open or closed.

Then whose job is it?

Yours, at the layer that knows the two missing facts.

Both of them live where your audience does. A campaign already knows its own purpose, so it knows whether the message is promotional without inferring it. And a contact profile can carry a timezone the contact gave you, which beats deriving one from a number. Matching a country and a message purpose to a window belongs there, in the layer that owns the contact profile, rather than in the channel that carries the message.

In practice that means four things:

  1. Classify your own traffic. Decide which of your sends are promotional, at the point where you already know, rather than letting anything downstream guess.
  2. Hold a timezone per contact, from what they told you, and fall back to something explicit rather than to a number's country.
  3. Read each destination's rule as data. has_quiet_hours and quiet_hours_is_regulatory are on the country's policy record, and the destination page renders them.
  4. Schedule against the recipient's local time, not yours, and defer rather than drop: a message outside the window belongs at the next opening.

What about the messages that answer someone?

They are a different case, and treating them as promotional is the mistake this whole design exists to avoid.

A reply Bird sends on your behalf when someone texts a stop keyword is regulated speech, not marketing, and it goes out when the keyword arrives. What is a STOP keyword covers those replies and the narrow exemption that lets them through a suppression recorded a moment earlier.

The same logic holds for your own transactional traffic. A one-time passcode, a delivery notification and an appointment reminder are not what a quiet-hours rule is aimed at, and several published rules say so directly by listing exempt categories. Bird's country data carries that list per country in exempt_message_categories, which is the field to read before you apply your own window to everything you send.

For the consent side of the same regime, which is the other half of what regulators ask of promotional messaging, which consent model applies to SMS covers opt-in, opt-out and double opt-in.

Build on the same network.

A test API key is yours immediately. Production unlocks when you add a payment method and verify a sender.

Starten Sie mit einem Kanal.
Fügen Sie die anderen hinzu, wenn Sie bereit sind.

Ein Test-API-Key steht Ihnen sofort zur Verfügung. Der Produktivzugang wird freigeschaltet, sobald Sie eine Zahlungsmethode hinzufügen und einen Absender verifizieren.

Sie nutzen Claude Code, Cursor oder Codex? Kopieren Sie einen Setup-Prompt und Ihr Agent installiert die Bird CLI und Skills für Sie. Wählen Sie Ihren:

Cursor