calendar-api-production-33a1.up.railway.app
Create RFC 5545 ICS calendars for appointments and itineraries, with all-day events, locations, descriptions and bounded recurrence. Timed events and recurrences are emitted in UTC; all-day end dates are exclusive.
Offering
- Provider
- calendar-api-production-33a1.up.railway.app
- Method
- POST
- Offering type
- Api Endpoint
- Transport type
- http
- Category
- General Utilities
- Delivery
- Not provided
- Pricing model
- Not provided
- x402 version
- 2
Endpoint context
- URL
https://calendar-api-production-33a1.up.railway.app/v1/calendars/build- MIME type
- Not provided
- First seen
- 2026-10-16T01:58:48.885Z
- Last seen
- Tags
- None supplied
Payment pricing
x402 payment terms are the authoritative price for calling this endpoint.
- Payment option 1
- 0.02 USDC
Atomic price: 20000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Raw x402 terms
[
{
"scheme": "exact",
"network": "eip155:8453",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "20000",
"payTo": "0x5461f103b54fcFE37a99337D3cb5AB5d30239c18"
}
]Observed health
- Status
- Healthy
- Latest latency
- 37 ms
- Average latency
- 1000 ms
- HTTP status
- 200
- Last checked
- Reachability
- 100% over 14 checks
Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.
Input schema
{
"additionalProperties": false,
"properties": {
"body": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"events": {
"items": {
"additionalProperties": false,
"properties": {
"all_day": {
"default": false,
"type": "boolean"
},
"description": {
"default": "",
"maxLength": 3000,
"type": "string"
},
"end": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"type": "string"
},
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
}
]
},
"location": {
"default": "",
"maxLength": 300,
"type": "string"
},
"recurrence": {
"additionalProperties": false,
"properties": {
"count": {
"maximum": 365,
"minimum": 1,
"type": "integer"
},
"frequency": {
"enum": [
"DAILY",
"WEEKLY",
"MONTHLY",
"YEARLY"
],
"type": "string"
},
"interval": {
"default": 1,
"maximum": 30,
"minimum": 1,
"type": "integer"
}
},
"required": [
"frequency",
"count"
],
"type": "object"
},
"start": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"type": "string"
},
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
}
]
},
"title": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"url": {
"format": "uri",
"type": "string"
}
},
"required": [
"title",
"start",
"end"
],
"type": "object"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
},
"name": {
"maxLength": 200,
"minLength": 1,
"type": "string"
}
},
"required": [
"name",
"events"
],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
}Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"events": {
"items": {
"additionalProperties": false,
"properties": {
"all_day": {
"default": false,
"type": "boolean"
},
"description": {
"default": "",
"maxLength": 3000,
"type": "string"
},
"end": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"type": "string"
},
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
}
]
},
"location": {
"default": "",
"maxLength": 300,
"type": "string"
},
"recurrence": {
"additionalProperties": false,
"properties": {
"count": {
"maximum": 365,
"minimum": 1,
"type": "integer"
},
"frequency": {
"enum": [
"DAILY",
"WEEKLY",
"MONTHLY",
"YEARLY"
],
"type": "string"
},
"interval": {
"default": 1,
"maximum": 30,
"minimum": 1,
"type": "integer"
}
},
"required": [
"frequency",
"count"
],
"type": "object"
},
"start": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"type": "string"
},
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
}
]
},
"title": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"url": {
"format": "uri",
"type": "string"
}
},
"required": [
"title",
"start",
"end"
],
"type": "object"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
},
"name": {
"maxLength": 200,
"minLength": 1,
"type": "string"
}
},
"required": [
"name",
"events"
],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}