Tanod utilpeek
utilpeek (Tanod) iCalendar builder: JSON events to an RFC 5545 .ics file with time zones, recurrence and attendees. Use when an agent must hand a user a calendar invite: events as JSON in, a .ics file out.
Offering
- Provider
- tanod.dev
- 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://tanod.dev/v1/calendar/ics-build- MIME type
- application/json
- First seen
- 2026-10-16T01:51:02.144Z
- Last seen
- Tags
- icalendar-builder, calendar, ics, build, utilpeek, fx-rates
Payment pricing
x402 payment terms are the authoritative price for calling this endpoint.
- Payment option 1
- 0.001 USDC
Atomic price: 1000 · Network: eip155:8453 · Asset: USDC · Scheme: exact - Payment option 2
- 0.001 USDC
Atomic price: 1000 · Network: eip155:137 · Asset: USDC · Scheme: exact - Payment option 3
- 0.001 USDC
Atomic price: 1000 · Network: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp · Asset: USDC · Scheme: exact - Payment option 4
- 0.001 USDC
Atomic price: 1000000000000000 · Network: eip155:56 · Asset: USDC · Scheme: exact - Payment option 5
- 0.001 USDC
Atomic price: 1000 · Network: eip155:42161 · Asset: USDC · Scheme: exact - Payment option 6
- 0.001 USDC
Atomic price: 1000 · Network: eip155:8453 · Asset: USDC · Scheme: exact - Payment option 7
- 0.001 USDC
Atomic price: 1000 · Network: eip155:137 · Asset: USDC · Scheme: exact
Raw x402 terms
[
{
"scheme": "exact",
"network": "eip155:8453",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "1000",
"payTo": "0x593857A4a4F619543ea12394137C3004ce841720"
},
{
"scheme": "exact",
"network": "eip155:137",
"asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
"amount": "1000",
"payTo": "0x593857A4a4F619543ea12394137C3004ce841720"
},
{
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"amount": "1000",
"payTo": "RMk9k3VC8dr4hhjgFh88rGhjAbzfBzHxJJ5n2fTcqus"
},
{
"scheme": "exact",
"network": "eip155:56",
"asset": "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",
"amount": "1000000000000000",
"payTo": "0x593857A4a4F619543ea12394137C3004ce841720"
},
{
"scheme": "exact",
"network": "eip155:42161",
"asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"amount": "1000",
"payTo": "0x593857A4a4F619543ea12394137C3004ce841720"
},
{
"scheme": "exact",
"network": "eip155:8453",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "1000",
"payTo": "0x593857A4a4F619543ea12394137C3004ce841720"
},
{
"scheme": "exact",
"network": "eip155:137",
"asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
"amount": "1000",
"payTo": "0x593857A4a4F619543ea12394137C3004ce841720"
}
]Observed health
- Status
- Healthy
- Latest latency
- 284 ms
- Average latency
- 877 ms
- HTTP status
- 204
- Last checked
- Reachability
- 100% over 11 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": {
"additionalProperties": false,
"properties": {
"calendar_name": {
"anyOf": [
{
"maxLength": 200,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Calendar name (X-WR-CALNAME)."
},
"events": {
"description": "1-50 events.",
"items": {
"additionalProperties": false,
"properties": {
"all_day": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "All-day event. Implied when `start` is a plain date."
},
"attendees": {
"anyOf": [
{
"items": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"email": {
"description": "Email address.",
"maxLength": 320,
"type": "string"
},
"name": {
"anyOf": [
{
"maxLength": 200,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Display name (CN)."
},
"rsvp": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Attendees only: ask for a reply."
}
},
"required": [
"email"
],
"type": "object"
},
{
"type": "string"
}
]
},
"maxItems": 100,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Emails or {email, name, rsvp}."
},
"description": {
"anyOf": [
{
"maxLength": 8000,
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"duration": {
"anyOf": [
{
"maxLength": 30,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "ISO 8601 duration such as PT1H30M or P2D (instead of end)."
},
"end": {
"anyOf": [
{
"maxLength": 40,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "ISO 8601 end. All-day: the last day, inclusive. Send this or `duration`."
},
"location": {
"anyOf": [
{
"maxLength": 1000,
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"organizer": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"email": {
"description": "Email address.",
"maxLength": 320,
"type": "string"
},
"name": {
"anyOf": [
{
"maxLength": 200,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Display name (CN)."
},
"rsvp": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Attendees only: ask for a reply."
}
},
"required": [
"email"
],
"type": "object"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Organizer email, or {email, name}."
},
"rrule": {
"anyOf": [
{
"maxLength": 500,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "RFC 5545 recurrence rule, e.g. FREQ=WEEKLY;BYDAY=MO;COUNT=10."
},
"start": {
"description": "ISO 8601 date (all-day) or datetime; an offset or Z is accepted. Without an offset it is read in `timezone`.",
"maxLength": 40,
"minLength": 10,
"type": "string"
},
"status": {
"anyOf": [
{
"pattern": "^(?i:CONFIRMED|TENTATIVE|CANCELLED)$",
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"summary": {
"description": "Event title.",
"maxLength": 500,
"minLength": 1,
"type": "string"
},
"timezone": {
"anyOf": [
{
"maxLength": 64,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "IANA time zone, such as Europe/Berlin."
},
"uid": {
"anyOf": [
{
"maxLength": 200,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Stable event id; derived from the content when omitted."
},
"url": {
"anyOf": [
{
"maxLength": 2000,
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"summary",
"start"
],
"type": "object"
},
"maxItems": 50,
"minItems": 1,
"type": "array"
},
"time_format": {
"default": "tzid",
"description": "tzid (default): zoned times as TZID=...; utc: every timed value converted to UTC.",
"pattern": "^(tzid|utc)$",
"type": "string"
},
"timezone": {
"anyOf": [
{
"maxLength": 64,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Default IANA time zone for events without one."
}
},
"required": [
"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
{
"properties": {
"example": {
"properties": {
"base64": {
"type": "string"
},
"bytes": {
"type": "integer"
},
"data_uri": {
"type": "string"
},
"event_count": {
"type": "integer"
},
"filename": {
"type": "string"
},
"ics": {
"type": "string"
},
"note": {
"type": "string"
},
"time_format": {
"type": "string"
},
"uids": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"ics",
"event_count",
"uids",
"bytes",
"base64",
"data_uri"
],
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}