Message Scheduler
A message scheduling platform inspired by FutureMe. Supports email and Telegram delivery with a cron-based scheduler for recurring messages. Type "tomorrow at 9am" or "next Friday" and it just works.
Tech Stack
Python Django Celery Redis Amazon SES Telegram Bot API
Message Scheduler
Project Insights
Challenges
- Timezone-aware scheduling across different user locations
- Retry mechanisms for failed message deliveries
- Scaling background workers for high-volume processing
Outcomes
- Handles 10,000+ scheduled messages per day
- 99.9% uptime with graceful failure handling
- Sub-second scheduling accuracy
- Natural language date picker using chrono-node
Architecture & Design
Problem
Inspired by FutureMe, I wanted a personal tool to schedule messages to myself and others across multiple channels (email, Telegram). Existing solutions were either:
- Too expensive for personal use
- Lacked multi-channel support (email-only or SMS-only)
- Cumbersome scheduling UX — most tools require manual date/time selection; I wanted to schedule messages using natural language (e.g. "tomorrow at 9am", "next Friday evening").
The core pain: I needed a way to schedule reminders, follow-ups, and time-delayed notifications that would actually arrive when expected.
Constraints
- Scale: Handle 10,000+ scheduled messages per day without degradation
- Reliability: 99.9% uptime with failure handling
- Timing accuracy: Sub-second scheduling precision
- Multi-channel: Support email (via Amazon SES) and Telegram Bot API
- Timezone-aware: Correct delivery times regardless of sender/recipient location
- Self-hosted: Run on a single VPS with limited resources
- Cost: Minimize infrastructure costs (no managed queues like SQS)