---
title: "Update scheduled message"
method: PATCH
path: "/users/@me/scheduled-messages/{scheduled_message_id}"
tags: ["Users"]
---

# Update scheduled message

`PATCH /users/@me/scheduled-messages/{scheduled_message_id}`

Updates an existing scheduled message before it is sent. Can modify message content, scheduled time, and timezone. Returns updated scheduled message details.

## Path parameters

- `scheduled_message_id` string, required

## Request body

- ScheduledMessageRequestSchema
  - `content` string — The message content. Non-premium users can send up to 2000 characters; premium users, bots, and webhooks can send up to 4000 characters.
  - `embeds` RichEmbedRequest[] — Array of embed objects to include in the message
    - `url` string, nullable — URL of the embed
    - `title` string, nullable — Title of the embed (0-256 characters)
    - `color` integer, nullable — Color code of the embed (hex integer)
    - `timestamp` union — ISO8601 timestamp for the embed
      - string
      - integer
    - `description` string, nullable — Description of the embed (1-4096 characters)
    - `author` RichEmbedAuthorRequest, nullable
      - `name` string, required — Name of the embed author
      - `url` string, nullable — URL to link from the author name
      - `icon_url` string, nullable — URL of the author icon
    - `image` RichEmbedMediaRequest
      - `url` string, required — URL of the media (image, video, etc.)
      - `description` string, nullable — Alt text description of the media
    - `thumbnail` RichEmbedMediaRequest
      - `url` string, required — URL of the media (image, video, etc.)
      - `description` string, nullable — Alt text description of the media
    - `footer` RichEmbedFooterRequest, nullable
      - `text` string, required — Footer text (1-2048 characters)
      - `icon_url` string, nullable — URL of the footer icon
    - `fields` object[], nullable — Array of field objects (max 25)
      - `name` string, required — Name of the field
      - `value` string, required — Value of the field (0-1024 characters)
      - `inline` boolean — Whether the field should display inline
  - `attachments` union[] — Array of attachment objects
    - union
      - ClientUploadedAttachmentRequest
        - `title` string, nullable — A title for the attachment (1-1024 characters)
        - `description` string, nullable — An alt text description of the attachment (1-4096 characters)
        - `flags` integer — Attachment flags
        - `duration` integer
        - `waveform` string, nullable — Base64 encoded audio waveform data
        - `id` integer, required
        - `filename` string, required — The name of the file being uploaded
        - `upload_filename` string, required — Temporary upload key returned by the attachment upload endpoint
        - `file_size` integer, required
        - `content_type` string, required — MIME type of the uploaded file
      - ClientAttachmentRequest
        - `title` string, nullable — A title for the attachment (1-1024 characters)
        - `description` string, nullable — An alt text description of the attachment (1-4096 characters)
        - `flags` integer — Attachment flags
        - `duration` integer
        - `waveform` string, nullable — Base64 encoded audio waveform data
        - `id` integer, required
        - `filename` string, required — The name of the file being uploaded
        - `content_type` string — Optional MIME type for the uploaded file
  - `message_reference` MessageReferenceRequest
    - `message_id` string, snowflake, required
    - `channel_id` string, snowflake
    - `guild_id` string, snowflake
    - `type` 0 | 1 — The type of message reference
    - `attachment_ids` SnowflakeType[] — Optional attachment IDs to include when forwarding only selected media
    - `embed_indices` Int32Type[] — Optional embed indices to include when forwarding only selected media
  - `allowed_mentions` AllowedMentionsRequest
    - `parse` string[] — Types of mentions to parse from content
    - `users` SnowflakeType[] — Array of user IDs to mention (max 100)
    - `roles` SnowflakeType[] — Array of role IDs to mention (max 100)
    - `replied_user` boolean — Whether to mention the author of the replied message
  - `flags` integer — Message flags bitfield
  - `nonce` string — Client-generated identifier for the message
  - `favorite_meme_id` string, snowflake
  - `sticker_ids` SnowflakeType[], nullable — Array of sticker IDs to include (max 3)
  - `tts` boolean — Whether this is a text-to-speech message
  - `scheduled_local_at` string, required — ISO 8601 timestamp expressed in the user local timezone for when the message should be delivered
  - `timezone` string, required — IANA timezone identifier the schedule_local_at value is anchored to

