---
title: "Get calendars"
method: GET
path: "/api/v1/campaigns/calendars/{id}"
tags: ["campaigns"]
---

# Get calendars

`GET /api/v1/campaigns/calendars/{id}`

## Request

- Base URL: `https://point11.ai`
- URL: `https://point11.ai/api/v1/campaigns/calendars/{id}`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://auth.point11.ai/oauth2/authorize`, token URL `https://auth.point11.ai/oauth2/token`)

Read the organization's commercial calendar (id "organization") at one zoom level (day, week, month or agenda around `anchor`, bucketed in `timeZone`): its active and paused campaigns of every product (at most 50; `truncated` when more exist), each shown campaign's UTC months with exact hourly counts and a few named customer interactions, the campaigns whose read failed, every interaction of `customerId` when given, and the entry to open on (`entryCampaignId` with `entryId`). The organization's own id is also accepted as `id`.

## Path parameters

- `id` string, required: Always "organization"; the organization's own id is also accepted.

## Query parameters

- `view` 'day' | 'week' | 'month' | 'agenda', required
- `anchor` string, required: The day the grid is drawn around, on `timeZone`'s clock.
- `timeZone` string, required: The zone days and hours are bucketed in.
- `defaultTimeZone` string: The zone a viewer's choice replaces; `timeZone` when absent.
- `products` string[]: Keep only these products' campaigns; none keeps every product.
- `profiles` string[]: Keep only these business profiles' campaigns; none keeps every profile.
- `hiddenCampaignIds` string[]: Campaigns listed but switched off: never read.
- `customerId` string, uuid: Read every interaction of this customer.
- `only` boolean: With `customerId`: draw only that customer, so months name nobody.
- `entryCampaignId` string, uuid: With `entryId`: the campaign of the entry the calendar opens on.
- `entryId` string: With `entryCampaignId`: the entry the calendar opens on, read whatever `showPaused` says.
- `showPaused` boolean: False leaves out paused activity: the work a paused campaign holds and will not start while it stays paused (a waiting interaction, or a Research interview its run has committed), from every count and name. Finished, failed, missed and started work always stays, and so does the work of an Active campaign whose subscription is paused. True when absent.

## Headers

- `Point11-Organization` string, uuid

## Response `200`

Success.

