Slack Schedule

Slack Schedule

Certified

Schedule a Slack message

Queues a message to post at a future time; cancellable with DeleteScheduled. Requires chat: write and a post-at timestamp in the future.

yaml
type: io.kestra.plugin.slack.app.chats.Schedule

Schedule a message

yaml
id: slack_schedule_message
namespace: company.team

tasks:
  - id: schedule_message
    type: io.kestra.plugin.slack.app.chats.Schedule
    token: "{{ secret('SLACK_TOKEN') }}"
    channel: "#general"
    messageText: "Scheduled reminder"
    postAt: "{{ now() | dateAdd(1, 'HOURS') }}"

Schedule a daily report

yaml
id: slack_daily_report
namespace: company.team

tasks:
  - id: schedule_report
    type: io.kestra.plugin.slack.app.chats.Schedule
    token: "{{ secret('SLACK_TOKEN') }}"
    channel: "#reports"
    postAt: "{{ now() | dateAdd(1, 'DAYS') | date('yyyy-MM-dd') }}T09:00:00Z"
    payload: |
      {
        "text": "Daily Report",
        "blocks": [
          {
            "type": "section",
            "text": {
              "type": "mrkdwn",
              "text": "*Daily Report* - Ready for review"
            }
          }
        ]
      }
Properties

Post time (Unix seconds)

Future time to post the message; the Instant is converted to epoch seconds for Slack.

Slack token

Channel to send message

Channel ID or name; can also be set inside the payload.

Message icon emoji

Emoji code (e.g., : wave: ) that overrides iconUrl.

Message icon URL

HTTPS image used as icon when iconEmoji is not provided.

Message Text or JSON String

The message content as a raw string. It can be plain text with markdown, or a JSON object. If not a valid JSON object, it is automatically wrapped in {"text": "..."}. This property is ignored if the payload property is set.

Slack message payload

Thread timestamp to reply to

Slack ts value for replying in a thread; must belong to the same channel.

Display username

Overrides the bot's default display name for this message.

Scheduled message ID

Post time (Unix seconds)