Skip to main content
Back to resources

TCPA quiet hours and recipient-local send windows

How TCPA quiet hours work on a CPaaS — the federal 8 AM–9 PM window evaluated in the recipient's time zone, seven state mini-TCPA overlays, timezone-resolution and fail-safe behavior, the campaign and dialer hard gate, the tenant-owned org quiet-hours gate, and the preview endpoint to run before every rollout.

Orbit Editorial Team

TCPA quiet hours, defined

TCPA quiet hours are the hours of the day during which telemarketing calls and texts may not be placed to a recipient — and under the US federal TCPA the forbidden zone is outside 8 AM–9 PM in the recipient's own time zone, not the sender's. A send-window system therefore resolves every recipient to a local clock before it dispatches, holds anything that would land in someone's night, and schedules the retry to a precise re-open instant; the window is recipient-local by statute, and recipient-local behavior is the only version that counts.

The TCPA and DNC glossary entries cover the term-level definitions. This guide is the send-window layer: which windows exist (federal, state, tenant-configured), how the recipient's timezone is resolved, what happens when it cannot be, and the read-only preview you run before a rollout. It is the deep companion to the TCPA section of the CPaaS compliance topics overview, which treats the subject at procurement-survey depth, and it sits one level below the pre-send gate chain walkthrough, where quiet hours is one check in an ordered sequence.

The federal 8 AM–9 PM recipient-local window

The Telephone Consumer Protection Act (47 U.S.C. § 227, with 47 CFR § 64.1200(c)(1)) restricts telemarketing calls and texts to the hours between 8 AM and 9 PM at the called party's location. The statute's penalty attaches per call — $500 per violating call or text, trebled to $1,500 for willful or knowing violations — and TCPA claims are routinely brought as class actions, so a recipient-window mistake multiplies across a contact list rather than standing as a single ticket.

Recipient-local is the operative word, and it is where naive schedulers fail. A campaign dispatched at 11 AM Eastern is exactly correct for a Boston recipient and a $500–$1,500-per-call violation when it reaches a San Jose recipient at 7:45 AM Pacific — a platform that evaluates windows in the sender's timezone is not compliant, it is merely punctual. The correct architecture resolves each recipient to a timezone first, evaluates the window in that local time, and dispatches only while every recipient in the audience is inside their own permitted hours.

On Devotel Orbit the federal window is the one quiet-hours guard the platform enforces globally rather than leaving to tenant configuration — precisely because the statutory penalty attaches per call. The federal-voice section below covers how that works mechanically; the derivation of the 8 AM–9 PM window and its interaction with state overlays lives in the docs reference on US state calling windows.

Campaign and dialer voice: always hard-blocked outside the federal window

For US recipients, campaign and dialer voice — predictive, progressive, preview, and agentless dialer modes, scheduled callbacks, and the pre-dial gate — is refused with TCPA_FEDERAL_DIALING_WINDOW_BLOCKED outside the federal window regardless of any tenant setting. This is the platform's one fail-closed control in the quiet-hours stack, and its fail posture is deliberately conservative on two axes:

  • Timezone unresolved → fail closed. A US recipient whose timezone cannot be resolved (no area-code mapping, no hint) is refused before any window math — an unresolved timezone is never treated as "in window" on the voice path.
  • Blocked → schedule, don't retry. A blocked result carries a DST-safe next_allowed_at ISO instant — the UTC timestamp the window re-opens — which you hand straight to your scheduler instead of polling.

The tenant-owned knobs below govern ad-hoc 1:1 voice and the messaging channels; campaign and dialer voice to US recipients is never relaxed by them. Mechanics (including the org-level voice gate that extends hard-blocking to ad-hoc dials) are in the docs runbook on quiet hours configuration.

State mini-TCPA overlays: most-restrictive-wins

The federal baseline is not the only law in force. Seven US states layer a stricter mini-TCPA statute on top, and federal law expressly permits stricter state rules — so the binding window for a US recipient is the most-restrictive-wins intersection: the earlier end hour and the union of all banned weekdays, joined federal ∪ state. The overlay can tighten; it never widens.

  • Florida (FL), Oklahoma (OK), Louisiana (LA), Alabama (AL) — window cut to 8 AM–8 PM recipient-local; FL, MS, LA, and AL (plus AR and WV at federal hours) additionally ban Sunday dialing.
  • Mississippi (MS) — the strictest of the set: 8 AM–7 PM recipient-local and no Sunday dialing. The statutory 7:30 PM cutoff is rounded conservatively to the 7 PM hour boundary.

The recipient's state is resolved from the NANP area code, and when a state overlay drives the block the declined result names the statute citation — for example Fla. Stat. § 501.059 — in the error details, so counsel can trace the decision without reading platform code. The full per-state derivation lives in the state calling windows reference; the mini-TCPA glossary entry covers the term itself.

How recipient-local resolution works

The local clock comes from a resolution chain, most-specific-hint-first:

  1. The contact's explicit timezone field, where your CRM stores it.
  2. A per-send timezone_override hint to the preview API, when your CRM knows better than the area code implies — the common case is a relocated number that kept its original prefix.
  3. The recipient-country default for non-US traffic.
  4. The NANP area code → US state → timezone table for US +1 numbers.

Window evaluation, DST transitions, and the resulting windows are computed in the resolved timezone, never in UTC or the sender's locale — which is what makes a blocked next_allowed_at timestamp safe to schedule against across a daylight-saving boundary. The full chain, with per-step precedence examples, is worked through in the quiet hours configuration guide.

When the timezone cannot be resolved

