Skip to content

Scheduler actions

12 actions. Every field marked Required must be sent; account, dryRun, idempotencyKey, confirmCredits and quoteId are the control fields every surface adds.

scheduler.get_settings · read

The account’s scheduler settings: timezone, posting window, quote fallback and default post automations with saved templates.

  • MCP tool: scheduler_get_settings. Catalog: reach it with find_actions and run_read_action, or turn on the full toolset.
  • REST: GET /v1/scheduler/get-settings
  • CLI: xholic scheduler get-settings
  • Scope: read
  • Plan: Every plan, including the trial
  • Cost: Free.
  • Rate limit bucket: read

Input

Field Type Required Description
account string ≤ 64 chars No X account to act on, as @handle. Leave it out to use the connection’s default account.

scheduler.update_settings · publish

Replace the scheduler timezone and default post automations (with templates). Read scheduler.get_settings first and send the whole automation object back with your changes. Call it only when the user asked for this in the conversation; never on your own initiative.

  • MCP tool: scheduler_update_settings. Catalog: reach it with find_actions and run_write_action, or turn on the full toolset.
  • REST: POST /v1/scheduler/update-settings
  • CLI: xholic scheduler update-settings
  • Scope: publish
  • Plan: Every plan, including the trial
  • Cost: Free.
  • Rate limit bucket: write

Input

Field Type Required Description
timezone string ≤ 100 chars Yes IANA timezone such as America/New_York. Use the user’s timezone.
automation object Yes The full default automation settings as returned by scheduler.get_settings, including templates.
account string ≤ 64 chars No X account to act on, as @handle. Leave it out to use the connection’s default account.
dryRun boolean No Return exactly what would happen without doing it.
idempotencyKey string ≤ 200 chars No A unique key for this write. Repeating a call with the same key returns the first result instead of acting twice.

scheduler.set_posting_window · write

Set the hours of the day posts may go out at, or clear it with null. Next-slot and best-time scheduling stay inside it. Call it only when the user asked for this in the conversation; never on your own initiative.

  • MCP tool: scheduler_set_posting_window. Catalog: reach it with find_actions and run_write_action, or turn on the full toolset.
  • REST: POST /v1/scheduler/set-posting-window
  • CLI: xholic scheduler set-posting-window
  • Scope: write
  • Plan: Every plan, including the trial
  • Cost: Free.
  • Rate limit bucket: write

Input

Field Type Required Description
timezone string ≤ 100 chars Yes IANA timezone such as America/New_York. Use the user’s timezone.
postingWindow object or null Yes
postingWindow.startMinutes integer 0–1439 Yes Minutes after local midnight, e.g. 540 for 9:00.
postingWindow.endMinutes integer 0–1439 Yes Minutes after local midnight; must differ from start.
account string ≤ 64 chars No X account to act on, as @handle. Leave it out to use the connection’s default account.
dryRun boolean No Return exactly what would happen without doing it.
idempotencyKey string ≤ 200 chars No A unique key for this write. Repeating a call with the same key returns the first result instead of acting twice.

scheduler.set_quote_fallback · write

Choose what happens when a scheduled quote post’s original is gone at publish time: post without the quote, or fail the post. Call it only when the user asked for this in the conversation; never on your own initiative.

  • MCP tool: scheduler_set_quote_fallback. Catalog: reach it with find_actions and run_write_action, or turn on the full toolset.
  • REST: POST /v1/scheduler/set-quote-fallback
  • CLI: xholic scheduler set-quote-fallback
  • Scope: write
  • Plan: Every plan, including the trial
  • Cost: Free.
  • Rate limit bucket: write

Input

Field Type Required Description
timezone string ≤ 100 chars Yes IANA timezone such as America/New_York. Use the user’s timezone.
quoteUnavailableAction “SEND_WITHOUT_QUOTE” \ “FAIL_POST” Yes
account string ≤ 64 chars No X account to act on, as @handle. Leave it out to use the connection’s default account.
dryRun boolean No Return exactly what would happen without doing it.
idempotencyKey string ≤ 200 chars No A unique key for this write. Repeating a call with the same key returns the first result instead of acting twice.

scheduler.lookup_quote · read

Preview the X post behind a URL before quoting it: author, text, time and media.

  • MCP tool: scheduler_lookup_quote. Catalog: reach it with find_actions and run_read_action, or turn on the full toolset.
  • REST: GET /v1/scheduler/lookup-quote
  • CLI: xholic scheduler lookup-quote
  • Scope: read
  • Plan: Every plan, including the trial
  • Cost: Live X lookup: no credits, counts toward the plan’s X data limits.
  • Rate limit bucket: live_x

Input

Field Type Required Description
url string ≤ 2048 chars Yes The X post URL.
account string ≤ 64 chars No X account to act on, as @handle. Leave it out to use the connection’s default account.

scheduler.parse_time · read

Turn words like “tomorrow 9am” or “next friday at noon” into an exact ISO time in the account’s timezone. Changes nothing.

  • MCP tool: scheduler_parse_time. Catalog: reach it with find_actions and run_read_action, or turn on the full toolset.
  • REST: GET /v1/scheduler/parse-time
  • CLI: xholic scheduler parse-time
  • Scope: read
  • Plan: Every plan, including the trial
  • Cost: Free.
  • Rate limit bucket: read

