Skip to main content
Glama

Schedule Post

autoposter_schedule_post

Schedules a post for a future date/time. Automatically converts local time using workspace/user timezone into UTC. Accepts mediaUrls (public URLs) or files (AI-generated images or uploaded files from chat up to 100MB). For large video files over 100MB, tell the user to provide a direct public file URL or use autoposter_get_media_upload_url.

Input Schema

NameRequiredDescriptionDefault
filesNoOptional files generated in chat or uploaded by user to attach to the post.
contentYesBase text content of the post.
mediaIdsNoOptional list of existing media IDs from workspace media library (from autoposter_list_media).
postTypeNoOptional target format where applicable: 'post' (default feed post/carousel), 'reel' (Instagram or Facebook Reel; requires video), 'story' (Instagram or Facebook 24h Story; requires image or video), or 'shorts' (YouTube Shorts; vertical video under 60s). Ignored on platforms without format variants.
timezoneNoOptional IANA timezone (e.g. 'America/New_York'). If omitted, defaults to workspace or user timezone.
mediaUrlsNoOptional public image or video URLs to attach (e.g. from autoposter_upload_media).
accountIdsYesList of account IDs from autoposter_list_accounts.
scheduledAtYesScheduled ISO timestamp or local datetime string, e.g. '2026-10-05T14:00:00'.
platformContentNoOptional platform-specific content overrides (e.g. twitter, linkedin).

Output Schema

NameRequiredDescriptionDefault
statusYesStatus of the scheduled post ('scheduled' or 'pending_approval').
messageNoStatus message.
successYesWhether the post was successfully scheduled.
timezoneNoTimezone applied.
scheduledAtYesScheduled time in UTC.
scheduledPostsYesList of scheduled posts per target account.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / postType
      Added value: +{
      +  "description": "Optional target format where applicable: 'post' (default feed post/carousel), 'reel' (Instagram or Facebook Reel; requires video), 'story' (Instagram or Facebook 24h Story; requires image or video), or 'shorts' (YouTube Shorts; vertical video under 60s). Ignored on platforms without format variants.",
      +  "enum": [
      +    "post",
      +    "reel",
      +    "story",
      +    "shorts"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / scheduledPosts / items / properties / postType
      Added value: +{
      +  "description": "Target format ('post', 'reel', 'story', or 'shorts').",
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "message": {
      +      "description": "Status message.",
      +      "type": "string"
      +    },
      +    "scheduledAt": {
      +      "description": "Scheduled time in UTC.",
      +      "type": "string"
      +    },
      +    "scheduledPosts": {
      +      "description": "List of scheduled posts per target account.",
      +      "items": {
      +        "properties": {
      +          "accountName": {
      +            "description": "Target account name.",
      +            "type": "string"
      +          },
      +          "id": {
      +            "description": "Post ID.",
      +            "type": "string"
      +          },
      +          "platform": {
      +            "description": "Target platform.",
      +            "type": "string"
      +          },
      +          "scheduledAt": {
      +            "description": "Scheduled timestamp.",
      +            "type": "string"
      +          },
      +          "status": {
      +            "description": "Post status.",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "platform",
      +          "status",
      +          "scheduledAt"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "status": {
      +      "description": "Status of the scheduled post ('scheduled' or 'pending_approval').",
      +      "type": "string"
      +    },
      +    "success": {
      +      "description": "Whether the post was successfully scheduled.",
      +      "type": "boolean"
      +    },
      +    "timezone": {
      +      "description": "Timezone applied.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "success",
      +    "status",
      +    "scheduledAt",
      +    "scheduledPosts"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations establish the write/mutation profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true). The description adds genuinely useful non-obvious behavior: automatic local-to-UTC conversion via workspace/user timezone, the 100MB attachment ceiling, and a fallback path for oversized files. Return values are covered by the output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core scheduling action, then timezone behavior, then media handling. Dense and mostly waste-free, though the media sentence packs several distinct concepts together.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 params, full schema coverage, and an output schema, the description supplies the operationally important extras: timezone conversion, media size limits, and the oversized-file escape hatch. It stops short of documenting platform applicability or permission requirements, but the enum hint and annotations cover most of that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is already 100%, so the structured fields document themselves. The description nonetheless adds cross-parameter meaning by clarifying the three media paths (mediaUrls public URLs, files for chat-generated/uploaded media, mediaIds from the library) and the size constraint, which the schema does not state.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Schedules a post for a future date/time'), which is clear and actionable. It implicitly differs from siblings like draft_post and publish_draft, but never explicitly contrasts them, leaving the agent to infer which lifecycle stage this represents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides an explicit conditional alternative for the >100MB video case ('use autoposter_get_media_upload_url'), which is strong. However, it gives no guidance on when to schedule versus draft or publish, so the primary routing decision among sibling tools is left unaddressed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources