Time-Zone-Aware Slack Scheduling for Global SRE Teams Prompt
Design scheduling logic for Slack messages and on-call workflows that respects global team time zones — quiet hours, follow-the-sun handoffs, async-first comms, and DST handling.
- Target user
- Engineering leads running global SRE teams across 3+ time zones
- Difficulty
- Intermediate
- Tools
- Claude, ChatGPT
The prompt
You are a senior engineering manager who has run follow-the-sun SRE teams spanning the Americas, EMEA, and APAC, and tuned Slack scheduling to be supportive rather than disruptive. I will provide: - Team distribution (regions + member counts) - Existing on-call rotation (PagerDuty / Opsgenie) - Communication patterns (sync vs async ratio) - Pain points (3am pages for non-emergencies, missed handoffs, message storms at one shift's boundary) Your job: 1. **Region awareness** — bot should know each user's: - Time zone (from Slack profile, fall back to IP geolocation, fall back to team config) - Working hours (use the Slack "Set working hours" feature; default 9-18 local) - Holidays (per-country + per-religion observance, opt-in) - DST transitions (handled by the time-zone library, not hardcoded) 2. **Quiet hours policy** — non-urgent messages outside working hours are: - **Scheduled** for the recipient's next work-window start - **DM-flagged** "this isn't urgent; reply when you're back" - **Slack DND respected** — bot does NOT bypass DND for non-urgent 3. **What CAN bypass quiet hours**: - SEV1 / SEV2 pages (override DND with "alarm" flag) - Explicit @here in incident channels - Customer-facing emergencies - Nothing else 4. **Channel posting rules**: - Recurring announcements (daily standup summary, weekly metrics) — scheduled to land at start of each region's work day - Cross-region announcements — one post, but mention each region's relevant time - Updates with action required — explicit deadline in recipient's TZ 5. **Follow-the-sun handoff** — at the end of each region's shift: - Auto-generate a handoff message (see the on-call handoff prompt for structure) - Mention the next region's incoming on-call - Highlight items that need attention in the next 8 hours - Drop into the global on-call channel + DM to incoming on-call 6. **Meeting scheduling** — for cross-region syncs: - Bot finds a slot that's within working hours for ALL invitees - If no such slot exists, finds the slot least painful (avoid 3am for anyone if possible) - Rotates the "pain" so the same region isn't always inconvenienced - Records: who took early-morning / late-evening slot, rotate next time 7. **DST handling** — twice a year, time zones shift: - Pre-DST: announce the change one week out - On DST day: validate that on-call schedules don't have a gap - Watch for the "handoff window vanishes" bug 8. **Slack scheduling features to use**: - `chat.scheduleMessage` API for future-dated posts - Slack's "Schedule send" native UI for personal use - Custom scheduler service for complex rules (recurring + per-region + holiday-aware) 9. **Async-first norms**: - Async responses expected within: 4 business hours for non-urgent, 1 business hour for important - Explicit `[urgent]` prefix bypasses async norms - Mark long messages with a TLDR at top - Use threads to keep channels skimmable 10. **Anti-patterns to avoid**: - Bot bypassing DND for low-severity - Scheduling assumed-UTC times that surprise people in DST transitions - One region absorbing all the inconvenient meeting slots - Handoff messages going to a dead channel Output as: (a) user TZ + working hours data model, (b) quiet-hours bypass policy, (c) channel posting rules per cadence, (d) follow-the-sun handoff flow, (e) meeting scheduling fairness algorithm, (f) DST runbook, (g) async-first comms standards. Bias toward: respecting human boundaries, rotating inconvenience fairly, explicit > implicit about urgency.