s1.oddments.ai

https://s1.oddments.ai/v1/expand
down

Turn RFC 5545 RRULEs and cron expressions into exact UTC instants. IANA timezones and daylight saving are handled correctly. The two hard cases are flagged by name. A spring-forward time that never happens is flagged nonexistent. A fall-back time that happens twice is flagged ambiguous. Results are deterministic and reproducible. Every response reports the tzdata and library versions it used. Every response also carries an Ed25519-signed reproducibility receipt. The receipt binds the input hash, the output hash and the engine versions. WHAT YOU ARE NOT BUYING: secrecy. You can expand the rule yourself and check every instant we return. The fee buys current timezone data, the two daylight-saving edge cases handled rather than assumed, and a reproducible record of which versions produced the answer. WHAT THIS DOES NOT DO, stated up front. (1) It consults no calendar, holiday feed or exception list. It expands exactly the rule you send, so a cancellation you did not encode is invisible to it. (2) Timezone answers are only as current as the tzdata version reported in every response. A zone whose rules change after that release is computed on the old rules. (3) cron is the 5-field POSIX form only, as published in the request schema. No seconds field and no vendor extensions. (4) The signature proves origin and integrity, not correctness. (5) Rules are capped at 25 per call and 500 occurrences per rule. A request over either is refused with a 400 invalid_rule before any expansion happens. Free preview endpoint at /v1/preview.

44
reliability

Reliability & health

Uptime and response time from our own unpaid probes, plus the reliability score built from them.

Uptime

44.4% avg
0% 50% 100% Aug 12Aug 15Aug 17Aug 20

Response time

p50 960ms · p95 1079ms
0ms 500ms 1000ms Aug 12Aug 15Aug 17Aug 20
Data table
Reliability history per time bucket over the last 30 days (daily).
Bucket Uptime Probes Response time
8/12/2026, 12:00:00 AM 100% 1 846ms
8/13/2026, 12:00:00 AM 100% 1 988ms
8/14/2026, 12:00:00 AM 100% 1 881ms
8/15/2026, 12:00:00 AM 100% 1 943ms
8/16/2026, 12:00:00 AM 0% 1
8/17/2026, 12:00:00 AM 0% 1
8/18/2026, 12:00:00 AM 0% 1
8/19/2026, 12:00:00 AM 0% 1
8/20/2026, 12:00:00 AM 0% 1
44
Composite reliability — the weighted average of the dimensions below, on a 0–100 scale.
Availability
44

How often it was reachable when we probed it (weight 35%).

Latency
75

How quickly it answers when it is up — fast scores high (weight 20%).

Security
100

Whether it serves over working TLS / https (weight 15%).

Transparency
61

Whether the operator disclosed what it does — description, schema, identity (weight 15%).

Activity
9

Observed on-chain payments to this endpoint's wallet — transactions, volume, and distinct paying wallets over the last month (weight 15%; not yet measured when we have not seen its wallet settle).

Confidence 18% — how much probe evidence backs this score. A thin history is flagged, not hidden.

See the scoring methodology for exactly how each number is computed.

Payment

Currencies
USDC
Networks
base
Facilitator
unknown
SDK
unknown

Operator

Company
inferred — unknown
Jurisdiction
Registrar
Cloudflare, Inc
Domain registered
2026-08-05
Hosting network
Hosting country

Operator context is derived from public RDAP/TLS records and unverified. Company and country are only available for endpoints that publish them (an OV/EV TLS certificate or a non-redacted domain record); most endpoints are CDN-fronted and disclose neither.

On-chain activity (base)

8
payments (30d)
0.16
USD volume (30d)
2
paying wallets (30d)

Payments per day

last payment 8/15/2026
0 3 5 Aug 6Aug 11Aug 14Aug 15
Data table
Settled payments per day.
Day Payments Volume (USD) Paying wallets
8/6/2026 1 0.02 1
8/11/2026 4 0.08 1
8/13/2026 1 0.02 1
8/14/2026 1 0.02 1
8/15/2026 1 0.02 1

Only payments settled on chains and facilitators we index.

