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 - UX Designer
Duration - 1.5 Months
Tools Used - Figma, FullCalendar

What we achieved
How things worked earlier
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

Key challenges observed
No visibility into scheduling conflicts when creating processes, leading to overlaps
Manual effort required to cancel or adjust processes on holidays or non-business days
Heavy reliance on the technical team for scheduling and making updates
Complete dependency on SSMS for monitoring, limiting visibility & accessibility
The shift to service architecture
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
Identifying the core needs
Enable users to schedule processes & apply calendars to ensure executions align with business days and holidays
Provide real-time visibility into process progress, and access to detailed logs for troubleshooting
How the solution took shape
Approach 1 - Leveraging a familiar calendar grid
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
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