For the messaging side — and for ad-hoc 1:1 voice once you enable the voice channel on your org gate — the fail posture for an unresolvable timezone is a tenant-owned choice: skip passes the send (fail open), deny blocks it with a timezone-unknown error, and enforce_utc evaluates the window against a deterministic UTC clock. The organization's voice channel default is deny for US recipients; every other channel default is skip. Campaign and dialer voice is exempt from this knob — it fails closed always, per the federal-voice section above.

The durable fix for an unresolved timezone is contact data, not policy: set the timezone field, or pass an override hint when your CRM knows better than the area code implies.

The tenant-owned org gate and the campaign fallback window

Two knobs compose a tenant's quiet-hours posture beyond the federal voice guard:

The organization channel gate. Per-channel toggles cover ad-hoc 1:1 voice, SMS, and the rest of the messaging channels, with an enabled-channel default of 08:00–21:00 recipient-local (09:00–21:00 for WhatsApp and Meta channels) evaluated through the resolution chain above. Everything on this gate is the tenant's to set; opting into quiet hours at all is a choice, and nothing here is required by CAN-SPAM or GDPR. On Orbit it is configured in organization settings and the resolution order runs campaign-row window → org fallback → platform default.

The campaign fallback window. Drip and journey sends consult a single org-wide start/end pair only when the campaign row carries no explicit window of its own — a fallback, not a second gate, and fallbacks can only narrow an enabled channel gate, never widen it. The full two-knob interaction table and the API surface behind each are in quiet hours configuration and the campaign quiet-hours guide.

Quiet hours vs. frequency capping. A quiet-hours gate is a time-of-day constraint; a frequency cap is a per-timeframe volume constraint (at most N sends per recipient per day/week). They compose — a send clears both — and quiet hours answers a different question than "how much is too much." The mistake to avoid is treating a quiet-hours pass as evidence of an acceptable cadence; it is evidence of an acceptable hour.

Preview before rollout

The same read the send path runs is exposed read-only: GET /api/v1/compliance/quiet-hours/preview?phone=<E.164>&channel=<channel>, with an optional timezone_override hint. The response dispatches per path, returns a DST-safe next_allowed_at when blocked, and answers "would this send to this recipient go through right now?" before a rollout hands the audience to a campaign. Run it against a sample of the audience instead of trusting the aggregate; a single state overlay or unresolved timezone in the list is enough to pin a whole launch window.

The preview walks the same resolution chain the send path uses, so what it reports is what dispatch will enforce. The endpoint plus the DST-crossover worked examples are in the quiet hours runbook and the DST crossover guide.

Transactional and consent carve-outs

Transactional traffic — OTPs, delivery alerts, account notifications — is exempt from the quiet-hours layers; a gate that blocks a password reset at 3 AM is a gate a tenant disables on day one, so carve-outs should come from classification, not from turning the guard off. For the messaging side, a recipient you hold a valid consent record for can pass the org gate on non-voice channels when you enable the consent-override posture; no carve-out applies to voice — voice gates on window math alone, and the campaign/dialer federal guard is exempt from nothing.

Where an operator's evidence tier needs a recorded recipient reply — the form TCPA written consent usually takes — the managed double opt-in handshake produces that receipt; the consent ledger and its lookup surface are covered in the docs reference on consent management.

Where this lands on Orbit

None of the above is abstract for an operator: the federal guard is platform-enforced, the state overlays resolve and name their citations, and the tenant-owned knobs — channel gate, fallback window, timezone posture, consent override — sit in organization and campaign settings with the same preview endpoint verifying the posture before an audience is committed. The TCPA posture across SMS and voice assembles all of these pieces into one reference you can hand to counsel.

For the step-by-step mechanics, work through the docs:

Frequently asked questions

Whose time zone does the TCPA 8 AM–9 PM window use?

The recipient's. The statute restricts telemarketing calls and texts to 8 AM–9 PM at the called party's location, and the damages provision attaches per call — so a send evaluated against the sender's timezone is a violation for recipients in earlier zones. Any compliant send-window system resolves each recipient to a local clock before dispatch and holds anything that would land in their night.

Can my organization turn quiet hours off?

For campaign and dialer voice to US recipients, no — the federal window is hard-blocked by the platform with no tenant toggle that relaxes it, on statute grounds. For ad-hoc 1:1 voice and the messaging channels yes, but quiet hours is opt-in per channel; the org gate is a tenant-owned control you enable, and with it off ad-hoc voice sends dispatch with an advisory log rather than a block.

What happens when the recipient's timezone cannot be resolved?

Depends on the path. Campaign and dialer voice fails closed — an unresolved timezone on a US recipient is refused before any window math. Messaging and ad-hoc 1:1 voice follow your organization's unknown_timezone_policy: skip passes, deny blocks, enforce_utc evaluates against a deterministic UTC clock. The durable fix is contact data: set the timezone field, or pass a timezone_override hint when your CRM knows better than the area code implies.

How do state mini-TCPAs change the window?

They tighten it, never widen it. Florida, Oklahoma, Louisiana, and Alabama cut the end hour to 8 PM; Mississippi cuts it to 7 PM; Florida, Mississippi, Louisiana, Alabama, Arkansas, and West Virginia also ban Sunday dialing. The binding window is the most-restrictive-wins intersection of federal and state, and when a state overlay drives the block the error details name the statute citation.

What is the difference between quiet hours and a frequency cap?

Quiet hours is a time-of-day constraint (not between these local hours); a frequency cap is a volume constraint (at most N sends per recipient per timeframe). They compose — a send clears both — and quiet hours is not evidence of acceptable cadence. Check the recipient's window first, then count.

Sources and further reading

Ready to build?

Orbit puts voice, messaging, and AI agents on one platform with one pay-as-you-go bill. Start free — no credit card required.

TCPA quiet hours and recipient-local send windows — Orbit by Devotel