Implement a native message scheduling feature for Rocket.Chat to enhance global collaboration.
This project introduces a native message scheduling feature in Rocket.Chat, empowering users to schedule messages for future delivery — especially useful for global teams spread across multiple time zones.
This repository serves as both the final report of my Google Summer of Code 2025 project and a reference guide for future contributors.
Rocket.Chat users across different time zones often need to deliver messages at optimal times. This project implements a native message scheduling system that includes:
- A UI-integrated message scheduler
- A backend cron job to deliver messages at the scheduled time
- A management interface to view, edit, or cancel scheduled messages
- Thread support for scheduled messages, ensuring seamless integration with threaded conversations
- Message scheduling logic and UI implemented
- Cron job
sendScheduledMessages
reliably sends scheduled messages - Contextual bar UI for viewing, editing, and canceling scheduled messages
- A
ScheduledMessages
collection to persist scheduled messages
chat.scheduleMessage
: Schedule a messagechat.getScheduledMessages
: Retrieve scheduled messageschat.cancelScheduledMessage
: Cancel a scheduled messagechat.updateScheduledMessage
: Update a scheduled message
- Periodic job that handles message delivery with detailed logging
- Robust error handling across all scheduling and delivery operations
-
Scheduling Button (Clock Icon)
Located next to the send button in the message composer.
-
Schedule Composer Modal
Lets users pick a date and time for message delivery.
-
API Success Payload
Response payload fromchat.scheduleMessage
API.
-
Scheduled Messages User Menu Item
Allows users to access the Scheduled Messages page directly from the user dropdown menu. -
Scheduled Messages Page
Manage, edit, and cancel scheduled messages.
-
Delivered Message
The scheduled message appears in the chat at the scheduled time.
evaluation.demo2.mp4
- Full scheduling flow (UI + API + DB) implemented and merged upstream
- Cron job and error handling are functional
- Thread scheduling support successfully implemented
- UI/UX is consistent with Rocket.Chat design
- Image Attachments: Support for scheduling messages with image/file uploads
- UX polish and additional scheduling options
- Thread Scheduling: Enhance support to allow scheduled messages inside threads
- Media Attachments: Schedule messages with media (images, videos, files)
PR ID | Title |
---|---|
#36291 | feat: message scheduling |
#36513 | feat: add full scheduled messages management |
Huge thanks to my mentors for their support, timely reviews, and guidance throughout the program.
- Abhinav Kumar – GitHub | Rocket.Chat
- Ricardo Garim – GitHub | Rocket.Chat
- 📄 Project Proposal - The proposal that got me selected for GSoC 2025
- 💻 Rocket.Chat Repo
- 🌐 GSoC Project Page
Give it a ⭐, make a dev smile.
Want to discuss about GSoC / Rocket.Chat / Open-source ? Let's connect!
Student | Thotsem Jajo |
---|---|
Organization | Rocket.Chat |
Project | Message Scheduling 2025 |
GitHub | sem22-dev |
Thotsem Jajo | |
@Thotsem22 | |
thotsemj@gmail.com | |
Rocket.Chat | sem.jajo |
Thank you, Rocket.Chat and Google Summer of Code, for this amazing opportunity!