Skip to content

Ads, creatives and traffic

Facebook ad scheduling: how to set it up, and the few cases where dayparting pays

Meta can limit an ad set to the hours you choose, but only on a lifetime budget, and the hours follow each viewer's local clock. That is exactly what a call team needs. For most other VSL funnels, two weeks of hourly numbers are too thin to schedule on, and the schedule costs more than it saves.

By the RevvyScales teamPublished 12 min read

Reading pathPart 6 of 8 · Meta ads for supplement offers
  1. Facebook Ads for Supplements: Rules, Hooks and Setup
  2. Advantage+ Sales Campaigns: What You Still Control
  3. Facebook Ads Learning Phase: 50 Events, Budget, Edits
  4. Facebook Ads URL Parameters: Macros, UTMs, Naming
  5. Facebook Attribution Window: 7-Day Click, 1-Day View
  6. Facebook Ad Scheduling: Setup and When It Pays Off
  7. Ad Fatigue: How to Spot It and What to Refresh First
  8. Ad Creative Testing: Budgets, Metrics and Kill Rules
On this page
  1. How to set up Facebook ad scheduling, step by step
  2. Whose clock the schedule follows
  3. Why a schedule often costs more than it saves
  4. Reading hourly results without fooling yourself
  5. When dayparting is worth it
  6. Better levers than a schedule
  7. Google's ad schedule works differently
  8. Before you switch a schedule on
  9. Frequently asked questions

You can tell Meta to run an ad set only on certain days and at certain hours, if it has a lifetime budget with an end date. The schedule follows each viewer's local time, not your ad account's. That's Facebook ad scheduling, or dayparting. Use it when part of your funnel works set hours, like a call team, not to chase hours that looked good in a small sample.

How to set up Facebook ad scheduling, step by step

Meta's developer documentation sets the rules. Scheduling works only with lifetime budgets, the schedule lives on the ad set and covers every ad in it, and each block starts and ends on the hour and lasts at least an hour (Meta's pacing and scheduling docs). The five stages below turn those rules into a setup you can check before the ad set goes live:

Scheduling an ad set on Meta, stage by stage

Per Meta's developer documentation on pacing and scheduling

1Choose the hours in your buyers' local time

What happens: Write down the days of the week and the hours you want the ads to run, as whole hours in the viewer's local time. Each block starts and ends on the hour and lasts at least an hour.

Why it matters: Meta applies the schedule in the audience's time zone, not your ad account's, so hours planned on your own clock shift for viewers elsewhere.

What goes wrong:

  • Planning 9 to 6 in office time for a country that spans several time zones.
  • Ending the ads exactly when the phones close, though a late clicker still has to watch the VSL before calling.

2Switch to a lifetime budget with an end date

What happens: Give the ad set a lifetime budget and an end date, not a daily budget.

Why it matters: Meta's documentation is direct: "Only use ad scheduling with lifetime budgets." A lifetime budget in turn requires an end time.

What goes wrong:

  • An evergreen ad set on a daily budget: it needs a lifetime amount and an end date before a schedule can go on.
  • An end date set too close, so the ad set stops before you meant it to.

3Add the schedule to the ad set

What happens: Enter the blocks on the ad set. They apply to every ad inside it.

Why it matters: The schedule is an ad set setting, and Meta's documentation says it applies to all the ads under that ad set.

What goes wrong:

  • One ad that needs different hours: move it to its own ad set with its own schedule.

4Keep a comparison

What happens: Run an unscheduled copy of the ad set, or record the unscheduled weeks before it, and fix the metric and the length in advance: cost per purchase from your own orders, over at least two full weeks.

Why it matters: Without a comparison you can't tell whether the schedule helped or the week was simply different.

What goes wrong:

  • Judging on the first few days.
  • Comparing against weeks with a different offer, budget or creative.

Read more: Facebook Ads Learning Phase: 50 Events, Budget, Edits

5Read results in the viewer's time zone

What happens: Meta's reporting API has two hourly breakdowns, one in the ad account's time zone and one in the audience's. Read the audience version, the clock the schedule follows.

Why it matters: For anyone outside your time zone, the two breakdowns put the same results in different hours.

What goes wrong:

  • Expecting reach and frequency by hour: hourly breakdowns return them as 0.
  • Looking for hourly data more than 13 months old, which returns nothing since January 2026.

Don't skip the fourth stage. Give the unscheduled copy the same ads and the same budget, start both on the same day, and leave both alone until the decision date: a new ad or a budget change in either one mid-test leaves you comparing two different things.

Whose clock the schedule follows

Meta's documentation says ad scheduling "applies to a target audience's time zone for ads in a set," not to the ad account's time zone. In a country with one time zone that's a footnote. In the US, it decides whether your schedule matches your phones.

