FOLIO Calendar API

The Calendar API from FOLIO — 4 operation(s) for calendar.

Operations 8

GET /calendar/calendars Search all calendars #
POST /calendar/calendars Create a new calendar #
DELETE /calendar/calendars Delete multiple calendars #
GET /calendar/calendars/{calendarId} Get a calendar #
PUT /calendar/calendars/{calendarId} Update an existing calendar #
DELETE /calendar/calendars/{calendarId} Delete a calendar #
GET /calendar/dates/{servicePointId}/surrounding-openings Surrounding openings #
GET /calendar/dates/{servicePointId}/all-openings Daily opening information #

Documentation

📖
Documentation
https://s3.amazonaws.com/foliodocs/api/edge-caiasoft/s/edge-caiasoft.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/edge-courses/s/edge-courses.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/edge-dcb/s/edge-dcb.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/edge-dematic/s/edge-dematic.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/edge-erm/s/edge-erm.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/edge-fqm/s/edge-fqm.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/edge-ill/s/edge-ill.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/edge-inn-reach/s/edge-inn-reach.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/edge-inventory/s/edge-inventory.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/edge-rtac/s/edge-rtac.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/edge-users/s/edge-users.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/folio-query-tool-metadata/s/queryTool.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/folio-spring-support/s/tenant.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/folio-vertx-lib/s/tenant-2.0.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mgr-applications/s/am.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mgr-tenant-entitlements/s/mgr-tenant-entitlements.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mgr-tenants/s/mgr-tenants.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-agreements/s/agreements.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-authtoken/s/token-1.0.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-batch-print/s/batchPrint.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-bulk-operations/s/bulk-operations.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-calendar/s/calendar.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-camunda/s/openapi.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-circulation-bff/s/circulationBff.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-circulation-item/s/circulation-item.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-consortia-keycloak/s/consortia.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-consortia-keycloak/s/consortia_configuration.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-consortia-keycloak/s/kafka_message_schemas.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-consortia-keycloak/s/publications.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-consortia-keycloak/s/self.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-consortia-keycloak/s/sharing_instances.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-consortia-keycloak/s/sharing_policies.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-consortia-keycloak/s/sharing_roles.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-consortia-keycloak/s/sharing_settings.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-consortia-keycloak/s/tenants.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-consortia-keycloak/s/user_tenants.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-consortia/s/consortia.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-consortia/s/consortia_configuration.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-consortia/s/kafka_message_schemas.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-consortia/s/publications.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-consortia/s/self.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-consortia/s/sharing_instances.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-consortia/s/sharing_settings.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-consortia/s/tenants.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-consortia/s/user_tenants.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-data-export-spring/s/export-configs.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-data-export-spring/s/job-deletion-intervals.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-data-export-spring/s/jobs.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-data-export-worker/s/authority-control.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-data-export-worker/s/bursar-export.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-data-export-worker/s/circulation-log.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-data-export-worker/s/e-holdings.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-data-export-worker/s/email.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-data-export-worker/s/order-export.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-data-export-worker/s/refresh-presigned-url.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-data-export/s/data-export.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-dcb/s/dcb_transaction.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-ebsconet/s/ebsconet.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-entities-links/s/mod-entities-links.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-entities-links/s/tenant-settings.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-eusage-reports/s/eusage-reports-1.0.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-fqm-manager/s/mod-fqm-manager.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-inn-reach/s/circulation.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-inn-reach/s/contribution.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-inn-reach/s/settings.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-inventory-update/s/inventory-import-1.0.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-inventory-update/s/inventory-update-5.0.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-licenses/s/licenses.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-linked-data-import/s/mod-linked-data-import.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-linked-data/s/mod-linked-data.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-lists/s/list.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-locations/s/mod-locations.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-login-keycloak/s/mod-login-keycloak.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-marc-migrations/s/marc-migrations.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-mosaic/s/mosaic.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-notes/s/notes.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-oa/s/oa.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-okapi-facade/s/okapi-facade.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-password-validator/s/password-validator.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-password-validator/s/validator-registry.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-quick-marc/s/marc-specifications.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-quick-marc/s/records-editor.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-reading-room/s/patron_permission.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-reading-room/s/reading_room.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-record-specifications/s/mod-record-specifications.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-remote-storage/s/remote-storage.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-requests-mediated/s/requests-mediated.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-roles-keycloak/s/mod-roles-keycloak.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-rtac-cache/s/mod-rtac-cache.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-scheduler/s/mod-scheduler.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-search/s/mod-search.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-serials-management/s/serials-management.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-settings/s/settings.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-tags/s/tags.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-tlr/s/allowed-service-points.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-tlr/s/ecs-loans.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-tlr/s/ecs-request-external.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-tlr/s/ecs-tlr.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-tlr/s/staff-slips.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-tlr/s/tlr-settings.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-users-keycloak/s/users-keycloak.html
📖
Documentation
https://s3.amazonaws.com/foliodocs/api/mod-workflow/s/openapi.html

Specifications

SDKs

📦
GitHubRepository
https://github.com/folio-org/edge-caiasoft
📦
GitHubRepository
https://github.com/folio-org/edge-courses
📦
GitHubRepository
https://github.com/folio-org/edge-dcb
📦
GitHubRepository
https://github.com/folio-org/edge-dematic
📦
GitHubRepository
https://github.com/folio-org/edge-erm
📦
GitHubRepository
https://github.com/folio-org/edge-fqm
📦
GitHubRepository
https://github.com/folio-org/edge-ill
📦
GitHubRepository
https://github.com/folio-org/edge-inn-reach
📦
GitHubRepository
https://github.com/folio-org/edge-inventory
📦
GitHubRepository
https://github.com/folio-org/edge-rtac
📦
GitHubRepository
https://github.com/folio-org/edge-users
📦
GitHubRepository
https://github.com/folio-org/folio-query-tool-metadata
📦
GitHubRepository
https://github.com/folio-org/folio-spring-support
📦
GitHubRepository
https://github.com/folio-org/folio-vertx-lib
📦
GitHubRepository
https://github.com/folio-org/mgr-applications
📦
GitHubRepository
https://github.com/folio-org/mgr-tenant-entitlements
📦
GitHubRepository
https://github.com/folio-org/mgr-tenants
📦
GitHubRepository
https://github.com/folio-org/mod-agreements
📦
GitHubRepository
https://github.com/folio-org/mod-authtoken
📦
GitHubRepository
https://github.com/folio-org/mod-batch-print
📦
GitHubRepository
https://github.com/folio-org/mod-bulk-operations
📦
GitHubRepository
https://github.com/folio-org/mod-calendar
📦
GitHubRepository
https://github.com/folio-org/mod-camunda
📦
GitHubRepository
https://github.com/folio-org/mod-circulation-bff
📦
GitHubRepository
https://github.com/folio-org/mod-circulation-item
📦
GitHubRepository
https://github.com/folio-org/mod-consortia-keycloak
📦
GitHubRepository
https://github.com/folio-org/mod-consortia
📦
GitHubRepository
https://github.com/folio-org/mod-data-export-spring
📦
GitHubRepository
https://github.com/folio-org/mod-data-export-worker
📦
GitHubRepository
https://github.com/folio-org/mod-data-export
📦
GitHubRepository
https://github.com/folio-org/mod-dcb
📦
GitHubRepository
https://github.com/folio-org/mod-ebsconet
📦
GitHubRepository
https://github.com/folio-org/mod-entities-links
📦
GitHubRepository
https://github.com/folio-org/mod-eusage-reports
📦
GitHubRepository
https://github.com/folio-org/mod-fqm-manager
📦
GitHubRepository
https://github.com/folio-org/mod-inn-reach
📦
GitHubRepository
https://github.com/folio-org/mod-inventory-update
📦
GitHubRepository
https://github.com/folio-org/mod-licenses
📦
GitHubRepository
https://github.com/folio-org/mod-linked-data-import
📦
GitHubRepository
https://github.com/folio-org/mod-linked-data
📦
GitHubRepository
https://github.com/folio-org/mod-lists
📦
GitHubRepository
https://github.com/folio-org/mod-locations
📦
GitHubRepository
https://github.com/folio-org/mod-login-keycloak
📦
GitHubRepository
https://github.com/folio-org/mod-marc-migrations
📦
GitHubRepository
https://github.com/folio-org/mod-mosaic
📦
GitHubRepository
https://github.com/folio-org/mod-notes
📦
GitHubRepository
https://github.com/folio-org/mod-oa
📦
GitHubRepository
https://github.com/folio-org/mod-okapi-facade
📦
GitHubRepository
https://github.com/folio-org/mod-password-validator
📦
GitHubRepository
https://github.com/folio-org/mod-quick-marc
📦
GitHubRepository
https://github.com/folio-org/mod-reading-room
📦
GitHubRepository
https://github.com/folio-org/mod-record-specifications
📦
GitHubRepository
https://github.com/folio-org/mod-remote-storage
📦
GitHubRepository
https://github.com/folio-org/mod-requests-mediated
📦
GitHubRepository
https://github.com/folio-org/mod-roles-keycloak
📦
GitHubRepository
https://github.com/folio-org/mod-rtac-cache
📦
GitHubRepository
https://github.com/folio-org/mod-scheduler
📦
GitHubRepository
https://github.com/folio-org/mod-search
📦
GitHubRepository
https://github.com/folio-org/mod-serials-management
📦
GitHubRepository
https://github.com/folio-org/mod-settings
📦
GitHubRepository
https://github.com/folio-org/mod-tags
📦
GitHubRepository
https://github.com/folio-org/mod-tlr
📦
GitHubRepository
https://github.com/folio-org/mod-users-keycloak
📦
GitHubRepository
https://github.com/folio-org/mod-workflow

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-accession-item-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-return-item-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-instructors-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-asr-requests-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-asr-items-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-update-asr-item-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-license-terms-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-license-terms-batch-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-request-ids-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-entity-type-summaries-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-test-document-delivery-offer-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-test-document-delivery-register-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-access-token-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-batch-holdings-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-rtac-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-instance-holdings-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-userdata-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-user-results-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-patron-pin-with-id-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-entity-type-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-query-details-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-custom-entity-type-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-contents-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-submit-query-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-update-used-by-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-tenant-attributes-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-tenant-job-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-application-descriptor-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-application-cleanup-result-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-application-descriptors-validation-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-module-discoveries-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-application-discoveries-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-application-descriptors-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-flow-stage-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-application-flow-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-flow-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-module-reinstall-request-body-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-extended-entitlements-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-desired-state-request-body-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-tenant-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-tenant-attribute-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-tenants-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-export-entry-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-agreement-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-dashboard-widget-definition-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-kb-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-erm-resource-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-persistent-job-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-token-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-sign-token-payload-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-sign-refresh-token-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-refresh-token-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-token-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-token-response-legacy-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-message-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-entry-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-entries-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-message-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-bulk-operation-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-profile-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-calendar-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-calendar-collection-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-surrounding-openings-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-single-day-opening-collection-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-workflow-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-link-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-response-errors-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-circulation-loan-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-mediated-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-check-in-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-bff-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-check-out-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-circulation-item-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-circulation-items-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-export-config-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-export-config-collection-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-mapping-profile-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-export-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-job-profile-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-quick-export-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-file-definition-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-export-all-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-setting-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-settings-collection-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-ebsconet-order-line-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-validation-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-authority-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-authority-source-file-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-authority-stats-dto-collection-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-parsed-record-content-collection-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-authority-source-file-dto-collection-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-authority-note-type-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-report-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-report-cost-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-report-status-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-title-data-entries-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-report-titles-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-report-data-entries-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-purged-queries-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-data-refresh-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-query-status-summaries-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-paging-slips-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-transaction-hold-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-local-hold-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-item-shipped-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-inn-reach-transaction-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-base-circ-request-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-failed-record-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-channel-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-import-job-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-transformation-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-transformation-step-association-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-step-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-license-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-policies-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/folio/refs/heads/main/json-schema/folio-custom-property-definition-schema.json

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/folio:folio-calendar-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

folio-calendar-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Folio Calendar API
  version: v5.0
  description: 'Operations tagged Calendar across 2 of this provider''s published API definitions: folio-mod-calendar-openapi.json, folio-mod-calendar-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: /
tags:
- name: Calendar
paths:
  /calendar/calendars:
    get:
      summary: Search all calendars
      description: Get all calendars that match the given query
      operationId: searchCalendars
      parameters:
      - in: query
        name: id
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: The list of calendar IDs to retrieve, sent as separate parameters (?id=aaaa&id=bbbb...).  If this list is passed, calendars must have an ID in this list in addition to any additional criteria.
      - in: query
        name: servicePointId
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Filter for calendars that are assigned to a certain service point.  If this parameter is excluded, all service points will be considered/included in the response.  Multiple service points may be specified with form-style query expansions; in this case, calendars that are assigned to any of the provided service points will be returned.
      - in: query
        name: startDate
        required: false
        schema:
          type: string
          format: date
        description: The first date (YYYY-MM-DD) to consider, inclusively
      - in: query
        name: endDate
        required: false
        schema:
          type: string
          format: date
        description: The last date (YYYY-MM-DD) to consider, inclusively
      - in: query
        name: offset
        required: false
        schema:
          type: integer
          default: 0
          minimum: 0
        description: Skip a certain number of the first values; used for pagination
      - in: query
        name: limit
        required: false
        schema:
          type: integer
          default: 10
          minimum: 0
        description: The maximum number of elements returned in the response, used for pagination.  A limit of zero will not include any results (however, totalRecords will still be included) -- to include all results, use a large number such as 2147483647.
      responses:
        '200':
          description: The query results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/calendarCollection'
        '400':
          $ref: '#/components/responses/invalidRequest'
        '500':
          $ref: '#/components/responses/internalServerError'
      tags:
      - Calendar
    post:
      summary: Create a new calendar
      description: Create a new calendar from a provided body. If an ID is provided for the calendar, it will be ignored (and a new one generated).
      operationId: createCalendar
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/calendar'
      responses:
        '201':
          description: The created calendar
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/calendar'
        '400':
          $ref: '#/components/responses/invalidRequest'
        '409':
          $ref: '#/components/responses/calendarDateOverlap'
        '500':
          $ref: '#/components/responses/internalServerError'
      tags:
      - Calendar
    delete:
      summary: Delete multiple calendars
      description: Delete a calendar by its ID.
      operationId: deleteCalendars
      parameters:
      - in: query
        name: id
        required: true
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
            format: uuid
          minItems: 1
        description: A list of calendars to delete, sent as separate parameters (?id=aaaa&id=bbbb...).  If any calendars are missing, a 404 will be returned and nothing modified.
      responses:
        '204':
          description: The requested calendars were deleted
        '400':
          $ref: '#/components/responses/invalidRequest'
        '404':
          $ref: '#/components/responses/calendarNotFound'
        '500':
          $ref: '#/components/responses/internalServerError'
      tags:
      - Calendar
    servers:
    - url: /
  /calendar/calendars/{calendarId}:
    get:
      summary: Get a calendar
      description: Get a calendar's information by its ID.
      operationId: getCalendar
      parameters:
      - in: path
        name: calendarId
        required: true
        schema:
          type: string
          format: uuid
        description: The calendar ID to retrieve
      responses:
        '200':
          description: The resulting calendar
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/calendar'
        '400':
          $ref: '#/components/responses/invalidRequest'
        '404':
          $ref: '#/components/responses/calendarNotFound'
        '500':
          $ref: '#/components/responses/internalServerError'
      tags:
      - Calendar
    put:
      summary: Update an existing calendar
      description: Overwrite an existing calendar with the provided payload. The provided calendar must already exist (attempting to overwrite a calendar that does not yet exist will result in a 404). If the payload includes any IDs, they will be ignored, and the existing calendar ID reused.
      operationId: updateCalendar
      parameters:
      - in: path
        name: calendarId
        required: true
        schema:
          type: string
          format: uuid
        description: The calendar ID to replace
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/calendar'
      responses:
        '200':
          description: The newly saved calendar
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/calendar'
        '400':
          $ref: '#/components/responses/invalidRequest'
        '404':
          $ref: '#/components/responses/calendarNotFound'
        '409':
          $ref: '#/components/responses/calendarDateOverlap'
        '500':
          $ref: '#/components/responses/internalServerError'
      tags:
      - Calendar
    delete:
      summary: Delete a calendar
      description: Delete a calendar by its ID.
      operationId: deleteCalendar
      parameters:
      - in: path
        name: calendarId
        required: true
        schema:
          type: string
          format: uuid
        description: The calendar ID to operate on.
      responses:
        '204':
          description: The requested calendar was deleted
        '400':
          $ref: '#/components/responses/invalidRequest'
        '404':
          $ref: '#/components/responses/calendarNotFound'
        '500':
          $ref: '#/components/responses/internalServerError'
      tags:
      - Calendar
    servers:
    - url: /
  /calendar/dates/{servicePointId}/surrounding-openings:
    get:
      operationId: getSurroundingOpenings
      summary: Surrounding openings
      description: Calculate openings nearest to a given date for a specified service point
      parameters:
      - in: path
        name: servicePointId
        required: true
        schema:
          type: string
          format: uuid
        description: The service point to calculate openings on
      - in: query
        name: date
        required: true
        schema:
          type: string
          format: date
        description: The date (YYYY-MM-DD) to calculate openings around
      responses:
        '200':
          description: The query results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/surroundingOpenings'
        '400':
          $ref: '#/components/responses/invalidRequest'
        '500':
          $ref: '#/components/responses/internalServerError'
      tags:
      - Calendar
    servers:
    - url: /
  /calendar/dates/{servicePointId}/all-openings:
    get:
      operationId: getAllOpenings
      summary: Daily opening information
      description: Calculate the opening information for each date within a range
      parameters:
      - in: path
        name: servicePointId
        required: true
        schema:
          type: string
          format: uuid
        description: The service point to calculate openings on
      - in: query
        name: startDate
        required: true
        schema:
          type: string
          format: date
        description: The first date (YYYY-MM-DD) to include, inclusive
      - in: query
        name: endDate
        required: true
        schema:
          type: string
          format: date
        description: The last date (YYYY-MM-DD) to include, inclusive
      - in: query
        name: includeClosed
        required: true
        schema:
          type: boolean
        description: Whether or not the results should include days where the service point is closed.  Exceptional closures will always be returned
      - in: query
        name: offset
        required: false
        schema:
          type: integer
          default: 0
          minimum: 0
        description: Skip a certain number of the first values; used for pagination
      - in: query
        name: limit
        required: false
        schema:
          type: integer
          default: 10
          minimum: 0
        description: The maximum number of elements returned in the response, used for pagination.  A limit of zero will not include any results (however, totalRecords will still be included) -- to include all results, use a large number such as 2147483647.
      responses:
        '200':
          description: The query results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/singleDayOpeningCollection'
        '400':
          $ref: '#/components/responses/invalidRequest'
        '500':
          $ref: '#/components/responses/internalServerError'
      tags:
      - Calendar
    servers:
    - url: /
