app.chronosky.schedule.createPost

chronosky.app

{
  "id": "app.chronosky.schedule.createPost",
  "defs": {
    "main": {
      "type": "procedure",
      "input": {
        "schema": {
          "type": "object",
          "required": [
            "posts",
            "scheduledAt"
          ],
          "properties": {
            "posts": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "text"
                ],
                "properties": {
                  "text": {
                    "type": "string",
                    "maxLength": 3000,
                    "description": "Post text content",
                    "maxGraphemes": 300
                  },
                  "embed": {
                    "refs": [
                      "app.bsky.embed.images",
                      "app.bsky.embed.external",
                      "app.bsky.embed.record",
                      "app.bsky.embed.recordWithMedia"
                    ],
                    "type": "union",
                    "description": "Embedded content (images, external links, records)"
                  },
                  "langs": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "language"
                    },
                    "maxLength": 3,
                    "description": "Language codes (ISO 639-1)"
                  },
                  "facets": {
                    "type": "array",
                    "items": {
                      "ref": "app.bsky.richtext.facet",
                      "type": "ref"
                    },
                    "maxLength": 50,
                    "description": "Rich text facets (mentions, links, tags)"
                  },
                  "labels": {
                    "ref": "com.atproto.label.defs#selfLabels",
                    "type": "ref",
                    "description": "Self-applied content labels for content warnings (AT Protocol standard)."
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "datetime",
                    "maxLength": 100,
                    "description": "Post creation timestamp (optional)"
                  }
                }
              },
              "maxLength": 25,
              "minLength": 1,
              "description": "Array of posts to schedule (1 element = single post, multiple = thread)"
            },
            "scheduledAt": {
              "type": "string",
              "format": "datetime",
              "maxLength": 100,
              "description": "Scheduled publish time"
            },
            "parentPostId": {
              "type": "string",
              "maxLength": 100,
              "description": "Chronosky-internal scheduled post ID of the parent post (for scheduling threads or replies). Not an AT Protocol URI or Record Key."
            },
            "threadgateRules": {
              "type": "array",
              "items": {
                "refs": [
                  "app.bsky.feed.threadgate#mentionRule",
                  "app.bsky.feed.threadgate#followerRule",
                  "app.bsky.feed.threadgate#followingRule",
                  "app.bsky.feed.threadgate#listRule"
                ],
                "type": "union"
              },
              "maxLength": 5,
              "description": "Thread gate rules to control who can reply"
            },
            "disableQuotePosts": {
              "type": "boolean",
              "description": "Whether to disable quote posts"
            }
          }
        },
        "encoding": "application/json"
      },
      "output": {
        "schema": {
          "type": "object",
          "required": [
            "id",
            "scheduledAt"
          ],
          "properties": {
            "id": {
              "type": "string",
              "maxLength": 100,
              "description": "Chronosky schedule ID (parent post ID for threads)"
            },
            "postCount": {
              "type": "integer",
              "description": "Number of posts created (1 for single post, N for thread)"
            },
            "scheduledAt": {
              "type": "string",
              "format": "datetime",
              "maxLength": 100
            }
          }
        },
        "encoding": "application/json"
      },
      "description": "Schedule one or more posts for later publishing to Bluesky. Supports single posts, threads, and reply posts."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}

Validate Record

Validate a record against app.chronosky.schedule.createPost

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:bfjib7fy6dob3gyfssyfd4ry
CID
bafyreignzc2zjrgdv6ctk4p43xnqu6xewsowogueovb5flm5dmbdijljjq
Indexed At
2026-02-12 22:36 UTC
AT-URI
at://did:plc:bfjib7fy6dob3gyfssyfd4ry/com.atproto.lexicon.schema/app.chronosky.schedule.createPost

Referenced Schemas (10)

Lexicon Garden

@