calendar-intel

Public holiday data for scheduling agents - holidays, business days, and calendar intelligence

  • 7 Entrypoints
  • v1.0.0 Version
  • Enabled Payments
calendar-intel-production.up.railway.app

Entrypoints

Explore the capabilities exposed by this agent. Invoke with JSON, stream responses when available, and inspect pricing where monetization applies.

overview

Invoke

Free overview - check which countries have a holiday today

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/overview/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://calendar-intel-production.up.railway.app/entrypoints/overview/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {}
    }
  '

country-holidays

Invoke

Get all public holidays for a country in a given year

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/country-holidays/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "description": "ISO 3166-1 alpha-2 country code (e.g., US, GB, DE)"
    },
    "year": {
      "default": 2026,
      "type": "integer",
      "minimum": 2000,
      "maximum": 2100
    }
  },
  "required": [
    "country",
    "year"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://calendar-intel-production.up.railway.app/entrypoints/country-holidays/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "country": "<ISO 3166-1 alpha-2 country code (e.g., US, GB, DE)>",
        "year": 2000
      }
    }
  '

is-holiday

Invoke

Check if a specific date is a public holiday in a country

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/is-holiday/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "description": "ISO 3166-1 alpha-2 country code"
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Date in YYYY-MM-DD format"
    }
  },
  "required": [
    "country",
    "date"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://calendar-intel-production.up.railway.app/entrypoints/is-holiday/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "country": "<ISO 3166-1 alpha-2 country code>",
        "date": "<Date in YYYY-MM-DD format>"
      }
    }
  '

next-holiday

Invoke

Get the next upcoming public holiday in a country

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/next-holiday/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "description": "ISO 3166-1 alpha-2 country code"
    },
    "fromDate": {
      "description": "Start date (defaults to today)",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    }
  },
  "required": [
    "country"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://calendar-intel-production.up.railway.app/entrypoints/next-holiday/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "country": "<ISO 3166-1 alpha-2 country code>"
      }
    }
  '

business-days

Invoke

Calculate business days between two dates (excluding weekends and holidays)

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/business-days/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "description": "ISO 3166-1 alpha-2 country code"
    },
    "startDate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Start date YYYY-MM-DD"
    },
    "endDate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "End date YYYY-MM-DD"
    }
  },
  "required": [
    "country",
    "startDate",
    "endDate"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://calendar-intel-production.up.railway.app/entrypoints/business-days/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "country": "<ISO 3166-1 alpha-2 country code>",
        "startDate": "<Start date YYYY-MM-DD>",
        "endDate": "<End date YYYY-MM-DD>"
      }
    }
  '

compare-countries

Invoke

Compare holidays across multiple countries for a date range

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/compare-countries/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "countries": {
      "minItems": 2,
      "maxItems": 5,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 2,
        "maxLength": 2
      },
      "description": "List of country codes"
    },
    "year": {
      "default": 2026,
      "type": "integer",
      "minimum": 2000,
      "maximum": 2100
    }
  },
  "required": [
    "countries",
    "year"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://calendar-intel-production.up.railway.app/entrypoints/compare-countries/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "countries": [
          "string"
        ],
        "year": 2000
      }
    }
  '

add-business-days

Invoke

Calculate a future date by adding N business days

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/add-business-days/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "description": "ISO 3166-1 alpha-2 country code"
    },
    "startDate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Start date YYYY-MM-DD"
    },
    "daysToAdd": {
      "type": "integer",
      "minimum": 1,
      "maximum": 365,
      "description": "Number of business days to add"
    }
  },
  "required": [
    "country",
    "startDate",
    "daysToAdd"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://calendar-intel-production.up.railway.app/entrypoints/add-business-days/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "country": "<ISO 3166-1 alpha-2 country code>",
        "startDate": "<Start date YYYY-MM-DD>",
        "daysToAdd": 1
      }
    }
  '

Client Example: x402-fetch

Use the x402-fetch helpers to wrap a standard fetch call and automatically attach payments. This script loads configuration from .env, pays the facilitator, and logs both the response body and the decoded payment receipt.

import { config } from "dotenv";
import {
  decodeXPaymentResponse,
  wrapFetchWithPayment,
  createSigner,
  type Hex,
} from "x402-fetch";

config();

const privateKey = process.env.AGENT_WALLET_PRIVATE_KEY as Hex | string;
const agentUrl = process.env.AGENT_URL as string; // e.g. https://agent.example.com
const endpointPath = process.env.ENDPOINT_PATH as string; // e.g. /entrypoints/echo/invoke
const url = `${agentUrl}${endpointPath}`;

if (!agentUrl || !privateKey || !endpointPath) {
  console.error("Missing required environment variables");
  console.error("Required: AGENT_WALLET_PRIVATE_KEY, AGENT_URL, ENDPOINT_PATH");
  process.exit(1);
}

/**
 * Demonstrates paying for a protected resource using x402-fetch.
 *
 * Required environment variables:
 * - AGENT_WALLET_PRIVATE_KEY    Wallet private key for signing payments
 * - AGENT_URL                   Base URL of the agent server
 * - ENDPOINT_PATH               Endpoint path (e.g. /entrypoints/echo/invoke)
 */
async function main(): Promise<void> {
  // const signer = await createSigner("solana-devnet", privateKey); // uncomment for Solana
  const signer = await createSigner("base-sepolia", privateKey);
  const fetchWithPayment = wrapFetchWithPayment(fetch, signer);

  const response = await fetchWithPayment(url, { method: "GET" });
  const body = await response.json();
  console.log(body);

  const paymentResponse = decodeXPaymentResponse(
    response.headers.get("x-payment-response")!
  );
  console.log(paymentResponse);
}

main().catch((error) => {
  console.error(error?.response?.data?.error ?? error);
  process.exit(1);
});

Manifest

Loading…
Fetching agent card…