Skip to content

Scheduling and time zones

scheduledAt is an ISO 8601 date and time with Z or an offset — one moment, wherever you are.

{ "scheduledAt": "2027-01-23T07:00:00Z" }
{ "scheduledAt": "2027-01-23T08:00:00+01:00" }

Both of these are the same moment. A time without a zone, like 2027-01-23T08:00:00, is refused with invalid_request: Pubrivo will not guess which 8 o’clock you meant.

To schedule for 9:00 in a Workspace’s own time zone, convert it in your code first. In JavaScript, for example, with the Temporal API:

Temporal.ZonedDateTime.from('2027-01-23T09:00[Asia/Tokyo]').toInstant().toString()
// '2027-01-23T00:00:00Z'

Responses always give instants in UTC.

  • At least 15 minutes ahead for API keys and Authorized apps, so there is always a window to catch a mistake in the Calendar.
  • Up to a year ahead.

A time outside these is refused with a 422 and a blocker saying which — it is never moved for you.

GET /api/posts lists Posts, newest written first. Give from and to (instants; from inclusive, to exclusive) to get only Posts with a Variant scheduled — or written — in that range.

Terminal window
curl "https://app.pubrivo.com/api/posts?from=2027-01-18T00:00:00Z&to=2027-01-25T00:00:00Z" \
-H "Authorization: Bearer $PUBRIVO_KEY"

Pages hold 100 Posts, or up to 500 with limit. When there are more, the response carries a nextCursor; pass it back as cursor to read on. It is null on the last page.

POST /api/posts/{id}/cancel cancels every Variant that has not started publishing. The response lists what it cancelled and, separately, any Variant already publishing or published — pastCancelling — which it leaves alone.

There is no endpoint to move a Post. Cancel it and schedule it again.