ToolAssay

RRULE recurrence expander — generate bounded RFC 5545 iCalendar occurrences in I

RRULE recurrence expander — generate bounded RFC 5545 iCalendar occurrences in IANA timezones with windows, work limits, and daylight-saving (DST) policies.

Answeringour last check, 2026-09-24
1 of 1checks answered this week
603 msmedian answer time
$0.005listed price per call
$0.005price it asked us

Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.

Endpoint

POST https://schedule-tools.use.x402atlas.com/rrule-expand

CategoryEverything else
Provider hostschedule-tools.use.x402atlas.com
Networkseip155:137, eip155:42161, eip155:8453
Payment schemesexact
Self-reported calls, 30 days2 from 1 payers (the provider's figure, not ours)

Our checks, last 30 days

DayResultHTTPAskedTime
2026-09-24 valid payment request 402$0.005 603 ms

Example input (from the provider)

{
  "body": {
    "ambiguous_time": "reject",
    "dtstart_local": "1997-09-02T09:00:00",
    "limit": 8,
    "nonexistent_time": "reject",
    "rrule": "FREQ=WEEKLY;COUNT=10;BYDAY=TU,TH",
    "timezone": "America/New_York",
    "window_end": "1997-10-01T00:00:00-04:00",
    "window_start": "1997-09-02T09:00:00-04:00"
  },
  "bodyType": "json",
  "method": "POST",
  "type": "http"
}

Promised output schema (from the provider)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "body": {
          "additionalProperties": false,
          "properties": {
            "ambiguous_time": {
              "description": "Policy for repeated civil occurrences",
              "enum": [
                "earlier",
                "later",
                "reject"
              ],
              "type": "string"
            },
            "dtstart_local": {
              "description": "Civil DTSTART in YYYY-MM-DDTHH:MM:SS",
              "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$",
              "type": "string"
            },
            "limit": {
              "description": "Maximum occurrences to return",
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            },
            "nonexistent_time": {
              "description": "Policy for skipped civil occurrences",
              "enum": [
                "reject",
                "shift_forward"
              ],
              "type": "string"
            },
            "rrule": {
              "description": "One RFC5545 RRULE using the documented bounded V1 subset",
              "maxLength": 2048,
              "minLength": 10,
              "type": "string"
            },
            "timezone": {
              "description": "UTC or IANA area/location name",
              "maxLength": 128,
              "minLength": 3,
              "type": "string"
            },
            "window_end": {
              "description": "Exclusive RFC3339 whole-second window end within the five- and ten-year ceilings",
              "format": "date-time",
              "type": "string"
            },
            "window_start": {
              "description": "Inclusive RFC3339 whole-second window start at or after DTSTART",
              "format": "date-time",
              "type": "string"
            }
          },
          "required": [
            "dtstart_local",
            "timezone",
            "rrule",
            "window_start",
            "window_end",
            "limit",
            "ambiguous_time",
            "nonexistent_time"
          ],
          "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": {
      "properties": {
        "example": {
          "additionalProperties": false,
          "properties": {
            "_atlas": {
              "additionalProperties": false,
              "description": "Atlas documentation and related-route metadata added after deployment",
              "properties": {
                "docs": {
                  "description": "Documentation URL for this bridge",
                  "format": "uri",
                  "maxLength": 512,
                  "type": "string"
                },
                "related": {
                  "description": "Bounded related Atlas routes",
                  "items": {
                    "additionalProperties": false,
                    "description": "One related Atlas route",
                    "properties": {
                      "bridge": {
                        "description": "Related bridge name",
                        "maxLength": 64,
                        "type": "string"
                      },
                      "docs": {
                        "description": "Related bridge documentation URL",
                        "format": "uri",
                        "maxLength": 512,
                        "type": "string"
                      },
                      "summary": {
                        "description": "Short capability summary",
                        "maxLength": 256,
                        "type": "string"
                      },
                      "url": {
                        "description": "Related route URL",
                        "format": "uri",
                        "maxLength": 512,
                        "type": "string"
                      }
                    },
                    "required": [
                      "bridge",
                      "url",
                      "docs",
                      "summary"
                    ],
                    "type": "object"
                  },
                  "maxItems": 3,
                  "type": "array"
                }
              },
              "required": [
                "docs"
              ],
              "type": "object"
            },
            "algorithm_version": {
              "const": "schedule-v1",
              "description": "Pinned RFC subset and timezone-resolution contract",
              "type": "string"
            },
            "ambiguous_time": {
              "description": "Applied DST-fold policy",
              "enum": [
                "earlier",
                "later",
                "reject"
              ],
              "type": "string"
            },
            "dtstart_local": {
              "description": "Civil DTSTART anchor",
              "type": "string"
            },
            "go_toolchain_version": {
              "const": "go1.26.3",
              "description": "Reviewed Go toolchain",
              "type": "string"
            },
            "iana_tzdata_version": {
              "const": "2026a",
              "description": "Reviewed IANA timezone release",
              "type": "string"
            },
            "limit": {
              "description":

This page as JSON