Docs menu
Get started
What is Opus GrowthQuickstartAdd to your AIHow it worksSafety and approvalCreditsPlansFAQAI apps
All AI appsChatGPTClaudeGrokPerplexityClaude CodeCodexGemini CLIOpenClawCursorVS CodeWindsurfOther MCPConnect ad platforms
Google AdsMeta AdsLinkedIn AdsMicrosoft AdvertisingTikTok AdsChatGPT AdsAgencies and MCCConnect data sources
Search ConsoleGoogle AnalyticsYouTubeBusiness ProfileTag ManagerWebsites and SEO
AI ServerWordPressSEO IntelligenceClick fraudTool reference
All toolsGoogle AdsMeta AdsTikTok AdsLinkedIn AdsMicrosoft AdvertisingChatGPT AdsSearch ConsoleGoogle AnalyticsYouTubeBusiness ProfileTag ManagerWordPressAI ServerSEO IntelligenceClick fraudCross-channelAccount and billingLanguage
Set Ad Schedule
Sets a campaign's ad schedule (day/hour): serving hours and per-hour bid adjustments.
- Type
- Makes changes
- Credits
- 5
- Platform
- Google Ads
- Approval
- Preview first, applied after you approve
What it does
Sets a campaign's ad schedule (day/hour): serving hours and per-hour bid adjustments. schedule: comma-separated 'DAY HH:MM-HH:MM' blocks ('MONDAY 09:00-18:00, TUESDAY 09:00-18:00'). Minutes must be 00/15/30/45. Days: MONDAY..SUNDAY. A range crossing midnight cannot be a single block; it is two blocks ('SATURDAY 22:00-24:00, SUNDAY 00:00-02:00'). mode='add' (default) adds the blocks alongside the campaign's existing ones; it can only WIDEN a schedule, and Google rejects blocks that overlap existing ones. mode='replace' first DELETES every existing schedule block of the campaign and writes only the ones given here (remove+create in a single request, so the campaign never briefly falls back to 24/7); this is how an existing schedule shrinks or changes shape. get_ad_schedule returns the current schedule.
Bid modifier (percentage, like Microsoft's bid_adjustment): bid_modifier_pct applies to every block, or put it per block as a trailing percentage — 'SATURDAY 22:00-24:00 -50%'. Range -90%..+900%; -100% is not possible — to stop serving in an hour range, leave it OUT of a mode='replace' schedule. Fully automated bidding (tCPA/tROAS/Maximize conversions) ACCEPTS but IGNORES bid modifiers.
Once a schedule exists, the campaign runs ONLY during those hours. confirm=false → dry-run.
MCP: set_ad_schedule
How to use it
You don't call tools by name. Write what you want in ChatGPT, Claude or another assistant connected to Opus Growth, in your own words; it picks this tool when it fits.
Parameters
| Name | Type | Required | Default | |
|---|---|---|---|---|
| customer_id | string | Required | · | Google Ads customer account ID to query or change. Use the numeric ID returned by list_accounts; omit separators unless this tool explicitly says otherwise. |
| campaign_id | string | Required | · | Exact campaign identifier to target. Use the ID returned by an Opus Growth list or create operation, not a display name. |
| schedule | string | Required | · | Exact schedule value for set ad schedule. Supply text in the provider's required format; when it selects an existing resource, use the exact identifier returned by the relevant list or search operation. |
| mode | string | Optional | add | add · replace · Behaviour mode for this operation. Use one of the supported modes documented by the tool. |
| bid_modifier_pct | number | Optional | 0.0 | Bid modifier pct expressed as the percentage format required by this operation. |
| confirm | boolean | Optional | false | Safety confirmation for a state-changing operation. Leave false to preview or validate; set true only after the user explicitly approves the shown change. |
Related tools
account_auditAccount Snapshotaccount_snapshotAdd Keywordsadd_keywordsAdd Negative Keywordadd_negative_keywordAdd PMax Imagesadd_pmax_imagesApply Recommendationapply_recommendationBudget Pacing Alertsbudget_pacing_alertsCompetitor Adscompetitor_adsConnect Business Profileconnect_business_profile