Input

Field Type Required Description
input string ≤ 200 chars Yes
timezone string ≤ 100 chars Yes IANA timezone such as America/New_York. Use the user’s timezone.
account string ≤ 64 chars No X account to act on, as @handle. Leave it out to use the connection’s default account.

scheduler.schedule_view · read

The posting calendar day by day: scheduled posts, open slots and best times, for up to 42 days.

  • MCP tool: scheduler_schedule_view. Catalog: reach it with find_actions and run_read_action, or turn on the full toolset.
  • REST: GET /v1/scheduler/schedule-view
  • CLI: xholic scheduler schedule-view
  • Scope: read
  • Plan: Every plan, including the trial
  • Cost: Free.
  • Rate limit bucket: read

Input

Field Type Required Description
tagIds string ≤ 1900 chars No Comma-separated tag ids from list_tags, to show only posts with those tags.
timezone string ≤ 100 chars No IANA timezone such as America/New_York. Use the user’s timezone.
days integer 1–42 No Days to show (default 21).
startDate string (date) No First day, YYYY-MM-DD. Defaults to today.
account string ≤ 64 chars No X account to act on, as @handle. Leave it out to use the connection’s default account.

scheduler.dashboard_summary · read

What needs attention in the scheduler: failed posts, failed automations and what’s coming up next.

  • MCP tool: scheduler_dashboard_summary. Catalog: reach it with find_actions and run_read_action, or turn on the full toolset.
  • REST: GET /v1/scheduler/dashboard-summary
  • CLI: xholic scheduler dashboard-summary
  • Scope: read
  • Plan: Every plan, including the trial
  • Cost: Free.
  • Rate limit bucket: read

Input

Field Type Required Description
account string ≤ 64 chars No X account to act on, as @handle. Leave it out to use the connection’s default account.

scheduler.acknowledge_alert · write

Mark a failed post or failed automation alert from scheduler.dashboard_summary as seen so it stops showing.

  • MCP tool: scheduler_acknowledge_alert. Catalog: reach it with find_actions and run_write_action, or turn on the full toolset.
  • REST: POST /v1/scheduler/acknowledge-alert
  • CLI: xholic scheduler acknowledge-alert
  • Scope: write
  • Plan: Every plan, including the trial
  • Cost: Free.
  • Rate limit bucket: write

Input

Field Type Required Description
kind “POST” \ “AUTOMATION” Yes
postId string ≤ 120 chars Yes Xholic scheduled post id, from get_queue.
ruleId string ≤ 120 chars No Required when kind is AUTOMATION.
account string ≤ 64 chars No X account to act on, as @handle. Leave it out to use the connection’s default account.
dryRun boolean No Return exactly what would happen without doing it.
idempotencyKey string ≤ 200 chars No A unique key for this write. Repeating a call with the same key returns the first result instead of acting twice.

scheduler.best_times · read

The best upcoming times for this account to post, from when its audience engages. Use before scheduling when the user wants a good time rather than a set one.

  • MCP tool: best_posting_times. Loaded by default in MCP clients.
  • REST: GET /v1/scheduler/best-times
  • CLI: xholic scheduler best-times
  • Scope: read
  • Plan: Every plan, including the trial
  • Cost: Free.
  • Rate limit bucket: read

Input

Field Type Required Description
timezone string ≤ 100 chars No IANA timezone such as America/New_York. Use the user’s timezone.
slotCount integer 1–140 No How many times to return (default 12).
windowStartMinutes integer 0–1439 No Only times after this, in minutes after local midnight. Send with windowEndMinutes.
windowEndMinutes integer 0–1439 No Only times before this, in minutes after local midnight. Send with windowStartMinutes.
account string ≤ 64 chars No X account to act on, as @handle. Leave it out to use the connection’s default account.

scheduler.list_slots · read

The account’s weekly posting slots that “next slot” scheduling fills.

  • MCP tool: scheduler_list_slots. Catalog: reach it with find_actions and run_read_action, or turn on the full toolset.
  • REST: GET /v1/scheduler/list-slots
  • CLI: xholic scheduler list-slots
  • Scope: read
  • Plan: Every plan, including the trial
  • Cost: Free.
  • Rate limit bucket: read

Input

Field Type Required Description
account string ≤ 64 chars No X account to act on, as @handle. Leave it out to use the connection’s default account.

scheduler.replace_slots · write

Replace every weekly posting slot with this list. Slots left out are removed, so read scheduler.list_slots first. Call it only when the user asked for this in the conversation; never on your own initiative.

  • MCP tool: scheduler_replace_slots. Catalog: reach it with find_actions and run_write_action, or turn on the full toolset.
  • REST: POST /v1/scheduler/replace-slots
  • CLI: xholic scheduler replace-slots
  • Scope: write. Destructive: it can’t be taken back
  • Plan: Every plan, including the trial
  • Cost: Free.
  • Rate limit bucket: write

Input

Field Type Required Description
slots array of object (max 140) Yes
account string ≤ 64 chars No X account to act on, as @handle. Leave it out to use the connection’s default account.
dryRun boolean No Return exactly what would happen without doing it.
idempotencyKey string ≤ 200 chars No A unique key for this write. Repeating a call with the same key returns the first result instead of acting twice.