Response schema
{
  "properties": {
    "receipt": {
      "description": "Ed25519 reproducibility receipt over this exact request/response pair. Present on every response from both the paid and the free endpoint. Proves origin and integrity, not correctness. Verify with the public key at /.well-known/oddments-receipts.json and the script at /verify_receipt.py.",
      "properties": {
        "algorithm": {
          "description": "Ed25519",
          "type": "string"
        },
        "canonicalization": {
          "description": "the byte-exact rule used before signing",
          "type": "string"
        },
        "endpoint": {
          "description": "the path that produced the response",
          "type": "string"
        },
        "engine": {
          "description": "library and tzdata versions used, signed",
          "type": "object"
        },
        "input_sha256": {
          "description": "SHA-256 of the canonicalized request body",
          "type": "string"
        },
        "issued_at": {
          "description": "ISO-8601 UTC, signed",
          "type": "string"
        },
        "key_id": {
          "description": "first 16 hex chars of SHA-256(public_key_b64); identifies which signing key was used",
          "type": "string"
        },
        "output_sha256": {
          "description": "SHA-256 of the canonicalized response body with 'receipt' removed",
          "type": "string"
        },
        "price": {
          "description": "what was charged; 'free' on the preview endpoint",
          "type": "string"
        },
        "public_key_b64": {
          "description": "base64-encoded raw Ed25519 public key that verifies signature_b64. Not itself a signed field -- trust it only after checking it (or key_id) against the current or previous key published at /.well-known/oddments-receipts.json.",
          "type": "string"
        },
        "receipt_version": {
          "description": "currently 'oddments-receipt/1'",
          "type": "string"
        },
        "service": {
          "description": "the service name that issued this receipt, e.g. 'Recurrence Expander'",
          "type": "string"
        },
        "signature_b64": {
          "description": "base64-encoded Ed25519 signature over the canonical JSON of the fields named in signed_fields",
          "type": "string"
        },
        "signed_fields": {
          "description": "exactly which fields the signature covers",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "verify": {
          "description": "public key URL, verifier script URL, and what it does and does not prove",
          "type": "object"
        }
      },
      "required": [
        "receipt_version",
        "input_sha256",
        "output_sha256",
        "signature_b64",
        "signed_fields",
        "key_id",
        "algorithm"
      ],
      "type": "object"
    },
    "results": {
      "description": "one entry per input rule, in input order",
      "items": {
        "properties": {
          "anomalies": {
            "description": "the distinct occurrence flags seen across this rule's occurrences (nonexistent_local, ambiguous_local), sorted; empty if none",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "count": {
            "description": "number of occurrences returned for this rule",
            "type": "integer"
          },
          "crosses_dst_transition": {
            "description": "true if this rule's occurrences do not all share the same utc_offset, i.e. a DST transition falls within the expanded range",
            "type": "boolean"
          },
          "id": {
            "description": "echoed from the request",
            "type": "string"
          },
          "kind": {
            "description": "'cron' or 'rrule'",
            "type": "string"
          },
          "occurrences": {
            "description": "the expanded instants for this rule, in generation order, one per requested count",
            "items": {
              "properties": {
                "flags": {
                  "description": "e.g. nonexistent (spring forward), ambiguous (fall back)",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "is_dst": {
                  "description": "whether daylight saving was in effect at this occurrence",
                  "type": "boolean"
                },
                "local": {
                  "description": "ISO-8601 local wall time",
                  "type": "string"
                },
                "utc": {
                  "description": "exact UTC instant",
                  "type": "string"
                },
                "utc_offset": {
                  "description": "the UTC offset in effect at this occurrence, format +HH:MM or -HH:MM",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "tz": {
            "description": "the IANA zone this rule's occurrences were expanded in, echoed from the request",
            "type": "string"
          }
        },
        "type": "object"
      },
      "type": "array"
    },
    "total_occurrences": {
      "description": "sum of occurrence counts across all results in this response",
      "type": "integer"
    }
  },
  "required": [
    "results",
    "total_occurrences",
    "receipt"
  ],
  "type": "object"
}