Skip to content

feat: Add "Schedule for Later" message delivery #5356

Description

@sernst

Motivation

Asynchronous communication is fundamental to distributed teams and respects work-life balance across time zones. Many teams have members in different regions, and immediate message delivery can interrupt sleep, focus time, or off-hours for collaborators. Slack's "Schedule message" feature has become a standard expectation in team communication platforms, allowing users and agents to compose messages now and deliver them at a time that doesn't interrupt recipients.

Buzz currently lacks this capability, which means:

  • Users must manually send messages at specific times or interrupt teammates across time zones
  • Agents cannot respect timezone-aware delivery windows for automated messages
  • Teams lose the ability to queue communications for working hours without external workarounds

Proposed solution

Add a "Schedule for Later" feature that:

  1. Composer integration: Add a "Schedule" button or time-picker in the message composer (alongside "Send now") that lets users specify:

    • Date and time for delivery
    • Optional: recurring schedule or delivery window
    • Display selected delivery time near the send button
  2. Agent support: Allow agents to schedule messages via the CLI/API:

    • buzz messages send --channel <uuid> --scheduled-at <ISO8601-timestamp> --content "..."
    • Messages persist in the harness queue across agent restarts
  3. Queue and delivery:

    • Store scheduled messages durably (relay-backed or local)
    • Deliver at the specified time automatically
    • Show scheduled messages in a "Scheduled" view before delivery
    • Allow editing/cancellation of pending scheduled messages
  4. User experience:

    • Show clear indication in the channel when a message is scheduled vs. sent
    • Display delivery time in local timezone
    • Timezone-aware scheduling for teams across regions (stretch goal)

Alternatives considered

  • External scheduling via cron/Lambda: brittle, requires manual setup per team, no UX integration
  • Relay-side scheduling microservice: adds operational complexity; feature should live in the client for simplicity
  • Draft messages: solves the "compose later" problem but not "deliver later"

Additional context

  • Slack's Schedule Message docs
  • This mirrors a core feature in Discord, Teams, and other async-communication platforms
  • Agents benefit especially: can publish summaries, reminders, and updates outside human working hours
  • Duplicate check: None found in open issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions