Read the Calendar operational summary and its scope/state.
Action: app_topolo_calendar.widget.get · GET /api/widget
Declared permission: app_topolo_calendar.host:read. For authorized Calendar users; permissions and resource access still apply.
Before you start
- Use the current credential to confirm the production organization and inspect this exact action before preparing a call.
- Declared permission: app_topolo_calendar.host:read. Permission discovery is not a grant.
- Discover the authorized Calendar workspace and pass it as resourceType=workspace/resourceId separately from this action input. Calendar records and IDs are scoped to the selected host/workspace.
Inputs and field meanings
No action input fields. Supply the empty JSON object {}; keep resource context separate.
Worked request and response
Source-reviewed illustration only. Nothing below was executed; all identifiers, counts, states, credentials and URLs are synthetic. Replace identifiers through discovery before any separately authorized call.
Resource context: workspace; it is not an extra action input field.
Illustrative action input:
{}
Illustrative HTTP 200 response excerpt:
{
"contractVersion": "3.0.0",
"widgets": [
{
"id": "calendar.booking-operations",
"state": {
"status": "empty",
"message": "Calendar is not configured yet; create a host before publishing booking types."
},
"metrics": []
}
]
}
This is an explicitly partial response excerpt. The full v3 envelope also requires success, appId, serviceName, generatedAt and widget presentation/resource/refresh/configuration/localization/contribution/accessibility fields. empty means unconfigured/inaccessible context in this illustration, not zero verified business activity.
The worked response is an explicitly incomplete excerpt; full-response schema conformance is not asserted.
Effects and verification
- Reads Calendar summary metrics for the verified organization/workspace through the widget server.
- Validate a real full response against the declared schema; inspect widget.resource/state, generatedAt and metric periods before drawing conclusions.
Refusals and recovery
Selected source refusals are listed below; runtime middleware can return additional structured errors.
| HTTP | Error | Supported response |
|---|---|---|
| 403 | forbidden | Reconcile the declared permission, organization and verified resource grant with the legitimate access owner; do not switch context to bypass a refusal. |
Recovery: This read does not mutate Calendar records. Correct the selected context or request fields before another authorized read.
Related actions
app_topolo_calendar.host.get: Read the selected workspace host, including the unconfigured host:null state.app_topolo_calendar.bookings.list: Find bookings within an explicit time window.app_topolo_calendar.event_types.list: Discover active event types and their IDs.
Declared schemas and provenance
The hidden action guide carries these exact current declared schemas. They are not rewritten to make the illustrations pass.
Input schema:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
}
Output schema:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"contractVersion": {
"type": "string",
"const": "3.0.0"
},
"appId": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"generatedAt": {
"type": "string"
},
"widgets": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"version": {
"type": "string"
},
"type": {
"type": "string"
},
"presentation": {
"type": "object",
"additionalProperties": true
},
"resource": {
"type": "object",
"additionalProperties": true
},
"state": {
"type": "object",
"additionalProperties": true
},
"refresh": {
"type": "object",
"additionalProperties": true
},
"configuration": {
"type": "object",
"additionalProperties": true
},
"drilldowns": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"controls": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"localization": {
"type": "object",
"additionalProperties": true
},
"accessibility": {
"type": "object",
"additionalProperties": true
},
"contribution": {
"type": "object",
"properties": {
"summary": {
"type": "string"
},
"identity": {
"type": "object",
"additionalProperties": true
},
"workspaceSelector": {
"type": "object",
"additionalProperties": true
},
"metricDefinitions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"seriesDefinitions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"dimensions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"lifecycleStages": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"events": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"datasets": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"compatibleVisualizations": {
"type": "array",
"items": {
"type": "string"
}
},
"defaultVisualization": {
"type": "string"
}
},
"required": [
"summary",
"identity",
"workspaceSelector",
"metricDefinitions",
"seriesDefinitions",
"dimensions",
"lifecycleStages",
"events",
"datasets",
"compatibleVisualizations",
"defaultVisualization"
],
"additionalProperties": false
},
"metrics": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"required": [
"id",
"version",
"type",
"presentation",
"resource",
"state",
"refresh",
"configuration",
"drilldowns",
"controls",
"localization",
"accessibility",
"contribution",
"metrics"
],
"additionalProperties": true
}
},
"workspace": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
},
"name": {
"type": "string"
}
},
"required": [
"id",
"name"
],
"additionalProperties": true
},
{
"type": "null"
}
]
},
"workspaces": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
},
"name": {
"type": "string"
}
},
"required": [
"id",
"name"
],
"additionalProperties": true
}
}
},
"required": [
"success",
"contractVersion",
"appId",
"serviceName",
"generatedAt",
"widgets"
],
"additionalProperties": true
}
Source: TopoloCalendar@b378ceb73800ee1d1e6c4ff6f0b4179918cf632c, apps/api/src/calendar-widget.ts. Current catalog metadata and source were compared without executing the application.
- Source-reviewed synthetic input/response; not captured or executed.
- Source revision is not proof of current deployment, caller access, provider connection or notification delivery.
- The worked response is an explicitly incomplete excerpt; full-response schema conformance is not asserted.
- The published action declares host:read; widget resource metadata names additional host/event_types/bookings/availability permissions. Reconcile actual entitlement/scope rather than inferring comprehensive access from one declared scope.