A modern, user-friendly React application for the CS Internship program, built to help applicants and members easily track and manage queue group meeting dates, announcements, and important events, with full Persian (Jalali) and Gregorian calendar support.
Managing weekly queue meetings and announcements can be messy, especially for a large and active program like CS Internship.
CS Queue Calendar solves this by providing:
- A centralized, interactive calendar for queue group meetings.
- Built-in automated announcements for queue admins.
- Seamless Persian/Gregorian date switching for better accessibility.
- One-click Google Calendar integration for desktop users.
- Quick links to all important program resources in one place.
- Interactive Calendar β Navigate events by week with clean UI.
- Persian Calendar Support β Full Jalali date support alongside Gregorian.
- Event Management β Add, edit, and view queue events easily.
- Automated Weekly Announcements β Generate and share pre-formatted meeting announcements.
- Google Calendar Integration (desktop only) β Add events to Google Calendar with all details filled in.
- Quick Access to External Resources β Floating buttons to Telegram, LinkedIn, X (Twitter), Virgool, GitHub, and more.
- Responsive Design β Optimized for desktop and mobile.
- Light/Dark Mode β Custom theming with theme toggle.
| Calendar View (Light) | Calendar View (Dark) |
|---|---|
![]() |
![]() |
- React β Frontend framework
- Ant Design (antd) β UI components
- Sass β Styling
- Day.js & Jalali-Moment β Date handling
- React Toastify β Notifications
- Clone the repository
git clone https://github.com/cs-internship/CS-Queue-Calendar.git
- Install dependencies
npm install
- Start the development server
npm start
- Build for production
npm run build
| Command | Description |
|---|---|
npm start |
Start the development server |
npm run build |
Build the app for production |
npm run deploy |
Deploy to GitHub Pages |
cs-queue-calendar/
β
βββ public/ # Static assets and HTML template
βββ src/ # Application source code
β βββ App.jsx # Main app component
β βββ index.jsx # Entry point
β βββ assets/
β β βββ fonts/ # Persian fonts (Vazirmatn)
β β βββ scss/ # SCSS stylesheets
β βββ components/
β β βββ AnnouncementModule.jsx # Generate weekly meeting announcements
β β βββ CalendarEventCreator.jsx # Add events to Google Calendar
β β βββ CSCalendar.jsx # Main calendar UI & logic
β β βββ FloatButtonSection.jsx # Theme toggle, announcements, quick links
β β βββ Footer.jsx # Footer
β β βββ Header.jsx # Header
β β βββ Toastify.jsx # Toast notifications
β β βββ useIsMobile.jsx # Mobile detection hook
β βββ constants/ # Static values
β β βββ events.js
β β βββ persianWeekDays.js
β β βββ startCalendarDate.js
β βββ store/
β β βββ ThemeContext.jsx # Theme context
β βββ utils/ # Helper functions
β βββ convertToPersianNumbers.js
β βββ createTds.js
β βββ formatPersianDate.js
βββ package.json
βββ README.md
Admins can select a week and instantly generate a formatted announcement message, ready to post in the queue group. Works for past, current, or future weeks.
Easily add any event to Google Calendar with the exact time, title, notes, and description pre-filled.
Quick floating buttons to:
- Queue group on Telegram
- Telegram feed channel on Telegram
- GitHub organization
- LinkedIn page
- X (Twitter) hashtags
- Virgool blog page
- Fork the repository on GitHub.
- Create a new branch for your feature or fix.
- Follow code style (React, JS, SCSS) and test both light/dark and mobile/desktop views.
- Write clear commit messages.
- Test locally before pushing.
- Open a pull request with a clear description.
This project is licensed under the MIT License.
Author: Ali Sadeghi
Organization: Developed for the CS Internship program

