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
sendScheduledMessagesreliably sends scheduled messages - Contextual bar UI for viewing, editing, and canceling scheduled messages
- A
ScheduledMessagescollection 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.scheduleMessageAPI.

-
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 | |
| [email protected] | |
| Rocket.Chat | sem.jajo |
Thank you, Rocket.Chat and Google Summer of Code, for this amazing opportunity!