Say your call team answers from 9 am to 6 pm Eastern and your ads target the continental US. Schedule 9 am to 6 pm and a viewer in Los Angeles sees ads from 9 am to 6 pm Pacific, which is noon to 9 pm Eastern. For three hours every day, West Coast prospects click, watch the VSL and find the phones closed.

There's a second, quieter leak. Someone who clicks at 5:55 pm still has to watch the video before calling, and a 20-minute VSL takes them past closing time. So stop the ads before the phones close; an hour early leaves room for a 20-minute video and a decision.

A 9-to-6 Eastern team that wants the ads off by 5 pm Eastern has three ways to lay out the schedule, each with its own catch:

Three ways to schedule a 9-to-6 Eastern call team

Continental US audience; the goal is ads off by 5 pm Eastern, an hour before the phones close

One ad set, 9 am to 6 pm

The schedule follows each viewer's clock, so Pacific viewers see ads until 6 pm Pacific.

Eastern viewers: 9 am to 6 pm Eastern
Pacific viewers: noon to 9 pm Eastern

The catch: three hours a day of West Coast clicks after the phones close, and East Coast clicks right up to closing time.

One ad set per time zone

Each ad set runs the local hours that match 9 am to 5 pm Eastern.

Eastern ad set: 9 am to 5 pm local
Pacific ad set: 6 am to 2 pm local
Central and Mountain: shifted to match

The catch: purchases split across up to four ad sets, each learning on its own.

One ad set, 9 am to 2 pm

Only the local hours that fall inside 9 am to 5 pm Eastern in every continental time zone.

Eastern viewers: 9 am to 2 pm Eastern
Pacific viewers: noon to 5 pm Eastern

The catch: East Coast afternoons go dark while the team is still at work.

Days work the same way as hours. Meta's schedule takes days of the week as well as times, so a team that doesn't work weekends can leave Saturday and Sunday out (Meta for Developers). It knows weekdays, not dates, so a public holiday still needs a manual pause.

Meta's API can also apply a schedule in the ad account's time zone instead of the viewer's. If you schedule through the API or a tool built on it, check which of the two it sets.

Why a schedule often costs more than it saves

Dayparting looks like free money: switch off the hours that don't sell and spend only when buyers are awake. In practice it buys an uncertain gain and charges four costs for it:

  1. The budget model changes. A schedule needs a lifetime budget with an end date, so an evergreen ad set has to give up its daily budget, and every extension is a date someone has to remember.
  2. Fewer hours, fewer purchases to optimize on. Every hour you switch off is an hour that can't produce a purchase for delivery to learn from. Ad sets that already struggle to collect the purchases Meta wants before delivery settles can least afford the cut; the learning phase post has the number.
  3. The same money in fewer hours. A lifetime budget spent only inside the schedule has to find its results in less time. An ad set that spent $150 a day around the clock becomes a $4,500 budget over 30 days; scheduled to 10 hours a day, it aims to spend that $4,500 in 300 hours instead of 720, or $15 an hour instead of $6.25, which can push up what you pay in those hours.
  4. Thin evidence. Most schedules rest on two or three weeks of hourly numbers, and those numbers are smaller than they look.

Reading hourly results without fooling yourself

First, know which clock you're reading. Meta's reporting API breaks results down by the hour the ads were delivered, in two versions: the ad account's time zone and the audience's (Meta for Developers). A schedule controls delivery and runs on the viewer's clock, so the audience version is the one that answers "which hours should the ads run". Your store's timestamps answer a different question: when people buy. If viewers watch your VSL at night and buy the next morning, the store shows quiet nights and busy mornings, and a schedule built on that would switch off the hours doing the selling.

Second, look at the size of the numbers. Plot two weeks of one illustrative ad set by hour of delivery, with the same ads, budget and audience in both, and the best hour moves:

Purchases by hour of delivery: two weeks of the same ad set

Illustrative numbers in the viewer's local time: 44 purchases in week 1, 43 in week 2, with the same ads, budget and audience

  • Week 1
  • Week 2
0246812 am6 am12 pm6 pm77

Hour of delivery

Show the numbers
Hour of deliveryWeek 1Week 2
12 am11
1 am00
2 am00
3 am10
4 am00
5 am01
6 am03
7 am10
8 am01
9 am47
10 am25
11 am31
12 pm42
1 pm11
2 pm21
3 pm02
4 pm51
5 pm13
6 pm30
7 pm52
8 pm74
9 pm23
10 pm03
11 pm22
Illustrative. Week 1's best hour is 8 pm (7 purchases); week 2's is 9 am (7 purchases). Small hourly counts swing this much on their own.

Week 1 crowns 8 pm and leaves 3 pm with nothing. Week 2 crowns 9 am, and 3 pm brings two purchases. Cut 3 pm after the first week and you'd have cut an hour that sold in the second. Even four-hour blocks swing: 4 pm to 8 pm brought 14 purchases in week 1 and 6 in week 2.

