Stop the campaign for that timezone bucket now, not the whole dialler. Australian telemarketing hours attach to the person answering, not your server. If you cannot prove a recipient’s state, the only weekday window safe across mainland Australia at once during daylight saving is 01:00 to 09:00 UTC — 9am to 5pm in Perth. Eight hours, not eleven.
You are here because someone in Perth, or Broken Hill, or Brisbane told you an AI agent rang them in the evening. The permitted hours live in the Telecommunications (Telemarketing and Research Calls) Industry Standard 2017, administered by the Australian Communications and Media Authority through the Do Not Call Register. The rest of this page is the triage: what to do in the next 24 hours, what to change in the next 7 days, and the engineering that stops it recurring. The ACMA publishes the rule. It does not publish the arithmetic, so we have.
What do I do in the next 24 hours?
Do these in order. None of them cost money and none of them involve us.
| # | Action | Why it matters |
|---|---|---|
| 1 | Pause outbound for the affected timezone bucket only, not the whole account | A blanket stop destroys the evidence trail and your week. A bucket pause is proportionate and reversible. |
| 2 | Pull the call detail record: the dial timestamp in UTC, the number dialled, the agent build, the list ID | UTC is the only timestamp that will not be re-interpreted by whoever reads the log next. Store it alongside the local time you believe applied. |
| 3 | Establish the recipient’s actual local time at the moment of dial — their location, not the number prefix | Half of these incidents turn out to be inside the window once you resolve the real location. The other half are not, and you need to know which you have. |
| 4 | Check whether that contact gave consent to be called at that time | The Do Not Call Register industry standards page states the hours apply unless the consumer has consented to being called at that time. Consent changes the answer. |
| 5 | Query the same list for every other dial that landed outside the window. Count them. | One call is an incident. Two hundred is a systemic control failure, and the two get handled differently. |
| 6 | Reply to the complainant yourself, in writing, with the call time and what you have changed | Most complaints stop here. A person who gets a straight answer within a day rarely escalates. |
Do not delete the recording or the log. If this does reach the Australian Communications and Media Authority, an intact record of a mistimed call is a far better position than a missing one.
Is one mistimed call actually an offence?
Not automatically, and it is worth saying that plainly before you spend the night panicking. The permitted calling times sit in the Telecommunications (Telemarketing and Research Calls) Industry Standard 2017, summarised on the Do Not Call Register industry standards page (read 10 September 2026). That page sets the windows subject to one carve-out, which is worth reading whole rather than in summary: “Telemarketers and researchers are only able to call during the times set out below, unless the consumer has consented to being called at that time. The term ‘consent’ has the same meaning as in the Act.” The Act is the Do Not Call Register Act 2006, named on the same page — so “consent” here is the statutory term, not whatever your intake form calls consent. The page then, separately, tells you when a call in progress must be cut off. Verbatim, a caller must terminate a call immediately if:
you are made aware that the person you are calling is not at their usual residential address, the time at the person’s current location is outside of the permitted calling times, and the called person does not specifically state that they would like the call to be continued.
Read the three limbs together, because the meaning lives in the conjunction. The default reference point is the number’s usual residential address; the moment you learn the person is somewhere else and it is out of hours there, the call ends unless they ask you to keep going. That is a live obligation on the agent mid-call, not just a scheduling rule.
We are not lawyers and this page states no penalty figure, because we have not verified one for your facts. If a complaint has already gone to the regulator, the honest escalation is a communications lawyer and the ACMA itself, not a vendor. Our lane is the engineering that stops the next one. If you want the enforcement side, our post on how the Do Not Call Register and ACMA enforcement apply to AI voice agents covers the obligations and the cases; this page deliberately does not restate them.
Why did an 04 number tell my dialler nothing about the timezone?
This is the root cause of most of these incidents, and it is not a bug in your code. An Australian mobile number carries no geography. The ACMA sets out six main number types on its Choose your phone number page (read 10 September 2026): geographic numbers are the ones that start with 02, 03, 07 or 08, and mobile numbers are a separate class that starts with 04. Mobile is simply not in the geographic category. On top of that, numbers are portable between telcos under the Telecommunications Numbering Plan 2025, per the ACMA rules for porting a phone number (read 10 September 2026), so even carrier identity tells you nothing.
Landline prefixes are barely better. There are four geographic area codes for the entire continent and at least six distinct UTC offsets in use across it, so by simple arithmetic at least one area code has to straddle a time zone boundary. A prefix cannot get you to an offset.
The common failure chain looks like this:
- The list has a mobile number and no address.
- The scheduler needs a timezone, so it falls back to a default — usually the account timezone, usually
Australia/Sydney. - It computes 7:45pm Sydney, sees that as inside the 9am to 8pm window, and dials.
- The recipient is in Perth. It is 4:45pm there and the call is fine. Or the recipient is in Sydney at 7:45pm, and the call is fine. Or your fallback pointed the other way and it is 9:45pm somewhere.
The asymmetry is what catches people out. A Sydney-default scheduler is safe calling west in the morning and dangerous calling east in the evening, and a Perth-default scheduler is exactly the reverse. There is no single default timezone that is safe in both directions. There is only a window narrow enough to be safe in every direction at once.
The Perth Clock rule: the safe window when I do not know the state
We call this the Perth Clock rule, and it is the one thing on this page worth writing on a whiteboard:
If you cannot prove the recipient’s state, dial only between 9am and 5pm Perth time on a weekday during daylight saving. That is 01:00 to 09:00 UTC, and it is legal everywhere in mainland Australia simultaneously.
Here is the calculation end to end so you can reproduce it and substitute your own hours. The permitted weekday telemarketing window is 9:00am to 8:00pm local. For each jurisdiction, convert both edges to UTC by subtracting that jurisdiction’s offset. The nationally safe window is the intersection: the latest opening and the earliest closing.
Worked for a weekday during daylight saving, using offsets from the IANA time zone database:
| Zone | Offset (daylight saving) | 9:00am local, in UTC | 8:00pm local, in UTC |
|---|---|---|---|
| Australia/Perth (AWST) | UTC+8:00 | 01:00 | 12:00 |
| Australia/Eucla | UTC+8:45 | 00:15 | 11:15 |
| Australia/Darwin (ACST) | UTC+9:30 | 23:30 (prev day) | 10:30 |
| Australia/Brisbane (AEST) | UTC+10:00 | 23:00 (prev day) | 10:00 |
| Australia/Adelaide (ACDT) | UTC+10:30 | 22:30 (prev day) | 09:30 |
| Australia/Broken_Hill (ACDT) | UTC+10:30 | 22:30 (prev day) | 09:30 |
| Australia/Sydney (AEDT) | UTC+11:00 | 22:00 (prev day) | 09:00 |
| Intersection | 01:00 to 09:00 UTC — 8 hours | ||
Perth sets the opening because it is the last place to reach 9am. Sydney, Melbourne, Hobart and Canberra set the closing because they are the first to reach 8pm. Every hour outside that band requires you to actually know where the recipient is.
Reproduce it in four lines. This is the whole rule, and it will stay correct as the offsets change because it reads them from the system database rather than hard-coding them:
from datetime import datetime, timedelta
from zoneinfo import ZoneInfo
ZONES = ["Australia/Perth", "Australia/Eucla", "Australia/Darwin",
"Australia/Brisbane", "Australia/Adelaide", "Australia/Broken_Hill",
"Australia/Hobart", "Australia/Melbourne", "Australia/Sydney"]
def national_window(day, open_h, close_h):
# returns (earliest safe UTC time, latest safe UTC time) as timedeltas from midnight UTC
edges = []
for z in ZONES:
off = datetime.combine(day, datetime.min.time(), tzinfo=ZoneInfo(z)).utcoffset()
edges.append((timedelta(hours=open_h) - off, timedelta(hours=close_h) - off))
return max(e[0] for e in edges), min(e[1] for e in edges)
# national_window(date(2026, 12, 1), 9, 20) -> (1:00:00, 9:00:00)
The daylight saving asymmetry: my safe window shrinks by an hour in summer
Western Australia, Queensland and the Northern Territory do not observe daylight saving; New South Wales, Victoria, South Australia, Tasmania and the Australian Capital Territory do, per the NSW Government daylight saving page (read 10 September 2026). So when the eastern states spring forward, Perth stays where it is and the country stretches from UTC+8 to UTC+11. The blind-dial window is squeezed from the eastern end only.
Run the same intersection across the mainland zones for each day type and you get this. These are the numbers to put in your scheduler:
| Call type and day | Daylight saving in force | Safe UTC window | Perth local | Sydney local | Width |
|---|---|---|---|---|---|
| Telemarketing, weekday | Yes (Oct to Apr) | 01:00 to 09:00 | 9:00am to 5:00pm | 12:00pm to 8:00pm | 8h |
| Telemarketing, weekday | No (Apr to Oct) | 01:00 to 10:00 | 9:00am to 6:00pm | 11:00am to 8:00pm | 9h |
| Telemarketing, Saturday | Yes | 01:00 to 06:00 | 9:00am to 2:00pm | 12:00pm to 5:00pm | 5h |
| Telemarketing, Saturday | No | 01:00 to 07:00 | 9:00am to 3:00pm | 11:00am to 5:00pm | 6h |
| Research calls, weekday | Yes | 01:00 to 09:30 | 9:00am to 5:30pm | 12:00pm to 8:30pm | 8.5h |
| Research calls, weekday | No | 01:00 to 10:30 | 9:00am to 6:30pm | 11:00am to 8:30pm | 9.5h |
| Telemarketing, Sunday | Either | No calls allowed at all | 0h | ||
Two Australian zones sit outside those numbers, and one of them is a New South Wales postcode you will dial. Lord Howe Island runs on UTC+10:30 in standard time, which pulls every non-daylight-saving closing thirty minutes earlier than the table shows — weekday 09:30 UTC, Saturday 06:30, research calls 10:00. During daylight saving it is UTC+11:00 and changes nothing. Australia’s Indian Ocean territories are further west than Perth (Christmas Island UTC+7:00, Cocos (Keeling) Islands UTC+6:30 in the IANA database), so 01:00 UTC is 8:00am and 7:30am there, before the window opens. For any of those three, resolve the zone; the blind-dial window does not cover them.
Daylight saving costs a mainland blind-dial campaign exactly one hour a day, and it takes it off the evening end. A Saturday campaign loses a sixth of an already short window. In New South Wales, daylight saving next starts at 2am AEST on Sunday 4 October 2026 and ends at 3am AEDT on Sunday 4 April 2027, per the same NSW Government page, so your national window changes on those two dates whether or not anyone updates the scheduler.
Research calls get the wider window and are the only category permitted on a Sunday at all, 9:00am to 5:00pm. If any part of your call has a commercial purpose it is a telemarketing call regardless of what else it does, so do not reach for the research window to buy yourself Sunday.
The three rows that break a state-code lookup
The usual fix is to store the recipient’s state and map it to a timezone. That is the right idea, and it is wrong in three specific places: Eucla, Broken Hill and Lord Howe Island. All three are real, all three are in the IANA time zone database (zone1970.tab, release 2026c, read 10 September 2026), and all three will be dialled by an Australian campaign of any size.
| Jurisdiction | IANA zone | Standard | Daylight saving | The trap |
|---|---|---|---|---|
| Western Australia | Australia/Perth | UTC+8:00 | None | Three hours behind Sydney in summer, two in winter. The gap itself moves. |
| WA, Eucla | Australia/Eucla | UTC+8:45 | None | A 45 minute offset. Any code that assumes whole or half hours is wrong here. |
| Northern Territory | Australia/Darwin | UTC+9:30 | None | Shares a standard offset with SA but not a daylight saving rule, so they diverge for half the year. |
| Queensland | Australia/Brisbane | UTC+10:00 | None | Identical to NSW in winter, an hour behind it in summer. Easy to test in June and ship broken. |
| South Australia | Australia/Adelaide | UTC+9:30 | UTC+10:30 | Half hour offset, and it observes daylight saving. |
| NSW, Broken Hill | Australia/Broken_Hill | UTC+9:30 | UTC+10:30 | A NSW postcode on central time. A state-code lookup maps it to Sydney and runs it half an hour fast, every call, forever. |
| NSW, Lord Howe Island | Australia/Lord_Howe | UTC+10:30 | UTC+11:00 | A 30 minute daylight saving shift, not 60. Also a NSW postcode. |
| NSW, Vic, Tas, ACT | Australia/Sydney and equivalents | UTC+10:00 | UTC+11:00 | The default everyone assumes. Correct for most NSW records and no others. |
Broken Hill is not a curiosity you can wave away. The Bureau of Meteorology hits it too: its Broken Hill Airport observations page carries the note that observations there are collected in the New South Wales time zone (Eastern Standard Time) and that values are therefore based on that zone, which may differ from local time (read 10 September 2026). That is a Commonwealth agency documenting the exact defect on the exact town. If a national weather service ships a state-code lookup with a disclaimer attached, your CRM has one too.
Public holidays are the other list that will not behave. The Do Not Call Register page names New Year’s Day, Australia Day, Good Friday, Easter Monday, Anzac Day, Christmas Day and Boxing Day, plus any day given in lieu — and it introduces them with the word include, so treat that as a floor rather than a closed set. State-only holidays are not named there. Block them anyway; the cost of not calling on Melbourne Cup Day is nothing, and the cost of arguing about it is not.
What do I fix in the next 7 days?
Two options, and the honest answer is that the cheap one is genuinely good enough for most lists.
Option A, the fallback, one afternoon of work. Hard-code the Perth Clock rule as the scheduler’s behaviour whenever the recipient timezone is unknown or unverified. Compute the window from zoneinfo at run time rather than storing offsets. Add a Sunday and public-holiday blackout. You lose two to three hours of dialling capacity a day on unresolved records — three during daylight saving, two outside it, measured against the eleven-hour window you would have if you knew the zone — and you cannot generate this incident again.
Option B, resolve the location, one to three weeks. Capture state at list-intake time and make it a required field; derive a timezone from postcode rather than state so Broken Hill and Lord Howe resolve correctly; store the IANA zone identifier on the contact record, never a fixed offset; and re-derive at dial time, not at import time, so a record imported in September is still right in December. Records that fail to resolve fall back to Option A rather than to the account default. That last clause is the one people forget, and it is the one that caused your incident.
| Signal | Do the fallback (Option A) | Resolve locations (Option B) |
|---|---|---|
| Share of list with no address or postcode | Above about 30% | Below about 30% |
| Daily dial volume | Under a few thousand | Enough that two to three lost hours a day is real money |
| Campaign spans multiple states | Either way | Either way, and you need it |
| You already had a complaint | Do this today regardless | Then do this |
Whichever you pick, log the timezone decision next to the call, not just the call. When someone asks in six months why a particular number was dialled at a particular moment, the answer you want in the record is the zone identifier, the offset applied and the source of the location — not a bare local timestamp that has to be reverse engineered.
Two related pieces if you are rebuilding this properly: the consent wording and the records that prove it, because consent is the one thing that legitimately moves the window; and what the 2027 sunset of the telemarketing industry standard means for AI callers, since the Federal Register of Legislation records the instrument these hours sit in as scheduled for repeal on 1 April 2027 under section 50 of the Legislation Act 2003 (register entry for F2017L00323, read 10 September 2026). What replaces it, and when, is not yet on the register. Anything you hard-code today should be configuration, not constants.
What it costs to run this yourself
Timing is not an afterthought in our architecture. SmartReach AI™ orchestrates message, channel and timing by country, industry and profile, with follow-up pacing built into the same decision rather than bolted on afterwards, and PrecisionPitch AI™ continuously split-tests scripts against real success outcomes. We built it that way because the alternative is what you are dealing with today: a scheduler that knows how to dial and does not know what time it is where the phone is ringing.
Everything above is reproducible without us. That is deliberate — the Perth Clock rule is nine lines of Python and it is yours. What it costs to run is the part nobody mentions: someone has to own the timezone data, watch the two daylight saving dates a year, and re-derive on every dial. Zian is in partnership-application beta. There is no free trial and no self-serve signup; if the calling-hours problem is one symptom of an outbound stack you no longer trust, apply for partnership and we will look at the whole thing.
Frequently asked questions
Does the 9am to 8pm rule follow the caller or the person being called?
The person being called. The Do Not Call Register industry standards page, published by the Australian Communications and Media Authority and read on 10 September 2026, requires a caller to terminate a call immediately once they are made aware that the person is not at their usual residential address, that the time at the location of that person is outside the permitted calling times, and that the person has not asked for the call to continue. Your server timezone is never the reference point.
What time can an AI agent legally call in Australia?
Telemarketing calls are permitted 9:00am to 8:00pm on weekdays and 9:00am to 5:00pm on Saturdays, with no calls on Sundays or national public holidays. Research calls run to 8:30pm on weekdays and are permitted 9:00am to 5:00pm on Sundays. Those are local times at the recipient location, and they can be varied by consent.
What is the safe calling window if I only have a mobile number?
During daylight saving, 01:00 to 09:00 UTC on a weekday. That is 9:00am to 5:00pm in Perth and midday to 8:00pm in Sydney, and it is inside the permitted window in every mainland jurisdiction at once. Outside daylight saving the window widens by an hour, to 01:00 to 10:00 UTC.
Why can I not work out the timezone from an 04 number?
Because the ACMA treats mobile numbers as a class of their own. Its Choose your phone number page lists geographic numbers as those starting with 02, 03, 07 or 08, and mobile numbers as a separate type starting with 04. Numbers are also portable between telcos, so the carrier tells you nothing either. Four geographic area codes cannot map onto six distinct Australian UTC offsets, so even a landline prefix will not give you a timezone.
Which Australian postcodes break a state to timezone lookup?
Broken Hill and the surrounding Yancowinna district in far western New South Wales run on central time rather than eastern, which the IANA time zone database records as the separate zone Australia/Broken_Hill. Lord Howe Island is also New South Wales and shifts by only 30 minutes for daylight saving. Eucla in Western Australia sits at UTC plus 8 hours 45 minutes.
Is a single call outside the permitted hours automatically a breach?
No. Consent to be called at that time changes the position, and the obligation in the standard is framed around what the caller is made aware of and whether the call is terminated. If a complaint has reached the regulator, get advice from a communications lawyer and deal with the Australian Communications and Media Authority directly rather than relying on a vendor summary, including this one.