components:
  schemas:
    singleDayOpeningRange:
      description: A time for a single opening range on a given day
      type: object
      properties:
        startTime:
          description: The start time of this opening
          type: string
          format: time
        endTime:
          description: The end time of this opening
          type: string
          format: time
      required:
      - startTime
      - endTime
      additionalProperties: false
      example:
        startTime: '13:30:00'
        endTime: '17:00:00'
    weekday:
      description: A day of the week.  Either SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, or SATURDAY
      type: string
      format: Weekday
    servicePointId:
      type: string
      format: uuid
      description: A UUID uniquely identifying a service point
    metadata:
      description: Metadata associated with the calendar. This is provided by the server on a best-effort basis; no fields are guaranteed to be present. Metadata is provided from Okapi; any metadata sent directly from the client will be ignored.
      type: object
      properties:
        createdDate:
          type: string
          format: date-time
        createdByUserId:
          type: string
          format: uuid
        updatedDate:
          type: string
          format: date-time
        updatedByUserId:
          type: string
          format: uuid
      additionalProperties: false
      required: []
    errorResponse:
      description: A set of error(s) from a request
      type: object
      properties:
        timestamp:
          description: The time that the error occurred
          type: string
          format: date-time
        status:
          description: The HTTP response code
          type: integer
          minimum: 100
          exclusiveMaximum: 600
        errors:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/error'
      additionalProperties: false
      required:
      - timestamp
      - status
      - errors
    errorCode:
      description: A code describing the error.
      type: string
      enum:
      - internalServerError
      - invalidRequest
      - invalidParameter
      - calendarDateOverlap
      - calendarNotFound
      - calendarNoName
      - calendarInvalidDateRange
      - calendarInvalidNormalOpenings
      - calendarInvalidExceptions
      - calendarInvalidExceptionName
      - calendarInvalidExceptionDateOrder
      - calendarInvalidExceptionDateBoundary
      - calendarInvalidExceptionOpenings
      - calendarInvalidExceptionOpeningBoundary
      - settings.error.invalidDateRange
      - duplication
      - notFound
      x-enum-varnames:
      - INTERNAL_SERVER_ERROR
      - INVALID_REQUEST
      - INVALID_PARAMETER
      - CALENDAR_DATE_OVERLAP
      - CALENDAR_NOT_FOUND
      - CALENDAR_NO_NAME
      - CALENDAR_INVALID_DATE_RANGE
      - CALENDAR_INVALID_NORMAL_OPENINGS
      - CALENDAR_INVALID_EXCEPTIONS
      - CALENDAR_INVALID_EXCEPTION_NAME
      - CALENDAR_INVALID_EXCEPTION_DATE_ORDER
      - CALENDAR_INVALID_EXCEPTION_DATE_BOUNDARY
      - CALENDAR_INVALID_EXCEPTION_OPENINGS
      - CALENDAR_INVALID_EXCEPTION_OPENING_BOUNDARY
      - INVALID_DATE_RANGE
      - OVERLAPPING_CALENDAR
      - NOT_FOUND
      x-enum-descriptions:
      - Catch-all for any other unhandled exceptions
      - Catch-all for unparsable requests (bad JSON, etc)
      - Catch-all for missing or wrongly-typed parameters
      - The provided dates overlap other dates for the same assignment
      - The calender with the provided UUID was not found
      - The calendar's name was empty or whitespace
      - The calendar's start date was after the end date
      - The calendar has overlapping normal openings
      - The calendar has overlapping exceptions
      - An exception has an empty or whitespace-only name
      - An exception has a start date after its end date
      - An exception is outside of the boundary of the enclosing calendar
      - The calendar has overlapping openings within an exception
      - The exception has an opening outside of its range
      - The start date was after the end date
      - The new calendar would overlap with another calendar for this service point!  Please change the dates or add an exception.
      - No calendar/period was found with this ID
    exceptionRange:
      description: An exception to a calendar, consisting of a set of openings (or none if a closure)
      type: object
      properties:
        calendarId:
          description: The UUID of the calendar which this exception is for
          type: string
          format: uuid
        name:
          description: A user-provided label for this exception
          type: string
        startDate:
          description: The first effective date (inclusive, YYYY-MM-DD) of this exception range
          type: string
          format: date
        endDate:
          description: The first effective date (inclusive, YYYY-MM-DD) of this exception range
          type: string
          format: date
        openings:
          description: The openings during this exception
          type: array
          items:
            $ref: '#/components/schemas/exceptionalOpening'
      additionalProperties: false
      required:
      - name
      - startDate
      - endDate
      - openings
      example:
        name: Sample exception
        startDate: '2022-05-01'
        endDate: '2022-05-03'
        openings:
        - startDate: '2022-05-01'
          startTime: 07:00:00
          endDate: '2022-05-02'
          endTime: '22:00:00'
        - startDate: '2022-05-03'
          startTime: 09:00:00
          endDate: '2022-05-03'
          endTime: '23:00:00'
    normalHours:
      description: A range of hours when a calendar is open
      type: object
      properties:
        calendarId:
          description: The UUID of the calendar which these hours are for
          type: string
          format: uuid
        startDay:
          description: The first weekday (inclusive) of this range
          $ref: '#/components/schemas/weekday'
        startTime:
          description: The time when this opening starts, inclusive
          type: string
          format: time
        endDay:
          description: The last weekday (inclusive) of this range
          $ref: '#/components/schemas/weekday'
        endTime:
          description: The last minute of this opening, inclusive (11:59 if it should be open at 11:59 and closed at 12:00)
          type: string
          format: time
      additionalProperties: false
      required:
      - startDay
      - startTime
      - endDay
      - endTime
      example:
        startDay: MONDAY
        startTime: 07:00:00
        endDay: FRIDAY
        endTime: '22:00:00'
    singleDayOpeningCollection:
      description: Collection of opening information for single days
      type: object
      properties:
        dates:
          type: array
          description: Each opening or date returned in the response
          items:
            $ref: '#/components/schemas/singleDayOpening'
        totalRecords:
          type: integer
          minimum: 0
          description: Number of total openings or dates available
      additionalProperties: false
      required:
      - dates
      - totalRecords
      example:
        dates:
        - date: '2022-05-01'
          allDay: false
          open: true
          exceptional: true
          exceptionName: Holiday (reduced hours with lunch break)
          openings:
          - startTime: '10:00:00'
            endTime: '12:00:00'
          - startTime: '13:30:00'
            endTime: '17:00:00'
        - date: '2022-05-02'
          allDay: true
          open: false
          exceptional: false
          openings: []
        - date: '2022-05-03'
          allDay: true
          open: true
          exceptional: false
          openings:
          - startTime: 00:00:00
            endTime: '23:59:00'
        totalRecords: 3
    surroundingOpenings:
      description: 'Information for three dates: one before when the SP is open, one representing an opening or closure for the current date, and one after the provided date where the SP is open.  If there are no openings before or after a given date, then an opening object will be returned with the date immediately following, denoting a closure.'
      type: object
      properties:
        openings:
          type: array
          minItems: 3
          maxItems: 3
          items:
            $ref: '#/components/schemas/singleDayOpening'
      required:
      - openings
      additionalProperties: false
      example:
        openings:
        - date: '2022-05-01'
          allDay: false
          open: true
          exceptional: true
          exceptionName: Holiday (reduced hours with lunch break)
          openings:
          - startTime: '10:00:00'
            endTime: '12:00:00'
          - startTime: '13:30:00'
            endTime: '17:00:00'
        - date: '2022-05-02'
          allDay: true
          open: false
          exceptional: false
          openings: []
        - date: '2022-05-03'
          allDay: true
          open: true
          exceptional: false
          openings:
          - startTime: 00:00:00
            endTime: '23:59:00'
    exceptionalOpening:
      description: An opening as part of an exception
      type: object
      properties:
        exceptionId:
          description: The UUID of the exception which this opening is for
          type: string
          format: uuid
        startDate:
          description: The first effective date (inclusive, YYYY-MM-DD) of this opening
          type: string
          format: date
        startTime:
          description: The first opening time (inclusive) of this opening
          type: string
          format: time
        endDate:
          description: The first effective date (inclusive, YYYY-MM-DD) of this opening
          type: string
          format: date
        endTime:
          description: The last open time (inclusive) of this opening
          type: string
          format: time
      additionalProperties: false
      required:
      - startDate
      - startTime
      - endDate
      - endTime
      example:
        startDate: '2022-05-01'
        startTime: 07:00:00
        endDate: '2022-05-01'
        endTime: '22:00:00'
    calendar:
      description: A single calendar
      type: object
      properties:
        id:
          description: A unique UUID identifying this calendar
          type: string
          format: uuid
        name:
          description: A user-provided name used to label this calendar
          type: string
        startDate:
          type: string
          format: date
          description: The first effective date (inclusive, YYYY-MM-DD) of this calendar
        endDate:
          type: string
          format: date
          description: The first effective date (inclusive, YYYY-MM-DD) of this calendar
        assignments:
          description: A list of all service points that this calendar is assigned to
          type: array
          items:
            $ref: '#/components/schemas/servicePointId'
        normalHours:
          description: A list of objects describing when the calendar is normally open
          type: array
          items:
            $ref: '#/components/schemas/normalHours'
        exceptions:
          description: A list of objects describing exceptions to the normal hours
          type: array
          items:
            $ref: '#/components/schemas/exceptionRange'
        metadata:
          $ref: '#/components/schemas/metadata'
      additionalProperties: false
      required:
      - name
      - startDate
      - endDate
      - assignments
      - normalHours
      - exceptions
      example:
        name: Sample Spring Calendar
        startDate: '2022-01-08'
        endDate: '2022-05-09'
        assignments:
        - 44444444-4444-4444-4444-444444444444
        - bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb
        - dddddddd-dddd-dddd-dddd-dddddddddddd
        normalHours:
        - startDay: MONDAY
          startTime: 07:00:00
          endDay: FRIDAY
          endTime: '22:00:00'
        - startDay: SATURDAY
          startTime: 07:00:00
          endDay: SATURDAY
          endTime: '22:00:00'
        exceptions:
        - name: Spring break (closed)
          startDate: '2022-03-01'
          endDate: '2022-03-05'
          openings: []
        - name: Early closure
          startDate: '2022-04-01'
          endDate: '2022-04-01'
          openings:
          - startDate: '2022-04-01'
            startTime: 07:00:00
            endDate: '2022-04-01'
            endTime: '12:00:00'
    singleDayOpening:
      description: Opening information for a single day
      type: object
      properties:
        date:
          description: The date (YYYY-MM-DD) that this object is describing openings for
          type: string
          format: date
        allDay:
          description: If the service point is open or closed for the entire day
          type: boolean
        open:
          description: If the service point is open on this day
          type: boolean
        exceptional:
          description: If this opening (or closure) was the result of an exception
          type: boolean
        exceptionName:
          description: The name of an exception, if this day was affected by one
          type: string
        openings:
          description: A list of all the opening ranges of the service point on this day
          type: array
          items:
            $ref: '#/components/schemas/singleDayOpeningRange'
      required:
      - date
      - allDay
      - open
      - exceptional
      - openings
      additionalProperties: false
      example:
        date: '2022-05-01'
        allDay: false
        open: true
        exceptional: true
        exceptionName: Holiday (reduced hours with lunch break)
        openings:
        - startTime: '10:00:00'
          endTime: '12:00:00'
        - startTime: '13:30:00'
          endTime: '17:00:00'
    calendarCollection:
      description: Collection of calendars
      type: object
      properties:
        calendars:
          type: array
          description: Each calendar returned in the response
          items:
            $ref: '#/components/schemas/calendar'
        totalRecords:
          type: integer
          minimum: 0
          description: Number of calendars in the response
      additionalProperties: false
      required:
      - calendars
      - totalRecords
      example:
        calendars:
        - name: Sample Spring Calendar
          startDate: '2022-01-08'
          endDate: '2022-05-09'
          assignments:
          - 44444444-4444-4444-4444-444444444444
          - bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb
          - dddddddd-dddd-dddd-dddd-dddddddddddd
          normalHours:
          - startDay: MONDAY
            startTime: 07:00:00
            endDay: FRIDAY
            endTime: '22:00:00'
          - startDay: SATURDAY
            startTime: 07:00:00
            endDay: SATURDAY
            endTime: '22:00:00'
          exceptions:
          - name: Spring break (closed)
            startDate: '2022-03-01'
            endDate: '2022-03-05'
            openings: []
          - name: Early closure
            startDate: '2022-04-01'
            endDate: '2022-04-01'
            openings:
            - startDate: '2022-04-01'
              startTime: 07:00:00
              endDate: '2022-04-01'
              endTime: '12:00:00'
        totalRecords: 1
    error:
      description: Any kind of error coming from an endpoint
      type: object
      properties:
        code:
          $ref: '#/components/schemas/errorCode'
        message:
          type: string
          description: A description of the error, properly localized.
        data:
          type: object
          description: Additional data that may be used for rich error display in the UI
        _parameters:
          description: Parameters which may give insight into what caused the error
      additionalProperties: false
      required:
      - code
      - message
      example:
        code: internalServerError
        message: Internal Server Error
  responses:
    invalidRequest:
      description: Invalid request or parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/errorResponse'
          example:
            value:
              timestamp: 2021-11-18T13:38.51-50:00
              status: 400
              errors:
              - code: invalidRequest
                message: The request could not be parsed
            summary: The request could not be parsed/understood.
    calendarNotFound:
      description: A calendar with the given UUID could not be found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/errorResponse'
          example:
            value:
              timestamp: 2021-11-18T13:38.51-05:00
              status: 404
              errors:
              - code: calendarNotFound
                message: A calendar with UUIDs aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa and dddddddd-dddd-dddd-dddd-dddddddddddd could not be found.
                data:
                  notFound:
                  - aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
                  - dddddddd-dddd-dddd-dddd-dddddddddddd
            summary: A calendar with the requested UUID does not exist.
    calendarDateOverlap:
      description: A calendar creation/update cannot be performed due to an existing assignment overlapping with the provided date range
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/errorResponse'
          example:
            value:
              timestamp: 2021-11-18T13:38.51-05:00
              status: 409
              errors:
              - code: calendarDateOverlap
                message: This calendar cannot be created due to an overlap with "Other calendar" (which is from Jan 3, 2022 to Mar 30, 2022)
                data:
                  conflictingServicePointIds:
                  - dddddddd-dddd-dddd-dddd-dddddddddddd
            summary: A calendar being created overlaps with an existing one
    internalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/errorResponse'
          example:
            value:
              timestamp: 2021-11-18T13:38.51-05:00
              status: 500
              errors:
              - code: internalServerError
                message: Internal Server Error
            summary: Any kind of internal error
x-refined-from:
- folio-mod-calendar-openapi.json
- folio-mod-calendar-openapi.yml