That's what chance looks like at this scale. Across 87 purchases in two weeks, an hour of the day averages about 3.6. If every hour sold exactly as well as every other and purchases arrived at random, you'd still expect about three hours with zero or one purchase and about two with seven or more. The dead hours and hot hours in a two-week report can be nothing more than that.

So before you act on a pattern:

  • Pool four weeks or more, then group hours into blocks of three or four.
  • Compare cost per purchase, not purchases. Spend isn't spread evenly through the day either, so an hour with more purchases may simply have had more money.
  • Read the ad set, not single ads. Hourly numbers for one ad are smaller still.
  • Expect gaps in the data. With hourly breakdowns, Meta's API returns reach and frequency as 0 and doesn't support unique metrics. Since January 12, 2026, hourly breakdowns also return nothing for start dates more than 13 months back (Meta for Developers), so export what you want to keep. And since August 6, 2026, direct API requests for the audience-time-zone breakdown may return nothing on some ad accounts until an account admin opts in through Ads Manager (Meta for Developers).

The check itself takes one export. Pull four weeks of the audience-time-zone breakdown, add up spend and purchases for each four-hour block, and divide. Say 4 pm to 8 pm comes out at $52 a purchase against $41 for the whole ad set (illustrative numbers). Before you cut it, look at each week on its own. If the block was the most expensive in all four weeks, you have a pattern worth testing. If it was the worst in two weeks and middling in the other two, you have noise and a good story.

When dayparting is worth it

A schedule earns its place when something outside the ad account runs on the clock. Work through the cases in order:

