{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/pingfyr-com/json-schema/pingfyr-com-post-api-remind-request-schema.json",
  "title": "PostApiRemindRequest",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_ae-authored/pingfyr-com-openapi-generated.yml#/components/schemas/PostApiRemindRequest",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "Max 200 chars."
    },
    "recipients": {
      "type": "array",
      "description": "Array of delivery addresses. Per-plan recipient cap applies."
    },
    "fire_at": {
      "type": "string",
      "description": "ISO 8601 datetime, must be in the future."
    },
    "channel": {
      "type": "string",
      "description": "\"email\" (default), \"webhook\", \"slack\", \"discord\", \"telegram\", \"openclaw\", or \"google_calendar\"."
    },
    "body": {
      "type": "string",
      "description": "Max 2000 chars."
    },
    "repeat": {
      "type": "string",
      "description": "\"daily\", \"weekly\", \"monthly\", or \"custom\"."
    },
    "cron_expression": {
      "type": "string",
      "description": "Required when repeat is \"custom\". Cron expression. Max 100 chars."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone (default: UTC)."
    },
    "metadata": {
      "type": "object",
      "description": "Arbitrary JSON object. Max 10 KB when serialized."
    }
  },
  "required": [
    "title",
    "recipients",
    "fire_at"
  ]
}