{
  "x402Version": 2,
  "id": 4484,
  "slug": "4484",
  "resource": "https://schedule-tools.use.x402atlas.com/rrule-expand",
  "description": "RRULE recurrence expander — generate bounded RFC 5545 iCalendar occurrences in IANA timezones with windows, work limits, and daylight-saving (DST) policies.",
  "type": "http",
  "accepts": [
    {
      "scheme": "exact",
      "network": "eip155:8453",
      "payTo": "0x8C128f1Ee62Bb5e47867CfbAe2ad89be325Df1b2",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "amount": "5000",
      "maxTimeoutSeconds": 300
    },
    {
      "scheme": "exact",
      "network": "eip155:137",
      "payTo": "0x8C128f1Ee62Bb5e47867CfbAe2ad89be325Df1b2",
      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
      "amount": "5000",
      "maxTimeoutSeconds": 300
    },
    {
      "scheme": "exact",
      "network": "eip155:42161",
      "payTo": "0x8C128f1Ee62Bb5e47867CfbAe2ad89be325Df1b2",
      "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
      "amount": "5000",
      "maxTimeoutSeconds": 300
    }
  ],
  "outputSchema": {
    "bazaar": {
      "category": "calendar",
      "info": {
        "input": {
          "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"
        },
        "output": {
          "example": {
            "algorithm_version": "schedule-v1",
            "ambiguous_time": "reject",
            "dtstart_local": "1997-09-02T09:00:00",
            "go_toolchain_version": "go1.26.3",
            "iana_tzdata_version": "2026a",
            "limit": 8,
            "nonexistent_time": "reject",
            "normalized_rrule": "FREQ=WEEKLY;INTERVAL=1;COUNT=10;BYDAY=TU,TH;WKST=MO",
            "occurrence_count": 8,
            "occurrences": [
              {
                "local": {
                  "abbreviation": "EDT",
                  "local_time": "1997-09-02T09:00:00-04:00",
                  "offset_seconds": -14400,
                  "timezone": "America/New_York"
                },
                "utc": "1997-09-02T13:00:00Z"
              },
              {
                "local": {
                  "abbreviation": "EDT",
                  "local_time": "1997-09-04T09:00:00-04:00",
                  "offset_seconds": -14400,
                  "timezone": "America/New_York"
                },
                "utc": "1997-09-04T13:00:00Z"
              },
              {
                "local": {
                  "abbreviation": "EDT",
                  "local_time": "1997-09-09T09:00:00-04:00",
                  "offset_seconds": -14400,
                  "timezone": "America/New_York"
                },
                "utc": "1997-09-09T13:00:00Z"
              },
              {
                "local": {
                  "abbreviation": "EDT",
                  "local_time": "1997-09-11T09:00:00-04:00",
                  "offset_seconds": -14400,
                  "timezone": "America/New_York"
                },
                "utc": "1997-09-11T13:00:00Z"
              },
              {
                "local": {
                  "abbreviation": "EDT",
                  "local_time": "1997-09-16T09:00:00-04:00",
                  "offset_seconds": -14400,
                  "timezone": "America/New_York"
                },
                "utc": "1997-09-16T13:00:00Z"
              },
              {
                "local": {
                  "abbreviation": "EDT",
                  "local_time": "1997-09-18T09:00:00-04:00",
                  "offset_seconds": -14400,
                  "timezone": "America/New_York"
                },
                "utc": "1997-09-18T13:00:00Z"
              },
              {
                "local": {
                  "abbreviation": "EDT",
                  "local_time": "1997-09-23T09:00:00-04:00",
                  "offset_seconds": -14400,
                  "timezone": "America/New_York"
                },
                "utc": "1997-09-23T13:00:00Z"
              },
              {
                "local": {
                  "abbreviation": "EDT",
                  "local_time": "1997-09-25T09:00:00-04:00",
                  "offset_seconds": -14400,
                  "timezone": "America/New_York"
                },
                "utc": "1997-09-25T13:00:00Z"
              }
            ],
            "operation": "rrule-expand",
            "timezone": "America/New_York",
            "tzdata_source": "bridge-embedded",
            "warnings": [],
            "window_end": "1997-10-01T04:00:00Z",
            "window_start": "1997-09-02T13:00:00Z",
            "work": {
              "candidate_occurrences": 8,
              "combination_checks": 52,
              "periods_checked": 4
            }
          },
          "type": "json"
        }
      },
      "schema": {
        "$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": "Maximum requested result count",
                    "maximum": 100,
                    "minimum": 1,
                    "type": "integer"
                  },
                  "nonexistent_time": {
                    "description": "Applied DST-gap policy",
                    "enum": [
                      "reject",
                      "shift_forward"
                    ],
                    "type": "string"
                  },
                  "normalized_rrule": {
                    "description": "Canonical supported RRULE parts and defaults",
                    "type": "string"
                  },
                  "occurrence_count": {
                    "description": "Number of returned occurrences",
                    "maximum": 100,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "occurrences": {
                    "description": "Occurrences in ascending instant order; [] when none fall in the window",
                    "items": {
                      "additionalProperties": false,
                      "description": "One resolved recurrence occurrence",
                      "properties": {
                        "local": {
                          "additionalProperties": false,
                          "description": "Localized representation",
                          "properties": {
                            "abbreviation": {
                              "description": "Display-only abbreviation",
                              "type": "string"
                            },
                            "local_time": {
                              "description": "RFC3339 local form with numeric offset",
                              "format": "date-time",
                              "type": "string"
                            },
                            "offset_seconds": {
                              "description": "UTC offset seconds",
                              "maximum": 86400,
                              "minimum": -86400,
                              "type": "integer"
                            },
                            "timezone": {
                              "description": "IANA timezone",
                              "type": "string"
                            }
                          },
                          "required": [
                            "local_time",
                            "timezone",
                            "offset_seconds",
                            "abbreviation"
                          ],
                          "type": "object"
                        },
                        "utc": {
                          "description": "UTC instant",
                          "format": "date-time",
                          "type": "string"
                        }
                      },
                      "required": [
                        "utc",
                        "local"
                      ],
                      "type": "object"
                    },
                    "maxItems": 100,
                    "type": "array"
                  },
                  "operation": {
                    "const": "rrule-expand",
                    "description": "Stable route operation",
                    "type": "string"
                  },
                  "timezone": {
                    "description": "IANA timezone used for recurrence resolution",
                    "type": "string"
                  },
                  "tzdata_source": {
                    "const": "bridge-embedded",
                    "description": "Timezone data source",
                    "type": "string"
                  },
                  "warnings": {
                    "description": "Distinct DST gap shift warnings; [] when no shift occurred",
                    "items": {
                      "description": "Warning",
                      "type": "string"
                    },
                    "maxItems": 100,
                    "type": "array"
                  },
                  "window_end": {
                    "description": "Normalized exclusive UTC window end",
                    "format": "date-time",
                    "type": "string"
                  },
                  "window_start": {
                    "description": "Normalized inclusive UTC window start",
                    "format": "date-time",
                    "type": "string"
                  },
                  "work": {
                    "additionalProperties": false,
                    "description": "Cooperative bounded-iteration counters",
                    "properties": {
                      "candidate_occurrences": {
                        "description": "Rule occurrences emitted before window filtering",
                        "maximum": 100000,
                        "minimum": 0,
                        "type": "integer"
                      },
                      "combination_checks": {
                        "description": "Rule-period and BY-part checks",
                        "maximum": 1000000,
                        "minimum": 0,
                        "type": "integer"
                      },
                      "periods_checked": {
                        "description": "Frequency periods visited",
                        "minimum": 0,
                        "type": "integer"
                      }
                    },
                    "required": [
                      "candidate_occurrences",
                      "combination_checks",
                      "periods_checked"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "operation",
                  "algorithm_version",
                  "tzdata_source",
                  "go_toolchain_version",
                  "iana_tzdata_version",
                  "dtstart_local",
                  "timezone",
                  "normalized_rrule",
                  "window_start",
                  "window_end",
                  "limit",
                  "ambiguous_time",
                  "nonexistent_time",
                  "occurrences",
                  "occurrence_count",
                  "work",
                  "warnings"
                ],
                "type": "object"
              },
              "type": {
                "type": "string"
              }
            },
            "required": [
              "type"
            ],
            "type": "object"
          }
        },
        "required": [
          "input"
        ],
        "type": "object"
      },
      "tags": [
        "rrule",
        "recurrence-expansion",
        "rfc5545",
        "iana-timezone",
        "dst"
      ]
    }
  },
  "tags": [
    "bazaar"
  ],
  "sourceHost": "schedule-tools.use.x402atlas.com",
  "lastUpdated": "2026-09-15T06:32:36.109Z",
  "quality": {
    "calls30d": 2,
    "uniquePayers30d": 1,
    "lastCalledAt": "2026-09-15T06:32:35.97Z"
  },
  "liveness": {},
  "verified": false,
  "featured": false,
  "provider": {
    "host": "schedule-tools.use.x402atlas.com",
    "manifest_name": "schedule-tools.use.x402atlas.com",
    "source": "cdp-mirror",
    "source_manifest_url": "https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources",
    "submitted_at": "2026-09-18T22:00:31.484Z"
  }
}