- CampaignsCalendarsGetResponse
  - `campaigns` object[], required
    - `campaignType` 'discovery' | 'research' | 'experience', required
    - `campaignId` string, required
    - `name` string, required
    - `paused` boolean, required: Paused by its owner, or Active under a paused subscription.
    - `ordinal` integer, required: Its place among every listed campaign, filtered or not; fixes its ink.
  - `publications` object[], required
    - `campaignId` string, required
    - `campaignType` 'discovery' | 'research' | 'experience', required
    - `campaignName` string
    - `campaignStatus` string, required
    - `kind` 'planned' | 'journeys' | 'research', required
    - `timeZone` string, required: The zone this month is drawn in.
    - `defaultTimeZone` string, required: The campaign's own zone.
    - `cycle` string, required: `YYYY-MM`: the UTC month.
    - `nextAdmissionAt` string, nullable, required
    - `engines` string[], required
    - `lines` object[], required
      - `lineId` string, required
      - `name` string, required
      - `counted` false: False for a line that keeps its own counts but adds to no total.
      - `entryCount` integer, required
      - `targetCountsByInterval` object[], required
        - `startsAt` string, required
        - `endsAt` string, required
        - `date` string, required
        - `hour` integer, required
        - `entryCount` integer, required
        - `lifecycleCounts` object, required
          - `scheduled` integer, required
          - `committed` integer, required
          - `running` integer, required
          - `finished` integer, required
          - `cancelled` integer, required
          - `unknown` integer, required
        - `pauseHeldCount` integer: How many of the hour's interactions a pause holds, whatever their campaign's status: drawn paused while their campaign is paused, by itself or its subscription. Absent for none.
        - `hiddenCount` integer: How many interactions of paused activity `showPaused: false` left out of the hour, counted in no other total. Absent for none.
    - `targetCountsByInterval` object[], required
      - `startsAt` string, required
      - `endsAt` string, required
      - `date` string, required
      - `hour` integer, required
      - `entryCount` integer, required
      - `lifecycleCounts` object, required
        - `scheduled` integer, required
        - `committed` integer, required
        - `running` integer, required
        - `finished` integer, required
        - `cancelled` integer, required
        - `unknown` integer, required
      - `pauseHeldCount` integer: How many of the hour's interactions a pause holds, whatever their campaign's status: drawn paused while their campaign is paused, by itself or its subscription. Absent for none.
      - `hiddenCount` integer: How many interactions of paused activity `showPaused: false` left out of the hour, counted in no other total. Absent for none.
      - `entries` union[], required
        - union
          - object
            - `lifecycle` 'scheduled' | 'committed' | 'running' | 'finished' | 'cancelled' | 'unknown', required
            - `waitingReason` string, nullable: Why scheduled work is not admitted yet, when known.
            - `scheduledAt` string, nullable, required
            - `admittedAt` string, nullable, required
            - `startedAt` string, nullable, required
            - `finishedAt` string, nullable, required
            - `executionId` string, nullable, required
            - `outcome` 'running' | 'succeeded' | 'failed' | 'cancelled' | 'partial', nullable, required
            - `rerun` true: Present on an edit's rerun: a customer whose edit gave it a new version, rerun once on it as its run of the campaign's current period. It is its own entry and never moves.
            - `inClosedHour` true: Present on a scheduled interaction a person or an order placed in an hour the calendar rules now close. It stays where it was placed.
            - `missed` true: Present on an interaction whose month closed with no run admitting it. Its lifecycle stays `scheduled`, it stays on its day, and it no longer moves.
            - `movedFrom` object: Present when the plan moved the interaction since placing it; absent when a person placed it.
              - …
            - `capabilities` object, required
              - …
            - `entryId` string, required
            - `lineId` string, required
            - `name` string, required
            - `targetAt` string, required
            - `kind` 'customer'
            - `customerId` string, required
            - `customerKey` string, nullable, required
            - `jobTitle` string, nullable, required
            - `age` string, nullable, required
            - `avatarUrl` string, nullable, required
          - object
            - `lifecycle` 'scheduled' | 'committed' | 'running' | 'finished' | 'cancelled' | 'unknown', required
            - `waitingReason` string, nullable: Why scheduled work is not admitted yet, when known.
            - `scheduledAt` string, nullable, required
            - `admittedAt` string, nullable, required
            - `startedAt` string, nullable, required
            - `finishedAt` string, nullable, required
            - `executionId` string, nullable, required
            - `outcome` 'running' | 'succeeded' | 'failed' | 'cancelled' | 'partial', nullable, required
            - `rerun` true: Present on an edit's rerun: a customer whose edit gave it a new version, rerun once on it as its run of the campaign's current period. It is its own entry and never moves.
            - `inClosedHour` true: Present on a scheduled interaction a person or an order placed in an hour the calendar rules now close. It stays where it was placed.
            - `missed` true: Present on an interaction whose month closed with no run admitting it. Its lifecycle stays `scheduled`, it stays on its day, and it no longer moves.
            - `movedFrom` object: Present when the plan moved the interaction since placing it; absent when a person placed it.
              - …
            - `capabilities` object, required
              - …
            - `entryId` string, required
            - `lineId` string, required
            - `name` string, required
            - `targetAt` string, required
            - `kind` 'research-run', required
            - `interviewCount` integer, required
            - `completedInterviewCount` integer, required
            - `resultsHref` string, nullable, required
    - `expandedWindow` object, nullable, required
      - `from` string, required
      - `to` string, required
      - `entryCount` integer, required
      - `entries` union[], required
        - union
          - object
            - `lifecycle` 'scheduled' | 'committed' | 'running' | 'finished' | 'cancelled' | 'unknown', required
            - `waitingReason` string, nullable: Why scheduled work is not admitted yet, when known.
            - `scheduledAt` string, nullable, required
            - `admittedAt` string, nullable, required
            - `startedAt` string, nullable, required
            - `finishedAt` string, nullable, required
            - `executionId` string, nullable, required
            - `outcome` 'running' | 'succeeded' | 'failed' | 'cancelled' | 'partial', nullable, required
            - `rerun` true: Present on an edit's rerun: a customer whose edit gave it a new version, rerun once on it as its run of the campaign's current period. It is its own entry and never moves.
            - `inClosedHour` true: Present on a scheduled interaction a person or an order placed in an hour the calendar rules now close. It stays where it was placed.
            - `missed` true: Present on an interaction whose month closed with no run admitting it. Its lifecycle stays `scheduled`, it stays on its day, and it no longer moves.
            - `movedFrom` object: Present when the plan moved the interaction since placing it; absent when a person placed it.
              - …
            - `capabilities` object, required
              - …
            - `entryId` string, required
            - `lineId` string, required
            - `name` string, required
            - `targetAt` string, required
            - `kind` 'customer'
            - `customerId` string, required
            - `customerKey` string, nullable, required
            - `jobTitle` string, nullable, required
            - `age` string, nullable, required
            - `avatarUrl` string, nullable, required
          - object
            - `lifecycle` 'scheduled' | 'committed' | 'running' | 'finished' | 'cancelled' | 'unknown', required
            - `waitingReason` string, nullable: Why scheduled work is not admitted yet, when known.
            - `scheduledAt` string, nullable, required
            - `admittedAt` string, nullable, required
            - `startedAt` string, nullable, required
            - `finishedAt` string, nullable, required
            - `executionId` string, nullable, required
            - `outcome` 'running' | 'succeeded' | 'failed' | 'cancelled' | 'partial', nullable, required
            - `rerun` true: Present on an edit's rerun: a customer whose edit gave it a new version, rerun once on it as its run of the campaign's current period. It is its own entry and never moves.
            - `inClosedHour` true: Present on a scheduled interaction a person or an order placed in an hour the calendar rules now close. It stays where it was placed.
            - `missed` true: Present on an interaction whose month closed with no run admitting it. Its lifecycle stays `scheduled`, it stays on its day, and it no longer moves.
            - `movedFrom` object: Present when the plan moved the interaction since placing it; absent when a person placed it.
              - …
            - `capabilities` object, required
              - …
            - `entryId` string, required
            - `lineId` string, required
            - `name` string, required
            - `targetAt` string, required
            - `kind` 'research-run', required
            - `interviewCount` integer, required
            - `completedInterviewCount` integer, required
            - `resultsHref` string, nullable, required
      - `lifecycleCounts` object, required
        - `scheduled` integer, required
        - `committed` integer, required
        - `running` integer, required
        - `finished` integer, required
        - `cancelled` integer, required
        - `unknown` integer, required
    - `capabilities` object: Whether this month accepts an interaction created from the calendar.
      - `create` boolean, required
      - `reason` string, nullable, required
  - `truncated` boolean, required
  - `failed` object[], required
    - `campaignId` string, required
    - `campaignType` 'discovery' | 'research' | 'experience', required
  - `subscriptionPaused` boolean, required
  - `admissionRefusals` object, required: Per product, Billing's or Identity's sentence when the account admits none of its new work now, which an interaction scheduled now waits on; null when it admits new work, or when the check could not be made, which refuses nothing.
    - `discovery` string, nullable, required
    - `research` string, nullable, required
    - `experience` string, nullable, required
  - `customerEntries` CampaignsCustomerEntriesItem[], required: Every interaction of `customerId` in the grid's months; empty without one.
    - `lifecycle` 'scheduled' | 'committed' | 'running' | 'finished' | 'cancelled' | 'unknown', required
    - `waitingReason` string, nullable: Why scheduled work is not admitted yet, when known.
    - `scheduledAt` string, nullable, required
    - `admittedAt` string, nullable, required
    - `startedAt` string, nullable, required
    - `finishedAt` string, nullable, required
    - `executionId` string, nullable, required
    - `outcome` 'running' | 'succeeded' | 'failed' | 'cancelled' | 'partial', nullable, required
    - `rerun` true: Present on an edit's rerun: a customer whose edit gave it a new version, rerun once on it as its run of the campaign's current period. It is its own entry and never moves.
    - `inClosedHour` true: Present on a scheduled interaction a person or an order placed in an hour the calendar rules now close. It stays where it was placed.
    - `missed` true: Present on an interaction whose month closed with no run admitting it. Its lifecycle stays `scheduled`, it stays on its day, and it no longer moves.
    - `movedFrom` object: Present when the plan moved the interaction since placing it; absent when a person placed it.
      - `at` string, required: Where the plan first placed the interaction.
      - `reason` 'catch_up' | 'rules_save', required: Why the plan moved it: `catch_up`, its slot passed unrun; `rules_save`, the calendar rules changed.
    - `capabilities` object, required
      - `move` boolean, required
      - `cancel` boolean, required
      - `restore` boolean, required
      - `reasonCode` string, nullable, required
      - `reason` string, nullable, required
      - `moveMonth` string: `YYYY-MM`: the UTC month a move must stay inside, where one bounds it.
    - `entryId` string, required
    - `lineId` string, required
    - `name` string, required
    - `targetAt` string, required
    - `kind` 'customer'
    - `customerId` string, required
    - `customerKey` string, nullable, required
    - `jobTitle` string, nullable, required
    - `age` string, nullable, required
    - `avatarUrl` string, nullable, required
    - `campaign` object, required
      - `type` 'discovery' | 'research' | 'experience', required
      - `id` string, required
      - `name` string, required
    - `paused` true: Paused activity: the campaign's own pause (status Paused) holds this interaction, which will not start while it stays paused, and `showPaused: false` leaves it out of the calendar. A paused subscription marks none, unlike `campaigns[].paused`, which also reads an Active campaign under a paused subscription as paused. Absent otherwise.
  - `focus` union, required: The asked entry (`entryCampaignId`, `entryId`): already named by the months or the customer's interactions, read by id, gone from the calendar, or unreadable; null when none was asked, its campaign is not shown, or `only` is set.
    - object
      - `state` 'published', required
    - object
      - `state` 'read', required
      - `entry` union, required
        - object
          - `lifecycle` 'scheduled' | 'committed' | 'running' | 'finished' | 'cancelled' | 'unknown', required
          - `waitingReason` string, nullable: Why scheduled work is not admitted yet, when known.
          - `scheduledAt` string, nullable, required
          - `admittedAt` string, nullable, required
          - `startedAt` string, nullable, required
          - `finishedAt` string, nullable, required
          - `executionId` string, nullable, required
          - `outcome` 'running' | 'succeeded' | 'failed' | 'cancelled' | 'partial', nullable, required
          - `rerun` true: Present on an edit's rerun: a customer whose edit gave it a new version, rerun once on it as its run of the campaign's current period. It is its own entry and never moves.
          - `inClosedHour` true: Present on a scheduled interaction a person or an order placed in an hour the calendar rules now close. It stays where it was placed.
          - `missed` true: Present on an interaction whose month closed with no run admitting it. Its lifecycle stays `scheduled`, it stays on its day, and it no longer moves.
          - `movedFrom` object: Present when the plan moved the interaction since placing it; absent when a person placed it.
            - `at` string, required: Where the plan first placed the interaction.
            - `reason` 'catch_up' | 'rules_save', required: Why the plan moved it: `catch_up`, its slot passed unrun; `rules_save`, the calendar rules changed.
          - `capabilities` object, required
            - `move` boolean, required
            - `cancel` boolean, required
            - `restore` boolean, required
            - `reasonCode` string, nullable, required
            - `reason` string, nullable, required
            - `moveMonth` string: `YYYY-MM`: the UTC month a move must stay inside, where one bounds it.
          - `entryId` string, required
          - `lineId` string, required
          - `name` string, required
          - `targetAt` string, required
          - `kind` 'customer'
          - `customerId` string, required
          - `customerKey` string, nullable, required
          - `jobTitle` string, nullable, required
          - `age` string, nullable, required
          - `avatarUrl` string, nullable, required
          - `campaign` object, required
            - `type` 'discovery' | 'research' | 'experience', required
            - `id` string, required
          - `paused` true: Paused activity: the campaign's own pause (status Paused) holds this interaction, which will not start while it stays paused, and `showPaused: false` leaves it out of the calendar. A paused subscription marks none, unlike `campaigns[].paused`, which also reads an Active campaign under a paused subscription as paused. Absent otherwise.
        - object
          - `lifecycle` 'scheduled' | 'committed' | 'running' | 'finished' | 'cancelled' | 'unknown', required
          - `waitingReason` string, nullable: Why scheduled work is not admitted yet, when known.
          - `scheduledAt` string, nullable, required
          - `admittedAt` string, nullable, required
          - `startedAt` string, nullable, required
          - `finishedAt` string, nullable, required
          - `executionId` string, nullable, required
          - `outcome` 'running' | 'succeeded' | 'failed' | 'cancelled' | 'partial', nullable, required
          - `rerun` true: Present on an edit's rerun: a customer whose edit gave it a new version, rerun once on it as its run of the campaign's current period. It is its own entry and never moves.
          - `inClosedHour` true: Present on a scheduled interaction a person or an order placed in an hour the calendar rules now close. It stays where it was placed.
          - `missed` true: Present on an interaction whose month closed with no run admitting it. Its lifecycle stays `scheduled`, it stays on its day, and it no longer moves.
          - `movedFrom` object: Present when the plan moved the interaction since placing it; absent when a person placed it.
            - `at` string, required: Where the plan first placed the interaction.
            - `reason` 'catch_up' | 'rules_save', required: Why the plan moved it: `catch_up`, its slot passed unrun; `rules_save`, the calendar rules changed.
          - `capabilities` object, required
            - `move` boolean, required
            - `cancel` boolean, required
            - `restore` boolean, required
            - `reasonCode` string, nullable, required
            - `reason` string, nullable, required
            - `moveMonth` string: `YYYY-MM`: the UTC month a move must stay inside, where one bounds it.
          - `entryId` string, required
          - `lineId` string, required
          - `name` string, required
          - `targetAt` string, required
          - `kind` 'research-run', required
          - `interviewCount` integer, required
          - `completedInterviewCount` integer, required
          - `resultsHref` string, nullable, required
          - `campaign` object, required
            - `type` 'discovery' | 'research' | 'experience', required
            - `id` string, required
          - `paused` true: Paused activity: the campaign's own pause (status Paused) holds this interaction, which will not start while it stays paused, and `showPaused: false` leaves it out of the calendar. A paused subscription marks none, unlike `campaigns[].paused`, which also reads an Active campaign under a paused subscription as paused. Absent otherwise.
    - object
      - `state` 'gone', required
    - object
      - `state` 'failed', required

## Other responses

- `400`: The input, query, or Idempotency-Key is invalid.
- `401`: The bearer is missing, expired, or not accepted.
- `403`: The credential lacks the operation's scope or role, or the operation needs a different door.
- `404`: The resource or organization does not exist for this caller.
- `405`: This path takes another HTTP method, named in `Allow`.
- `409`: The request conflicts with current state or with prior use of its Idempotency-Key.
- `413`: The request, or the answer it asks for, is too large; narrow it.
- `429`: The credential's rate budget is spent; retry after `Retry-After` seconds.
- `500`: An unexpected server failure; retry later. Only `request_id` identifies it.
- `503`: A dependency is temporarily unavailable; retry after `Retry-After` seconds.
- `default`: Another status a product answers for its own refusal (for example `415` for an unsupported attachment); branch on `code`.

---

[API](https://skmtc.dev/point11/apis/point11-api.md) · [All operations](https://skmtc.dev/point11/apis/point11-api/llms.txt) · [OpenAPI document](https://skmtc.dev/point11/apis/point11-api/revisions/36a84c7aca11?raw)
