Skip to main content

Calendar

The Calendar page is the workspace's shared planning surface. It lays your queue out over time — one entry per platform variant — and lets you filter it, reschedule by dragging, drop drafts onto days, and mark team moments. It's backed by a dedicated calendar endpoint, so it loads a whole range in one request and reflects what you're actually allowed to see.

Every variant with a publish time appears as its own entry — a post going to three platforms at once shows three entries. That includes variants that already published and ones that failed, not just what's still queued. Draft variants never appear, even if they carry a stale schedule time — a draft is an intention, not a commitment.

Views and navigation

Switch between 1 Month (the default), 1 Week, and 2 Weeks from the dropdown in the header, and move around with the previous/next arrows and Today. Weeks start on Monday. The week view lays entries out on an hourly timeline; the month and two-week views stack them in day cells.

The view and the date you're looking at live in the URL, so a calendar link opens exactly where you left off — and so do your scope and filters (below).

Times are shown in your device's local timezone. The grid is windowed by that browser timezone too; the workspace timezone (from Settings -> General) is only the fallback the server uses when your browser doesn't report one.

Status at a glance

Cards are status-truthful — you can tell what's happening without opening anything:

StatusOn the card
ScheduledNeutral card; the colored left edge marks the platform.
Awaiting approvalHourglass marker — the variant targets a channel that needs sign-off.
PublishingA spinner and a Publishing… line while it's mid-flight.
PublishedMuted card with a green check before the time — reads as done, not pending.
FailedRed left edge and tint with a warning marker; the error is shown in the peek popover.

Each card also shows the post title, the platform and posting account, and the time. When a variant publishes from a channel you can't see (someone else's private account on the org calendar), the card shows Private channel instead of the account name — the identity and its published URL are withheld, never leaked by the calendar.

Scope: whose calendar you're looking at

A segmented control at the top left switches what the calendar shows:

ScopeShows
All (default)Everything you're allowed to see — your posts plus anything on the org calendar.
MinePosts you created, plus anything scheduled to one of your own channels.
OrgOnly posts that are On org calendar — the shared team plan.

Scope decides which posts are in view; it never changes redaction. A private channel stays masked as Private channel on the org calendar regardless of which scope you pick — scope widens or narrows the set, it doesn't reveal identities.

Filtering

Add filter chips to narrow the calendar: Platform, Channel, Status, Author, Campaign (including No campaign), and Label. Each chip is multi-select; add and remove them from the filter row, and the header shows the live N events count. Filters apply instantly and are saved in the URL, so a filtered calendar is a shareable link.

Opening and acting on an entry

Click an entry to open its peek popover — a quick panel with the status, title, time and timezone, channel, campaign, visibility, and author. A failed entry shows its error message here. From the popover you can:

  • Open post — jump to the full post detail.
  • Reschedule… — pick a new date and time inline without leaving the calendar. If the channel needs approval, the popover warns you that rescheduling will send it for sign-off.
  • Publish now / Retry — appears for a failed entry (Retry) or a scheduled one whose time has already passed (Publish now). If the channel is gated, this routes to its approvers instead of going out.
  • Put on org calendar / Make private — flip the post's visibility from here. If you're not allowed to change it, the option quietly disappears.

Drag to reschedule

Drag a card to a different day to move it — no dialog needed.

  • In month and 2-week views, dropping on another day keeps the same wall-clock time (a 9:00 AM post stays 9:00 AM on the new day).
  • In the week timeline, dropping onto the grid snaps to the nearest 30 minutes at the pointer.
  • A short Undo appears in the confirmation toast (available while the original time is still in the future).
  • Past days are blocked — you can't drop something into a time that's already gone.

Dragging is permission-truthful: only entries you're actually allowed to move can be picked up (scheduled, awaiting approval, or failed, and only on channels you can reschedule). If you're a gated member, moving a post re-routes it to approval — the post keeps its approved status only when nothing but the time changed. A failed entry dragged to a new time is treated as a retry.

If a drop lands on a day where the target channel is already at its daily posting cap, a non-blocking note warns you that publishing may be pushed past your chosen time.

Creating from the calendar

  • Month / 2-week cells — hover a day and a small menu offers Create post (opens the New post dialog with that day pre-filled) and Add note (below).
  • Week timeline — click an empty time slot to start a new post pre-filled with that day and time.

Unscheduled drafts tray

Open the Drafts toggle to pull up a tray of unscheduled drafts — a right rail on desktop, a bottom sheet on smaller screens. It lists work that isn't queued yet, with a count on the toggle.

To schedule one, either drag its card onto a day (or a week-timeline slot) or press Schedule… on the card. Both open a confirm step where you pick the date, time, and which channels to schedule — for a draft with no variant yet, you choose the channel there and WriteMars creates the variant for you. Scheduling always goes through this confirm step: the calendar never silently assumes a channel or time for you, and a past time is rejected.

Campaigns and notes on the calendar

Campaign bands stretch across the weeks a campaign spans, tinted in the campaign's color and clipped week by week (a chevron marks where a band continues into the next week). When more campaigns cross a week than fit, a +N chip lists the rest. Click a band to open the campaign.

Calendar notes are lightweight, org-wide moments — a launch day, a holiday, a publishing freeze. They render as subtle dashed chips (with a color dot) above the posts on their day. Add one from a day cell's Add note menu or the header's Add note button; give it a title, a single day or a date range, and a color. Any member can add a note; the person who created it, along with Admins and the Owner, can edit or delete it. Notes are shared with the whole workspace — there's no per-note visibility.

Empty and loading states

A fresh range shows a grid-shaped skeleton while it loads. When nothing matches, the calendar tells you which case you're in: nothing scheduled (with a Create button) or no posts match your filters (with Clear). If the calendar can't load, an inline message offers Try again.