schedule_post
Connect in ChatGPTPut a post on the calendar. It is HELD and does not go out until mark_post_ready. This tool posts text; media is attached in Heavenly. BEFORE calling it, show the user the exact caption, networks and time and get a clear yes. runAt is an ISO 8601 time at least 10 minutes ahead. TikTok is refused here: TikTok posts are made in Heavenly's post composer.
Access token · publish · Changes account data
Parameters
caption string requiredView schema
{
"type": "string",
"maxLength": 20000
}networks array requiredView schema
{
"minItems": 1,
"maxItems": 12,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 40
}
}runAt string requiredView schema
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-]\\d{2}:\\d{2})))$"
}title string optionalView schema
{
"type": "string",
"maxLength": 400
}timezone string optionalView schema
{
"type": "string",
"maxLength": 100
}confirm boolean requiredMust be true, and only after the user has approved exactly what you show them.
View schema
{
"description": "Must be true, and only after the user has approved exactly what you show them.",
"type": "boolean",
"const": true
}Request example
{
"name": "schedule_post",
"arguments": {
"caption": "YOUR_CAPTION",
"networks": [
"YOUR_NETWORKS"
],
"runAt": "2030-01-01T12:00:00.000Z",
"confirm": true
}
}Replace example values with ids and arguments read from your own Heavenly account. This example does not execute a tool.
Returns
The tool result from Heavenly’s workspace, encoded as MCP text content. The connector returns isError when an argument, permission, plan or account check fails.
Account access and permissions are checked by Heavenly. See errors for failure handling.
