Skip to content

Calendar as Code

Your content calendar is a JSON file. Store it in git, review changes in PRs, roll back with git revert.

[
{
"external_id": "launch-post",
"content": "We just launched v2.0!",
"connection": "x",
"schedule": "2026-03-15T14:00:00Z"
},
{
"external_id": "follow-up",
"content": "Here's what's new in v2.0.",
"connection": "linkedin",
"schedule": "2026-03-16T10:00:00Z",
"media": "https://example.com/og-image.png"
}
]
FieldRequiredDescription
external_idYesStable identifier for matching across syncs
contentYesPost text
connectionYesConnection ID or platform name
scheduleYesUTC ISO 8601 datetime with Z suffix
mediaNoURL or local file path
Terminal window
# Preview changes
ap calendar sync --file calendar.json --dry-run
# Apply changes
ap calendar sync --file calendar.json

Syncing is idempotent - run it twice, get the same result. Safe for CI/CD.

Terminal window
# Pull current calendar
ap calendar pull -o calendar.json
# Edit in your IDE, commit, push
git add calendar.json
git commit -m "Add launch week posts"
git push