VICIfast
Operations

How to write a filter that calls only certain time zones

Filter VICIdial leads by GMT offset so your campaign only dials contacts whose local time is inside your calling window, with a test before you enable.

VICIfast Support
··3 min read
How to write a filter that calls only certain time zones

Calling someone at the wrong hour is the fastest way to a complaint, and in many regions it is also against the rules. The cleanest way to stay inside a contact's local calling window is to filter by their time zone. A Lead filter built on the GMT-offset column lets your Campaign target only the zones you want, regardless of where each Lead sits on the map.

Understanding the GMT offset

Every record carries a GMT offset (lead) value: the number of hours that contact's local time differs from GMT. The dialer keeps a column, gmt_offset_now, that already accounts for daylight saving where it applies, so it reflects the contact's current real-world offset rather than a static one. Common North American values look like this:

  • Eastern is around -5, or -4 during daylight saving.
  • Central is around -6, or -5 during daylight saving.
  • Mountain is around -7, or -6 during daylight saving.
  • Pacific is around -8, or -7 during daylight saving.

The SQL to use

To dial only the Eastern and Central zones, list their current offsets:

gmt_offset_now IN('-5','-4','-6','-5')

Because daylight saving shifts the value, include both the standard and daylight offsets for each zone you want, or use a range to be safe:

gmt_offset_now <= -4 and gmt_offset_now >= -6

As always, no leading or trailing AND. The hopper adds that automatically when it stitches your fragment into its own selection. A range is usually the safer choice for time zones, because it keeps working through the spring and autumn clock changes without you editing the filter twice a year.

If you operate internationally, the same column handles positive offsets too. London sits near 0 or +1 during summer time, and much of mainland Europe runs +1 or +2, so a European campaign might use a fragment like gmt_offset_now >= 0 and gmt_offset_now <= 2.

How the hopper applies it

flowchart TD
  A[Hopper cron runs] --> B[Read campaign filter SQL]
  B --> C[Add filter as AND clause]
  C --> D{gmt offset in chosen range}
  D -->|Yes| E[Load lead into hopper]
  D -->|No| F[Skip lead]
  E --> G[Agent dials within window]

On each refill the Hopper reads your offset condition and only loads leads whose current local time falls in the zones you allow. Combine this with the campaign call-time window and you get a tidy two-layer guard: the filter decides who is eligible, and the call-time settings decide when. A DNC (do not call) scrub still runs on top of both.

Setting it up

  1. Add a filter with a short Filter ID and a name like East and Central only.
  2. Paste your gmt_offset_now fragment into Filter SQL.
  3. Save and attach it to the campaign.

Test before enabling

Offset values are easy to mix up, and a wrong sign can empty your hopper. Use Test On Campaign on the filter page to preview how many leads stay callable before you turn it on. That one check saves you from a shift where agents sit idle because the filter quietly excluded everyone.

For the whole picture on dialing cleanly and compliantly, read our quality control guide. For a plain-language primer on filters generally, see the VICIdial lead filter explained.

Time-zone filtering ships on every VICIfast plan, with a fully managed dialer ready in under 40 seconds. See our pricing to begin.

About VICIfast LLC

VICIfast LLC operates a managed VICIdial hosting + BYOI service for outbound and inbound call centers. We run the dialers, the carriers, the recordings pipeline, and the compliance plumbing so operators don’t have to.

Citing this article

VICIfast Engineering. “How to write a filter that calls only certain time zones”. VICIfast LLC, June 26, 2026. Retrieved from https://vicifast.com/blog/build-vicidial-filter-by-time-zone

Have questions?

Related posts

You might be interested in

VICIfast newsletter

Liked this? Get the next one in your inbox.

We ship the kind of stuff you just read — concrete, numbers-first, no drip. One email when a new post goes live. Unsubscribe in one click.

Comments

Comments are reviewed before they appear. We never publish your email.

No comments yet — be the first.