Scheduling Posts

Schedule posts for future publication instead of publishing immediately. The system processes scheduled posts automatically via a cron job that runs every minute.

How Scheduling Works

  1. Create a post and set the Scheduled For date and time

  2. Click Schedule (not “Publish Now”)

  3. The post enters the Scheduled state

  4. Every minute, a cron job checks for scheduled posts that are due

  5. Due posts are automatically enqueued for publishing

  6. The post transitions through Publishing to Done (or Failed)

Setting a Schedule

  1. Navigate to Social Marketing ‣ Posts ‣ All Posts

  2. Create a new post or open an existing draft

  3. Fill in the caption, media, and target accounts

  4. Set the Scheduled For field to your desired date and time

    Note

    The time is displayed in your user timezone but stored in UTC. Ensure your Progrid user profile has the correct timezone set.

  5. Click Schedule

The post is validated against all target platform requirements before being accepted as scheduled. If validation fails, you will see an error describing the issue.

Viewing Scheduled Posts

Navigate to Social Marketing ‣ Posts ‣ Scheduled to see all posts waiting to be published. This view is pre-filtered to show only posts in the Scheduled state.

Modifying a Scheduled Post

You cannot directly edit a scheduled post. To make changes:

  1. Open the scheduled post

  2. Click Cancel

  3. Click Reset to Draft

  4. Make your edits

  5. Set the new schedule and click Schedule again

Cancelling a Scheduled Post

  1. Open the scheduled post

  2. Click Cancel

  3. Confirm the cancellation

This cancels both the post and any queued targets. The post moves to the Cancelled state and can be reset to draft if needed.

Immediate Publishing Override

If you have a scheduled post but want to publish it right now:

  1. Cancel the scheduled post

  2. Reset to draft

  3. Clear the Scheduled For field

  4. Click Publish Now

Alternatively, if the post is still in Draft state, simply click Publish Now regardless of the scheduled time – it publishes immediately.

Automated Processing

Two cron jobs manage the scheduling pipeline:

Process Scheduled Posts (every minute)

Finds posts in the Scheduled state whose scheduled time has passed and enqueues them for publishing.

Process Publish Queue (every minute)

Picks up queued targets and executes the actual API calls to Meta. Processes up to 25 targets per run to avoid long-running transactions.

Additional cron jobs support the pipeline:

Reset Stale Jobs (every 5 minutes)

Detects targets stuck in “Processing” state for more than 15 minutes (crash recovery) and re-queues them.

Token Refresh (every 6 hours)

Refreshes OAuth tokens expiring within 7 days to prevent publishing failures due to expired tokens.

Tip

If scheduled posts are not being published on time, check that the cron jobs are running. Navigate to Settings ‣ Technical ‣ Automation ‣ Scheduled Actions and search for “Social Publisher” to verify.

See also