## Response `200`

Success

- ScheduledMessageResponseSchema
  - `id` string, required — The unique identifier for this scheduled message
  - `channel_id` string, required — The ID of the channel this message will be sent to
  - `scheduled_at` string, required — The ISO 8601 UTC timestamp when the message is scheduled to be sent
  - `scheduled_local_at` string, required — The ISO 8601 timestamp in the user local timezone
  - `timezone` string, required — The IANA timezone identifier used for scheduling
  - `status` 'pending' | 'invalid' | 'scheduled' | 'sent' | 'failed' | 'cancelled', required — The current status of the scheduled message
  - `status_reason` string, nullable, required — A human-readable reason for the current status, if applicable
  - `payload` object, required — The message content and metadata to be sent
    - `content` string, nullable — The text content of the scheduled message
    - `tts` boolean — Whether this is a text-to-speech message
    - `embeds` MessageEmbedResponse[] — Array of embed objects attached to the message
      - `type` string, required — The type of embed (e.g., rich, image, video, gifv, article, link)
      - `url` string, uri, nullable — The URL of the embed
      - `title` string, nullable — The title of the embed
      - `color` integer
      - `timestamp` string, date-time, nullable — The ISO 8601 timestamp of the embed content
      - `description` string, nullable — The description of the embed
      - `author` EmbedAuthorResponse
        - `name` string, required — The name of the author
        - `url` string, uri, nullable — The URL of the author
        - `icon_url` string, uri, nullable — The URL of the author icon
        - `proxy_icon_url` string, uri, nullable — The proxied URL of the author icon
      - `image` EmbedMediaResponse
        - `url` string, required — The URL of the media
        - `proxy_url` string, uri, nullable — The proxied URL of the media
        - `content_type` string, nullable — The MIME type of the media
        - `content_hash` string, nullable — The hash of the media content
        - `width` integer
        - `height` integer
        - `description` string, nullable — The description of the media
        - `placeholder` string, nullable — The base64 encoded placeholder image for lazy loading
        - `duration` integer
        - `flags` integer, required — The bitwise flags for this media
      - `thumbnail` EmbedMediaResponse
        - `url` string, required — The URL of the media
        - `proxy_url` string, uri, nullable — The proxied URL of the media
        - `content_type` string, nullable — The MIME type of the media
        - `content_hash` string, nullable — The hash of the media content
        - `width` integer
        - `height` integer
        - `description` string, nullable — The description of the media
        - `placeholder` string, nullable — The base64 encoded placeholder image for lazy loading
        - `duration` integer
        - `flags` integer, required — The bitwise flags for this media
      - `footer` EmbedFooterResponse
        - `text` string, required — The footer text
        - `icon_url` string, uri, nullable — The URL of the footer icon
        - `proxy_icon_url` string, uri, nullable — The proxied URL of the footer icon
      - `fields` EmbedFieldResponse[], nullable — The fields of the embed
        - `name` string, required — The name of the field
        - `value` string, required — The value of the field
        - `inline` boolean, required — Whether the field should be displayed inline
      - `provider` EmbedAuthorResponse
        - `name` string, required — The name of the author
        - `url` string, uri, nullable — The URL of the author
        - `icon_url` string, uri, nullable — The URL of the author icon
        - `proxy_icon_url` string, uri, nullable — The proxied URL of the author icon
      - `video` EmbedMediaResponse
        - `url` string, required — The URL of the media
        - `proxy_url` string, uri, nullable — The proxied URL of the media
        - `content_type` string, nullable — The MIME type of the media
        - `content_hash` string, nullable — The hash of the media content
        - `width` integer
        - `height` integer
        - `description` string, nullable — The description of the media
        - `placeholder` string, nullable — The base64 encoded placeholder image for lazy loading
        - `duration` integer
        - `flags` integer, required — The bitwise flags for this media
      - `audio` EmbedMediaResponse
        - `url` string, required — The URL of the media
        - `proxy_url` string, uri, nullable — The proxied URL of the media
        - `content_type` string, nullable — The MIME type of the media
        - `content_hash` string, nullable — The hash of the media content
        - `width` integer
        - `height` integer
        - `description` string, nullable — The description of the media
        - `placeholder` string, nullable — The base64 encoded placeholder image for lazy loading
        - `duration` integer
        - `flags` integer, required — The bitwise flags for this media
      - `html` string, nullable — Sanitized oEmbed HTML for trusted specialized embed renderers
      - `html_width` integer
      - `html_height` integer
      - `nsfw` boolean, nullable — Whether the embed is flagged as NSFW
      - `children` MessageEmbedChildResponse[], nullable — Internal nested embeds generated by unfurlers
        - `type` string, required — The type of embed (e.g., rich, image, video, gifv, article, link)
        - `url` string, uri, nullable — The URL of the embed
        - `title` string, nullable — The title of the embed
        - `color` integer
        - `timestamp` string, date-time, nullable — The ISO 8601 timestamp of the embed content
        - `description` string, nullable — The description of the embed
        - `author` EmbedAuthorResponse
          - `name` string, required — The name of the author
          - `url` string, uri, nullable — The URL of the author
          - `icon_url` string, uri, nullable — The URL of the author icon
          - `proxy_icon_url` string, uri, nullable — The proxied URL of the author icon
        - `image` EmbedMediaResponse
          - `url` string, required — The URL of the media
          - `proxy_url` string, uri, nullable — The proxied URL of the media
          - `content_type` string, nullable — The MIME type of the media
          - `content_hash` string, nullable — The hash of the media content
          - `width` integer
          - `height` integer
          - `description` string, nullable — The description of the media
          - `placeholder` string, nullable — The base64 encoded placeholder image for lazy loading
          - `duration` integer
          - `flags` integer, required — The bitwise flags for this media
        - `thumbnail` EmbedMediaResponse
          - `url` string, required — The URL of the media
          - `proxy_url` string, uri, nullable — The proxied URL of the media
          - `content_type` string, nullable — The MIME type of the media
          - `content_hash` string, nullable — The hash of the media content
          - `width` integer
          - `height` integer
          - `description` string, nullable — The description of the media
          - `placeholder` string, nullable — The base64 encoded placeholder image for lazy loading
          - `duration` integer
          - `flags` integer, required — The bitwise flags for this media
        - `footer` EmbedFooterResponse
          - `text` string, required — The footer text
          - `icon_url` string, uri, nullable — The URL of the footer icon
          - `proxy_icon_url` string, uri, nullable — The proxied URL of the footer icon
        - `fields` EmbedFieldResponse[], nullable — The fields of the embed
          - `name` string, required — The name of the field
          - `value` string, required — The value of the field
          - `inline` boolean, required — Whether the field should be displayed inline
        - `provider` EmbedAuthorResponse
          - `name` string, required — The name of the author
          - `url` string, uri, nullable — The URL of the author
          - `icon_url` string, uri, nullable — The URL of the author icon
          - `proxy_icon_url` string, uri, nullable — The proxied URL of the author icon
        - `video` EmbedMediaResponse
          - `url` string, required — The URL of the media
          - `proxy_url` string, uri, nullable — The proxied URL of the media
          - `content_type` string, nullable — The MIME type of the media
          - `content_hash` string, nullable — The hash of the media content
          - `width` integer
          - `height` integer
          - `description` string, nullable — The description of the media
          - `placeholder` string, nullable — The base64 encoded placeholder image for lazy loading
          - `duration` integer
          - `flags` integer, required — The bitwise flags for this media
        - `audio` EmbedMediaResponse
          - `url` string, required — The URL of the media
          - `proxy_url` string, uri, nullable — The proxied URL of the media
          - `content_type` string, nullable — The MIME type of the media
          - `content_hash` string, nullable — The hash of the media content
          - `width` integer
          - `height` integer
          - `description` string, nullable — The description of the media
          - `placeholder` string, nullable — The base64 encoded placeholder image for lazy loading
          - `duration` integer
          - `flags` integer, required — The bitwise flags for this media
        - `html` string, nullable — Sanitized oEmbed HTML for trusted specialized embed renderers
        - `html_width` integer
        - `html_height` integer
        - `nsfw` boolean, nullable — Whether the embed is flagged as NSFW
    - `attachments` MessageAttachmentResponse[] — Array of attachment objects for the message
      - `id` string, required — The unique identifier for this attachment
      - `filename` string, required — The name of the attached file
      - `title` string, nullable — The title of the attachment
      - `description` string, nullable — The description of the attachment
      - `content_type` string, nullable — The MIME type of the attachment
      - `content_hash` string, nullable — The hash of the attachment content
      - `size` integer, required — The size of the attachment in bytes
      - `url` string, nullable — The URL of the attachment
      - `proxy_url` string, nullable — The proxied URL of the attachment
      - `width` integer
      - `height` integer
      - `placeholder` string, nullable — The base64 encoded placeholder image for lazy loading
      - `flags` integer, required — Attachment flags
      - `nsfw` boolean, nullable — Whether the attachment is flagged as NSFW
      - `duration` integer
      - `waveform` string, nullable — The base64 encoded audio waveform data
      - `expires_at` string, nullable — The ISO 8601 timestamp when the attachment URL expires
      - `expired` boolean, nullable — Whether the attachment URL has expired
    - `stickers` MessageStickerResponse[] — Array of sticker objects attached to the message
      - `id` string, required — The unique identifier of the sticker
      - `name` string, required — The name of the sticker
      - `animated` boolean, required — Whether the sticker is animated
      - `nsfw` boolean — Whether this sticker is classified as NSFW
    - `sticker_ids` SnowflakeType[] — Array of sticker IDs to include in the message
    - `allowed_mentions` object — Controls which mentions trigger notifications
      - `parse` string[] — Types of mentions to parse from content
      - `users` SnowflakeType[] — Array of user IDs to mention
      - `roles` SnowflakeType[] — Array of role IDs to mention
      - `replied_user` boolean — Whether to mention the author of the replied message
    - `message_reference` object — Reference to another message (for replies or forwards)
      - `message_id` string, required — ID of the message being referenced
      - `channel_id` string, snowflake
      - `guild_id` string, snowflake
      - `type` 0 | 1 — The type of message reference
    - `flags` integer — Message flags bitfield
    - `nonce` string — Client-generated identifier for the message
    - `favorite_meme_id` string, snowflake
  - `created_at` string, required — The ISO 8601 timestamp when this scheduled message was created
  - `invalidated_at` string, nullable, required — The ISO 8601 timestamp when the message was marked invalid

## Other responses

- `400` — Bad Request - The request was malformed or contained invalid data
- `401` — Unauthorized - Authentication is required or the token is invalid
- `403` — Forbidden - You do not have permission to perform this action
- `429` — Too Many Requests - You are being rate limited
- `500` — Internal Server Error - An unexpected error occurred

---

[API](https://skmtc.dev/fluxer/apis/fluxer-api.md) · [All operations](https://skmtc.dev/fluxer/apis/fluxer-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/fluxer/fluxer-api/revisions/d9c706133cc5/schema)