Should you daypart this ad set?

    Does a person have to respond in set hours, such as calls, chat or bookings?

    Is the offer itself time-bound, such as a launch or a sale with a fixed end?

    Has one block of hours held a clearly lower cost per purchase for four weeks or more, by delivery hour in the viewer's time zone?

    Best fit

    Schedule ads to staffed hours

    Someone has to answer, so ads that run while nobody can waste clicks. Put the ad set on a lifetime budget, schedule the hours your team covers in each viewer's local time, and stop the ads before the phones close so late clickers can still watch and call.

    Read more: High-Ticket VSL Funnel: The VSL-to-Call Playbook

    Best fit

    Use start and end dates, not hourly blocks

    Nobody needs to answer in set hours, but the offer runs on fixed dates. Give the ad set a lifetime budget with the promotion's real start and end, and let it deliver at any hour in between.

    Best fit

    Test a schedule against an unscheduled copy

    No staffing need and no fixed dates, but one block of hours has held a lower cost per purchase for four weeks or more. Run a scheduled copy against the unscheduled ad set for at least two full weeks, and keep the schedule only if the lower cost per purchase holds in your own orders.

    Best fit

    Don't daypart

    No staffing need, no fixed dates and no pattern that has held for weeks. A schedule would cut purchases the ad set learns from, with no evidence that the cut hours lose money. Control cost with a cost cap or a bid cap, or work on the offer.

    Read more: Target CPA: How to Set the CPA You Can Afford

    The first outcome is the common one for a VSL that sells a call instead of a checkout. The VSL-to-call funnel guide takes that funnel from the application questions to show-up rates.

    Even there, run the numbers before you schedule; these are illustrative, so swap in your own. Unscheduled, an ad set buys 1,000 VSL visitors a day for $1,200, and 300 of them arrive after the phones close. Daytime visitors book a call at 4%; after-hours visitors, who only have a booking form, at 1.5%. That's 32.5 bookings, about $36.92 each. Scheduled, the same $1,200 buys daytime visitors only. If they still cost $1.20, you get 40 bookings at $30 each. If squeezing the budget into fewer hours pushes the price to $1.40, you get about 34 at $35. The schedule stops paying at roughly $1.48 a visitor, where a daytime booking costs the same $36.92.

    For the second outcome, a promotion with real start and end dates, the page can follow the ads: in RevvyScales a page can go live and expire at set times, so the offer comes down when the promotion ends (scheduled visibility). Keep those dates real. A deadline that quietly resets is fake scarcity, and buyers who notice stop believing the rest of the page.

    Better levers than a schedule

    If the real goal is a lower cost per purchase, Meta has controls aimed at exactly that. Its Marketing API describes a cost cap as getting "the most results possible while Meta strives to meet the cost per action you set", and a bid cap puts a ceiling on the bid itself (Meta for Developers). Neither switches hours off; both give delivery a price limit to work within. Set the number from your economics rather than a hunch. Our target CPA post works out what you can afford to pay for a customer.

    Budget structure is the other lever: how much each ad set gets and whether you or Meta moves the money between them, which is the whole question of CBO vs ABO.

    For call funnels, there's a third option that keeps the ads running: give late visitors a next step that doesn't need a person. A booking calendar for the next morning, or a "we'll call you at 9" form, turns the closed-phones problem into tomorrow's first calls, and you can compare it with a schedule on cost per booked call.

    Google's ad schedule works differently

    If you also buy Google traffic, don't copy the schedule across. Google's ad schedules follow the account's time zone, not the viewer's, so the same "9 to 6" covers different hours on the two platforms (Google Ads Help). Switching hours off on Google doesn't save money either: campaigns still pace toward a monthly spend of 30.4 times the average daily budget, so the same spend lands in fewer hours. Google also lets you adjust bids by day and time instead of switching ads off; its example combines a +10% schedule adjustment with a +20% location adjustment to turn a $1.00 bid into $1.32 (Google Ads Help).

    Where the two platforms part ways:

    Ad scheduling on Meta and on Google Ads

    Meta ad scheduling

    • Needs a lifetime budget, which needs an end date
    • Set on the ad set; applies to every ad in it
    • Runs on each viewer's local time by default
    • Blocks start and end on the hour, at least one hour long
    • Switches delivery on and off by hour

    Google Ads ad schedule

    • Runs on the account's time zone
    • Campaigns default to "All day"; up to 6 schedules per day for each campaign
    • Bid adjustments by day and time, multiplied with device and location adjustments
    • Campaigns still pace toward 30.4 times the average daily budget a month
    • A block that crosses midnight needs one schedule on each day

    Not available for App campaigns.

    Sources: Meta's Pacing and Scheduling documentation; Google Ads Help on ad scheduling, setting up a schedule and schedule bid adjustments.

    Before you switch a schedule on

    Go down this list before the schedule goes live:

    Pre-launch check for a schedule

    0 of 8 done

    If the first box stays empty, leave the ad set unscheduled and put the effort into new creatives and offer tests instead.

    Frequently asked questions

    Can you schedule Facebook ads with a daily budget?

    No. Meta's developer documentation says to use ad scheduling only with lifetime budgets, and a lifetime budget needs an end date. An ad set on a daily budget needs a lifetime amount and an end date before a schedule can be added. That trade is one reason to schedule only when your funnel needs it, such as a sales team that answers calls in set hours.

    What time zone does Facebook ad scheduling use?

    The viewer's. Meta's documentation says ad scheduling applies to the target audience's time zone for the ads in an ad set, not the ad account's. A 9 am to 6 pm schedule runs 9 to 6 wherever each viewer is, which across the continental US stretches three hours past a 6 pm Eastern close. Meta's API also accepts the advertiser's time zone, so check which one a tool sets if you schedule through one.

    What are the best times to run Facebook ads?

    There is no universal answer, and a two-week hourly report rarely gives you a trustworthy one. Hourly purchase counts are small, so chance alone produces hours that look dead or hot. Pool at least four weeks, group hours into blocks, compare cost per purchase rather than purchase counts, and read the breakdown in the viewer's time zone. If no block stands out after that, leave the ad set unscheduled.

    Can I schedule individual ads in an ad set?

    No. Meta's documentation says an ad set's schedule applies to all the ads under that ad set. If one ad should run at different hours, for example a call-to-book ad that only makes sense while the phones are staffed, put it in its own ad set with its own schedule and lifetime budget, and compare the two on cost per booked call or purchase.

    How long should I test an ad schedule?

    At least two full weeks, and longer if the ad set gets only a few purchases a day. Run the scheduled version against an unscheduled copy or comparable unscheduled weeks, decide in advance which number settles it, usually cost per purchase in your own orders, and don't judge on the first few days. Hourly and daily numbers swing too much at small volumes to read early.

    Why is reach zero in an hourly breakdown?

    Meta's reporting API returns reach and frequency as 0 when results are broken down by hour, and it doesn't support unique metrics with hourly breakdowns. Use spend, impressions, clicks and purchases by hour, and look at reach for the whole day or week instead. Since January 12, 2026, hourly breakdowns also return nothing for start dates more than 13 months back, so export any history you want to keep.

    Sources

    1. Pacing and Scheduling — Meta for Developers
    2. Ad Set reference, Graph API v25.0 — Meta for Developers
    3. Insights API Breakdowns — Meta for Developers
    4. Marketing API Out-of-Cycle Changes 2025 — Meta for Developers
    5. Marketing API Out-of-Cycle Changes 2026 — Meta for Developers
    6. Bid Strategy — Meta for Developers
    7. Creative fatigue (Ads webhooks) — Meta for Developers
    8. About ad scheduling — Google Ads Help
    9. Set up an ad schedule — Google Ads Help
    10. Set up an ad schedule bid adjustment — Google Ads Help