Skip to main content
Glama
hermoso-ai

Hermoso

Official

Duplicate a scheduled post

duplicate_scheduled
Destructive

Copies an existing scheduled or published post into a new independent queued post, so you can reuse or re-run it with overrides and a new time or next free slot.

Instructions

Copy an existing scheduled or already-published post into a NEW queued post — the way to run a creative again, reuse a post that worked as the starting point for the next one, or re-send something after it went out. It copies the caption, media, per-channel captions, title, description, tags and the target board / Page / company Page / listing, and ANY of those can be overridden in the same call. Give a new time in at, or useQueue:true to drop it into the brand’s next free posting slot. The copy is INDEPENDENT — editing or cancelling it never touches the original — and it is a genuinely new post rather than a re-send, so it publishes even where the original already did. To re-fire only the channels that FAILED, use retry_scheduled instead.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
atNowhen the copy goes out — ISO timestamp or epoch milliseconds (default: an hour from now)
idYesthe post to copy, from list_scheduled
linkNo
brandNoWHICH PROFILE this post is in — id or exact name from list_brands; needed when it is not the profile this connection is pinned to. A name that matches no profile, or two, is REFUSED.
titleNo
chatIdNoTELEGRAM — which chat, group or channel the copy goes to (@username or numeric id)
ideaIdNoshort id of the content-plan idea this post came from
pageIdNoFACEBOOK / INSTAGRAM / THREADS — which connected Page (list_meta_pages)
recipeNothe post's FORMAT id, e.g. "slideshow" or "imessage_chat" — post_performance groups by it, so reuse one id per format
boardIdNoPINTEREST — the board for the copy (list_pinterest_boards)
messageNoa different caption for the copy
captionsNoper-channel caption overrides for the copy
channelsNopost the copy to these channels instead of the original’s
imageUrlNo
timezoneNoIANA zone for the queue, e.g. "America/New_York"
useQueueNoinstead of naming a time, take the brand’s next free posting slot
videoUrlNo
imageUrlsNoCAROUSEL — an ORDERED list of image URLs published as ONE swipeable post
locationIdNoGOOGLE BUSINESS — which listing (list_business_locations)
visibilityNo
linkedinOrganizationIdNoLINKEDIN — publish the copy as this company Page (list_linkedin_pages)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.1.374
    • changedInput schema / properties / brand / description
      Previous value: -"WHICH BRAND this post is in — id or exact name from list_brands; needed when it is not the brand this connection is pinned to. A name that matches no brand, or two, is REFUSED."New value: +"WHICH PROFILE this post is in — id or exact name from list_brands; needed when it is not the profile this connection is pinned to. A name that matches no profile, or two, is REFUSED."
  2. Changed1 schema field changedv0.1.320
    • changedInput schema / properties / brand / description
      Previous value: -"WHICH BRAND this post is in — the id or exact name from list_brands. Needed when the post lives in a brand this connection is not pinned to: a post you can CREATE in a brand must be manageable there too, without switching the whole connection. A name that matches no brand, or two, is REFUSED."New value: +"WHICH BRAND this post is in — id or exact name from list_brands; needed when it is not the brand this connection is pinned to. A name that matches no brand, or two, is REFUSED."
  3. Changed2 schema fields changedv0.1.281
    • addedInput schema / properties / ideaId
      Added value: +{
      +  "description": "short id of the content-plan idea this post came from",
      +  "type": "string"
      +}
    • addedInput schema / properties / recipe
      Added value: +{
      +  "description": "the post's FORMAT id, e.g. \"slideshow\" or \"imessage_chat\" — post_performance groups by it, so reuse one id per format",
      +  "type": "string"
      +}
  4. Changed1 schema field changedv0.1.251
    • addedInput schema / properties / brand
      Added value: +{
      +  "description": "WHICH BRAND this post is in — the id or exact name from list_brands. Needed when the post lives in a brand this connection is not pinned to: a post you can CREATE in a brand must be manageable there too, without switching the whole connection. A name that matches no brand, or two, is REFUSED.",
      +  "type": "string"
      +}
  5. Addedv0.1.161

TDQS

A4.5/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, destructiveHint=true, idempotentHint=false and openWorldHint=true, so safety is partly covered. The description adds genuinely useful context beyond that: the copy is INDEPENDENT (editing/cancelling never touches the original), it is a new post rather than a re-send, and it publishes even where the original already did. It stops short of explaining retry/idempotency implications for repeated calls, which the idempotentHint=false annotation implies.

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?

Front-loaded with the core action, then override capability, then the at/useQueue mechanism, then independence, then the sibling redirect. Dense and slightly long for a single description, but each clause carries distinct information.

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?

For a 21-parameter mutation tool with no output schema, the description covers the operation's semantics, override scope, scheduling options, and the key sibling alternative. Remaining gaps (e.g., what the call returns, behavior on invalid channel/board combinations) are minor against the rich schema and annotations.

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 coverage is 76%, so the schema already documents most parameters. The description still adds meaning by enumerating what is copied (caption, media, per-channel captions, title, description, tags, target board/Page/company Page/listing) and clarifying that ANY of them can be overridden in the same call, plus the `at` vs useQueue:true choice. It does not add much beyond the schema for the platform-specific id params.

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

Purpose5/5

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

States a specific verb and resource ('Copy an existing scheduled or already-published post into a NEW queued post') and immediately distinguishes the outcome from a re-send. It also names the sibling it is not (retry_scheduled), so an agent can separate it from reschedule/cancel/retry without opening a schema.

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

Usage Guidelines5/5

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

Gives explicit use cases (re-run a creative, reuse a winning post as a starting point, re-send after publish) and an explicit alternative with its selecting condition: 'To re-fire only the channels that FAILED, use retry_scheduled instead.' When/when-not guidance is present.

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

Deploy Server

Other Tools