> For the complete documentation index, see [llms.txt](https://thecontentforge.gitbook.io/thecontentforge-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://thecontentforge.gitbook.io/thecontentforge-docs/feature-guides/calendar.md).

# Calendar

The Calendar gives your team a single view of scheduled, pending, manually logged, published, failed, and canceled posts across your connected platforms (X today; Instagram and Facebook coming soon). It's also where the approval workflow plays out when enabled.

### Who can use it

Everyone in the org can view the calendar. Approval actions are gated by the **minimum role** configured in Settings (Editor, Admin, or Owner).

### Views

* **Month** - grid of the full month
* **Week** - seven-day slice
* **Day** - single-day detail

Navigate with the previous/next controls at the top. When a day holds more events than fit in the month or week grid, a **+N more** link appears on that day - click it to jump straight to the **Day** view for that date.

### Status colors

| Status            | Color  | Meaning                                                |
| ----------------- | ------ | ------------------------------------------------------ |
| Approval pending  | Orange | Waiting on approval before it can go out               |
| Queued / approved | Blue   | Approved and scheduled; will publish automatically     |
| Publishing        | Purple | Currently being sent to the platform                   |
| Posted            | Green  | Published successfully via TheContentForge             |
| Confirmed manual  | Gray   | Manually logged after posting elsewhere                |
| Failed / canceled | Red    | Did not publish; see error message on the event drawer |

Platform badges (X blue, IG pink, FB indigo) show which channel each post belongs to.

### Threads and media indicators

* **Threads collapse to one entry.** An X thread scheduled as multiple tweets shows as a single pill on the calendar. A **thread** chip on the pill and a "{n}-post thread" line in the drawer show you it expands.
* **Media thumbnails.** Any event with attached images or video gets a paperclip icon on the pill. The event drawer shows a small thumbnail strip with a preview of every attached asset.
* **Thread replies inside the drawer.** Opening a thread event reveals the full list of replies in order, each with its own media strip, so you can verify the whole chain before it sends.

### Filters

* **By status** - all, needs approval, scheduled, posted, manual, failed
* **By platform** - all, X, Facebook, Instagram

A badge in the calendar header shows the current count of posts waiting for approval.

### Event drawer actions

Click any event to open its detail drawer:

* **Approve / Reject** - for posts awaiting approval (visible only to users at or above the configured min role)
* **Reschedule** - pick a new date and time for future queued, approved, or approval-pending posts
* **Cancel** - pull a scheduled or publishing post before it completes
* **Delete** - hard-delete terminal states such as manually confirmed, canceled, and failed; deleting a manual entry also cleans up the corresponding analytics row

Each event shows its creation time, approval time if applicable, external post ID once published, and any error message from a failed attempt.

### Engagement metrics

Once a post has published and its analytics have synced, the event drawer shows an **Engagement** panel with the metrics available for that post - impressions, reach, views, likes, reactions, comments, replies, shares, reposts, saves, bookmarks, clicks, profile visits, and total engagements. Only metrics that actually have a value are shown.

The numbers come from the matching analytics row for the post, linked to the calendar event when it published or was manually logged. If the post is out but analytics haven't landed yet, the panel says none are recorded yet; if there's no matching analytics row at all, no panel shows. See [Data Ingestion](/thecontentforge-docs/feature-guides/data-ingestion.md) and [My Account > Social Connections](/thecontentforge-docs/feature-guides/social-connections.md) for how analytics get in.

### Where posts come from

Posts land on the Calendar from:

* **Content Forge** Publish Panels
* **Video Forge** Publish Panels
* Manual logs for posts you already published elsewhere
* Analytics sync, which can later fetch or match manually posted items

Scheduled posts publish automatically at the specified time via a background job. Manual logs are useful when you posted outside TheContentForge but still want the item visible on the Calendar and available for later analytics matching.

### Related

* [Publishing](/thecontentforge-docs/feature-guides/publishing.md) - How posts reach the Calendar
* [My Account > Social Connections](/thecontentforge-docs/feature-guides/social-connections.md) - Connect the accounts posts publish through
* [Settings Reference](/thecontentforge-docs/admin-guide/settings-reference.md) - Configure the approval workflow min role


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://thecontentforge.gitbook.io/thecontentforge-docs/feature-guides/calendar.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
