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 settings
Section titled “Scheduler settings”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 withfind_actionsandrun_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. |
Update scheduler settings
Section titled “Update scheduler settings”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 withfind_actionsandrun_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. |
Set the posting window
Section titled “Set the posting window”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 withfind_actionsandrun_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. |
Set the quote fallback
Section titled “Set the quote fallback”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 withfind_actionsandrun_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. |
Look up a post to quote
Section titled “Look up a post to quote”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 withfind_actionsandrun_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. |
Parse a schedule time
Section titled “Parse a schedule time”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 withfind_actionsandrun_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. |
Calendar view
Section titled “Calendar view”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 withfind_actionsandrun_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 summary
Section titled “Scheduler summary”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 withfind_actionsandrun_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. |
Dismiss a scheduler alert
Section titled “Dismiss a scheduler alert”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 withfind_actionsandrun_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. |
Best times to post
Section titled “Best times to post”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. |
Weekly posting slots
Section titled “Weekly posting slots”scheduler.list_slots · read
The account’s weekly posting slots that “next slot” scheduling fills.
- MCP tool:
scheduler_list_slots. Catalog: reach it withfind_actionsandrun_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. |
Replace weekly posting slots
Section titled “Replace weekly posting slots”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 withfind_actionsandrun_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. |
