ShopEazydevelopers
API referenceMerchant API BetaBookings

The calendar for a window

Beta
Credentials
  • OAuth access token
Scopes
orders:read
GET
/v1/merchant/stores/{storeId}/calendar

Every appointment, tour departure and event that touches the window (a multi-day trip already under way included), with a shared service slot as one entry and everyone on it; the booking requests still waiting; and each date's opening hours (minutes after midnight, SA time) from the bookable services' weekly hours less their blackout dates. A date with no hours is closed. from and to are YYYY-MM-DD (SA), to exclusive; default today and a week on; at most 62 days.

Access: OAuth scope orders:read; not write-gated.

Authorization

merchantOAuth orders:read
headerAuthorizationBearer <token>

OAuth 2.1 (authorization code + PKCE S256, public clients, dynamic registration) for connected AI apps. Effective power is scopes granted AND the person's role today AND the plan. orders:refund, billing:write and team:write are opt-in on the consent screen. Write implies read for marketing:read and messages:read, so a grant holding marketing:write passes a marketing:read check, and messages:send passes messages:read.

Scope: orders:read

Path Parameters

storeId*string

A store the person can reach. Any other id answers 404, never 403.

Query Parameters

from?string

First date (YYYY-MM-DD, SA). Default today.

Formatdate
to?string

The day after the last date (YYYY-MM-DD, SA). Default a week after from.

Formatdate

Response Body

OK

application/json
  1. response
data*
Example Request
curl -X GET 'https://api.shopeazy.co/v1/merchant/stores/<storeId>/calendar' \  -H 'Authorization: Bearer <access_token>'
Example Response
{  "data": {    "from": "string",    "to": "string",    "entries": [      {        "id": "string",        "kind": "service",        "title": "string",        "at": 0,        "endsAt": 0,        "durationDays": 0,        "lastDate": "string",        "count": 0,        "capacity": 0,        "minimum": 0,        "status": "confirmed",        "itemId": "string",        "orderId": "string",        "people": [          {            "name": "string",            "orderId": "string",            "orderNumber": "string",            "seats": 0,            "mode": "string"          }        ]      }    ],    "pending": [      {        "id": "string",        "title": "string",        "at": 0,        "minutes": 0,        "customerName": "string",        "notes": "string",        "askedAt": 0      }    ],    "openHours": {      "property1": [        {          "from": 0,          "to": 0        }      ],      "property2": [        {          "from": 0,          "to": 0        }      ]    }  }}