Scheduler

The Scheduler is your publishing calendar. View, arrange, and time your content across weekly and monthly views with drag-and-drop scheduling.

How to access

Click Scheduler in the left sidebar. Requires an active synfluencer.

Key features

  • Weekly and monthly views — Toggle between a week view with hourly time slots and a month view with daily slots.
  • Drag-and-drop — Move content between time slots to reschedule. The new time is also pushed to Upload-Post, so the post still fires at the right moment.
  • Click a chip to edit or cancel — Clicking any scheduled item on the calendar opens a modal with the current time, a datetime-local input for a new time, and a Cancel schedule button. Saving updates both the local schedule and the Upload-Post job; cancelling cancels the Upload-Post job and returns the content to the Drafted Content tab so you can re-use it later.
  • Your audience timezone is the source of truth — Every scheduling input in the app (this page's reschedule modal, the Drafted Content schedule form, the Drafted Content reschedule dialog, and the Approval page's "Approve & Schedule" picker) interprets what you type as wall-clock time in your selected audience timezone, not your browser's clock. So if you're on a laptop in PDT scheduling for an EST audience, typing 8:35 AM means 8:35 AM EST — no silent shift. Each input now labels the interpreted zone below it (e.g. Interpreted in EST (your audience timezone).) so there's no ambiguity.
  • Changing the synfluencer's audience timezone asks about existing schedules and automations — Update the audience timezone on the synfluencer's Laboratory profile and, if there are scheduled posts or active automations, a two-step modal appears. Stage 1 offers Move scheduled posts / Save without moving / Cancel. Stage 2 — only if you pick Move — explicitly lists how many scheduled posts will be shifted (so “8:35 AM” stays “8:35 AM” in the new zone, Upload-Post jobs updated in place) and how many active automation cron jobs will be re-registered (automations with their own timezone override are left alone). Click Continue to commit, or Back to reconsider. No surprise writes — every change is opt-in.
  • Timezone selection — Set your preferred timezone. All scheduled times are converted and displayed accordingly, and each calendar chip shows the scheduled time with the timezone short code inline (for example, 8:35 AM EST) so you never have to hover to confirm which zone you're reading.
  • Autofill — Let the system suggest optimal posting times based on your content and platform best practices.
  • Engagement heat map — Each day cell shows a centered percentage and a small n= sample-size badge. Cells with fewer than 5 prior posts get a dashed border so you know that day's score is based on a platform-default fallback rather than real history.
  • Bulk schedule from Drafted Content — Select two or more drafts and click Schedule selected. Step 1 lets you pick platforms per item and toggle stagger-across-platforms. Step 2 shows an engagement-weighted plan with editable rows; each row hovers a tooltip with its source (engagement history vs. platform default), percentile, and sample size. Commit fires one transactional batch and shows a 5-minute Undo toast that rolls everything back atomically.
  • CSV export — Export your schedule as a CSV file for external tracking or reporting.
  • Status indicators — Scheduled chips are dark, published chips are green, and failed chips are red with a · failed badge. Click a failed chip to see why it failed (either a missed schedule window or a platform error from Upload-Post).
  • Edit a card's title inline — Each Drafted Content card shows a small pencil next to its title. Click it to rename the card; press Cmd/Ctrl+Enter to save, Esc to cancel. Useful for cleaning up older rows whose titles carried long prose from a legacy pipeline.
  • Scheduling only offers connected platforms — The platform toggles in the schedule form now show only the synfluencer's connected Upload-Post accounts. If nothing's connected, the form surfaces a red hint asking you to connect at least one platform in Connect first — compiled content without a connected account can't publish, so we stop you before you try. When scheduling to multiple platforms, expand Set per-platform times to give each platform its own date and time; leave an entry blank to fall back to the global schedule. All per-platform entries are interpreted in the synfluencer's audience timezone.
  • Reschedule or cancel from Drafted Content too — Every scheduled card in the Drafted Content → Scheduled sub-tab has Reschedule and Cancel schedule actions next to Delete / Archive. Reschedule opens a small dialog with a datetime-local input (the dialog labels the timezone it will interpret your entry in, so you can verify before saving); saving updates Upload-Post's scheduled job in place, no duplicate posts. Cancel schedule behaves the same as on the calendar modal — cancels the Upload-Post job and returns the content to Drafted Content. The All sub-tab of Drafted Content now lists scheduled items alongside draft/review/approved, so you see the whole pre-publish queue in one place.
  • Retry a failed post — Opening a failed chip swaps the modal's primary action to Retry with new time: pick a future time, click Retry, and the scheduler clears the stale Upload-Post job and submits fresh. Prefer not to retry? Use Cancel schedule (return to Drafted Content) to send it back to the Drafted Content tab. Retries are always explicit — the background sweeper never auto-retries a failed post, so you won't get surprise duplicates.
  • Delivery handoff & reconciliation — When you schedule a post, it's handed off to Upload-Post inside the same database transaction that flips the row to SCHEDULED, so the row never sits in a half-state where the sweeper could submit it a second time and double-post. Upload-Post fires the actual post at the scheduled moment. A background sweeper runs every two minutes: it re-submits any scheduled item that didn't land on Upload-Post the first time (marking past-due unsubmitted rows as failed rather than posting stale content), and — once the scheduled moment passes — reconciles delivered posts via Upload-Post's /status and /history endpoints. The sweeper covers the full non-terminal lifecycle (submitted and in_progress), so calendar chips flip from dark to green within a few minutes of the actual post landing on the platform — you don't have to open the Upload Queue tab to nudge the status.
Set your timezone first. The scheduler displays all times in your selected timezone. Changing it later will shift how existing scheduled content appears on the calendar.