Process Scheduler
An inbuilt tool that allows users to automate and manage processes by defining when and how often they should run. It supports flexible recurrence patterns and integrates with calendars to ensure that the processes are mindful of the holidays and business off days

My Role:
Duration:
1.5 Months
Team:
Tools Used:
What we achieved
How system used to work
All processes were scheduled directly within SQL Server Management Studio (SSMS) by the technical team. Monitoring and tracking of these jobs were also handled within SSMS, making the entire workflow dependent on technical expertise and limited to backend access

Addressing the problem
Heavy SSMS dependency for scheduling, and manual adjustments for holidays and business off days
The existing system presented multiple challenges that made scheduling and monitoring processes inefficient, highlighting gaps in flexibility and ease of use
Identifying the core needs
Enable users to schedule processes without manual adjustments for business days and holidays
Provide real-time visibility into process progress, and access to detailed logs for troubleshooting
Moving away from SSMS
With the system transitioning to a service-based architecture, processes are now defined within individual services. From the UI, users can simply select a process, configure its schedule, track progress of individual processes and examine logs once complete
Designing the scheduling experience
Approach 1 - Using data tables to setup schedules
We explored a grid layout where each row is a calendar, allowing events with exclusion dates for holidays or non-business days
Easy to understand for existing users since it follows a familiar pattern
No clear view of time and patterns, making schedules harder to understand at a glance
Difficult to spot overlaps or conflicts between processes
Not a widely used pattern for process scheduling, so it may feel unintuitive to new users
Approach 2 - Adopting a Calendar-First experience as a scheduling layer
In this approach, a calendar-based interface similar to tools like Google Calendar and Outlook is used to create schedules, which are then selected while setting up a process, without any tracking or status visibility

Simpler and faster to implement with lower complexity
Requires a two-step flow, making scheduling less efficient
No visibility into process status within the calendar
Breaks context by separating scheduling and monitoring
Approach 3: Unified scheduling & tracking experience
The calendar is designed as a single interface where users can create processes, set schedules, and track real-time statuses, bringing everything into one place

Enables users to schedule processes directly within the calendar, reducing steps and effort
Provides real-time visibility of process status in the same view
Allows better understanding of overlaps, timelines, and overall system activity
More complex to design and implement, requiring additional time and effort
Finalizing the approach
We chose Approach 3 as it brings scheduling and tracking into a single, intuitive experience, reducing user effort and context switching while providing better visibility and control. The system includes default system Calendar and user-created calendars, where all the processes are created in former, and latter ones are used to manage overlaps
Setting up a schedule in a default calendar
Creating a schedule is a simple three-step process - selecting the calendar and process type, choosing overlapping calendars to skip conflicts, and defining timing and recurrence


Event setup in user-created calendars
User-created calendars are typically used to define exceptions, such as business off days or maintenance windows - where processes should not run. Events in these calendars are managed as all-day entries, ensuring processes automatically skip them when overlaps occur

When events in user-created calendars are updated or deleted, users are given the option to apply those changes to affected schedules

Visualizing overlapping processes
Using the FullCalendar library, overlapping events are displayed with slotEventOverlap:true and limited to three visible layers using eventMaxStack:3. Additional overlapping events are grouped under a “+N more” option to keep the view clean and easy to scan

Tracking process statuses
The calendar also acts as a monitoring tool, displaying processes in different states. Users can tap on any event to view more details, making it easy to understand process activity at a glance

