Geo-Parity Team Calendar.json API

The Team Calendar.json API from Geo-Parity — 1 operation(s) for team calendar.json.

GitHub OpenAPI

Operations 1

GET /api/team-calendar.json Shared working days and hours for a multi-country team #

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/geo-parity-com:geo-parity-com-team-calendar-json-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

geo-parity-com-team-calendar-json-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Geo-Parity Team Calendar.json API
  version: 1.0.0
  description: 'Free, key-less JSON APIs behind geo-parity.com: purchasing power parity, fair global salaries, Schengen 90/180 compliance, cross-timezone meetings, contractor economics, freelance rates, tax-residency day counts, country comparison, cloud region latency, and a digital-nomad visa directory. All GET responses are cacheable; errors return { ok:false, code, message, example }. No key is required: anonymous callers get 1,500 requests/month per IP plus a 30/minute burst cap. An optional API key (Authorization: Bearer gp_live_..., created at /account) only raises those ceilings — responses are identical either way, and a key is metered per account rather than per key. Every response carries X-RateLimit-Limit / -Remaining / -Reset (the minute window) and X-Quota-Limit / -Remaining / -Reset (the calendar month, resetting on the 1st UTC); exceeding either returns 429 with Retry-After and code RATE_LIMITED (slow down) or QUOTA_EXCEEDED (allowance spent — retrying will not help). Figures are informational estimates, not financial/tax/legal advice. Machine discovery: /llms.txt and /.well-known/mcp.json; the same tools are also registered with the browser''s WebMCP ModelContext on every page, executing through /api/mcp.'
  contact:
    url: https://geo-parity.com
servers:
- url: https://geo-parity.com
security:
- {}
- bearerAuth: []
- apiKeyQuery: []
tags:
- name: Team Calendar.json
paths:
  /api/team-calendar.json:
    get:
      operationId: planTeamCalendar
      summary: Shared working days and hours for a multi-country team
      description: Weekdays on which nobody in the team is on a public holiday, joined to the daily working-hour overlap across the members' time zones (evaluated on 15 January and 15 July so daylight saving is visible), and multiplied into conservative shared working hours per year. Members are ISO alpha-2 codes, each optionally `CC@IANA/Zone`; countries spanning several zones are flagged multiZone. Spine countries with no holiday calendar (IN, TH, MY, AE, SA) return 422 NO_DATA.
      parameters:
      - name: members
        in: query
        required: true
        schema:
          type: string
        description: Comma-separated ISO alpha-2 codes, two or more, each optionally CC@IANA/Zone (e.g. GB,JP,US@America/Chicago)
      - name: year
        in: query
        schema:
          type: number
        description: Calendar year; defaults to the first year in the holiday dataset
      - name: start
        in: query
        schema:
          type: number
        description: Default working-window start, minutes from midnight (540)
      - name: end
        in: query
        schema:
          type: number
        description: Default working-window end, minutes from midnight (1080)
      - name: hours
        in: query
        schema:
          type: string
        description: Per-member start-end overrides, semicolon-separated and aligned with members
      responses:
        '200':
          description: Members, days, winter/summer hours, sharedWorkingHoursPerYear, caveats and an attribution block
        '400':
          description: members missing (MISSING_PARAMS), fewer than two countries (TOO_FEW), or malformed hours/date (INVALID_HOURS, INVALID_DATE)
        '422':
          description: Unknown country or zone (UNKNOWN_COUNTRY, UNKNOWN_ZONE), or no holiday calendar for a member (NO_DATA)
      tags:
      - Team Calendar.json
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Optional Geo-Parity API key (gp_live_...), created at /account. Raises the monthly quota and per-minute burst; never changes a response. Metered per account, so extra keys do not add allowance.
    apiKeyQuery:
      type: apiKey
      in: query
      name: key
      description: The same key, for clients that cannot set headers.
externalDocs:
  description: 'Developer guide: quota ladder, error codes, API keys and MCP setup'
  url: https://geo-parity.com/developers/