/📚 Guides/Scheduling Logic
Scheduling Logic
How PlanSched picks up scheduled posts and delivers them across platforms.
Timezones
Every scheduled_at value is stored in UTC. Pass an ISO 8601 timestamp with a zone, or send local time plus a timezone field (IANA name, e.g. America/New_York).
Publish windows
A background worker polls every minute for posts whose scheduled_at has passed and dispatches them in parallel across their target platforms.
Retries
- Transient errors — retried with exponential backoff up to 5 times.
- Auth errors — not retried — the account is flagged as needing reconnect.
- Rate-limit errors — delayed and re-queued once the destination platform accepts traffic again.
Partial failures
When a post targets multiple platforms and only some succeed, the post status becomes partial. The per-platform result is available on the post object and via the post.failed webhook.
Next
Introduction