Create calendar topic
create_calendar_topicCreates one topic in a site’s content calendar from a title, the same as Add topic in the Calendar with a title the user writes. AI picks the topic’s keywords, intent, outline and article type (blogType), Keytomic checks the keywords’ search volume with DataForSEO, and AI checks the topic against the site’s current topics and pages, unless allowCannibalization is true. A created topic uses 1 of the site’s monthly keyword searches (the keywordSearches section of get_project shows them). If the topic collides, nothing is created and the result lists the collisions (status collision): a collision found from the title alone uses no keyword search, and a collision found after AI picked the keywords uses 1. Show the collisions to the user, and if the user still wants the topic, call again with allowCannibalization true; a call on the same day does not use a second keyword search for this title. Creating a topic uses no articles: the daily automation writes the article on its scheduled day, and then it counts. But the site must have an article left this month, or an Article Credit. A repeated call creates the topic again. The site needs a content calendar run and saved Image Studio settings first. Returns the created topic; when the workspace cannot open it for now, returns lockedTopicCount instead.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"projectId": "<projectId>",
"title": "<title>"
},
"name": "create_calendar_topic"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Topic title, which becomes the article title, such as "How to feed a sourdough starter". AI finds the topic’s keywords from it. | |
| projectId | Yes | Site to act on, from list_sites. | |
| scheduledDay | No | Scheduled day, YYYY-MM-DD, as the Calendar shows it (UTC). On this day the daily automation writes the article and, with automatic publishing on, publishes it. Pick tomorrow (UTC) or a later day: the automation writes each day’s article at 00:00 UTC and never goes back to a past day. Without it, or with null, the topic has no day, and the automation does not write the article until a day is set with update_calendar_topic. | |
| authorProfileId | No | Author of this article, from the settings section of get_project. Without it, the site’s default author applies. | |
| customInstructions | No | Instructions the writer follows for this article only, up to 1000 characters. | |
| allowCannibalization | No | true creates the topic even when it collides with current topics or pages. Send it only after the user saw the collisions and agreed. |