CycleCalcs · Arazzo Workflow

Tonight's sky for a place

Version 1.0.0

Resolve a place name, take the whole-sky snapshot, then find the dark moonless observing window for the next week.

1 workflow 3 source APIs 1 provider
View Spec View on GitHub AstronomySpaceScienceEphemerisSunMoonPlanetsEclipsesTimeCalendarGeolocationMCPagent-nativeArazzoWorkflows

Provider

cyclecalcs

Workflows

tonightsSkyForAPlace
Place name to a usable observing plan in three keyless GETs.
3 steps inputs: nights, place outputs: attribution, darkNights, summary
1
resolvePlace
Resolve the place name to coordinates and an IANA timezone.
2
skyToday
One-call whole-sky snapshot for that place, right now.
3
darkWindow
The genuinely dark, moonless window per night, ranked.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Tonight's sky for a place
  version: 1.0.0
  summary: >-
    Resolve a place name, take the whole-sky snapshot, then find the dark
    moonless observing window for the next week.
sourceDescriptions:
- name: darkWindowApi
  url: ../openapi/cyclecalcs-dark-window-api-openapi.yml
  type: openapi
- name: placesApi
  url: ../openapi/cyclecalcs-places-api-openapi.yml
  type: openapi
- name: todayApi
  url: ../openapi/cyclecalcs-today-api-openapi.yml
  type: openapi
workflows:
- workflowId: tonightsSkyForAPlace
  summary: Place name to a usable observing plan in three keyless GETs.
  inputs:
    type: object
    required: [place]
    properties:
      place:
        type: string
        description: 'City or "City,CC" with an ISO country code, e.g. "Lisbon,PT".'
      nights:
        type: integer
        description: How many nights of dark window to rank (1-62).
  steps:
  - stepId: resolvePlace
    description: Resolve the place name to coordinates and an IANA timezone.
    operationId: getPlaces
    parameters:
    - name: q
      in: query
      value: $inputs.place
    - name: limit
      in: query
      value: 1
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      lat: $response.body#/data/results/0/latitude
      lon: $response.body#/data/results/0/longitude
      tz: $response.body#/data/results/0/timezone
      attribution: $response.body#/attribution
  - stepId: skyToday
    description: One-call whole-sky snapshot for that place, right now.
    operationId: getToday
    parameters:
    - name: lat
      in: query
      value: $steps.resolvePlace.outputs.lat
    - name: lon
      in: query
      value: $steps.resolvePlace.outputs.lon
    - name: tz
      in: query
      value: $steps.resolvePlace.outputs.tz
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      summary: $response.body#/data/summary
  - stepId: darkWindow
    description: The genuinely dark, moonless window per night, ranked.
    operationId: getDarkWindow
    parameters:
    - name: lat
      in: query
      value: $steps.resolvePlace.outputs.lat
    - name: lon
      in: query
      value: $steps.resolvePlace.outputs.lon
    - name: tz
      in: query
      value: $steps.resolvePlace.outputs.tz
    - name: nights
      in: query
      value: $inputs.nights
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      nights: $response.body#/data
  outputs:
    summary: $steps.skyToday.outputs.summary
    darkNights: $steps.darkWindow.outputs.nights
    attribution: $steps.resolvePlace.outputs.attribution
x-generated: '2026-08-09'
x-method: generated
x-note: >-
  Every operationId is verbatim from the harvested OpenAPI. No key is required
  for any step; the free Basic tier serves all three. The `attribution` output
  is carried through deliberately — resolving a place puts a GeoNames CC BY 4.0
  credit obligation on the response.

Work with this as data

Every workflow 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 arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • 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 workflow
curl "https://apis.io/api/v1/arazzo/cyclecalcs-tonights-sky"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

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

Get an API key

Free tier, no email required.

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