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

Calendar month view showing scheduled processes with statuses and a side panel displaying processes for a particular day

What we achieved

42%

Manual scheduling interventions

42%

Manual scheduling interventions

55%

55%

Growth in overall system adoption

55%

Growth in overall system adoption

3.9/5

User satisfaction score

3.9/5

User satisfaction score

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

SSMS interface showing job scheduling setup with technical configuration options

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

Flow diagram to create a new process by selecting calendar, process type, and basic details

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

Calendar view showing scheduled processes without any status or tracking information

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

Calendar work-week view showing scheduled processes with overlapping events and different calendars enabled

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

Form to create a schedule by selecting calendar, process, overlap rules, and timing details
Form showing timing, recurrence settings, and conflict suggestions for scheduling a process

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

Form to create a user calendar event for marking business off days with recurrence settings

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

Popup showing option to update or keep existing schedules after changes to overlapping calendar events

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

Calendar view showing overlapping events stacked with a “+1 more” option to manage extra events

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

Calendar month view showing scheduled processes with statuses and a side panel displaying processes for a particular day
Cards showing different process statuses like completed, in progress, queued, failed, and cancelled with details

Assessing next steps …

Allow users to define overlapping events for specific time ranges instead of only full-day blocks

Allow users to define overlapping events for specific time ranges instead of only full-day blocks

Bring other tasks like maker-checker flows and deadline-based jobs into the scheduler for better visibility and control

Bring other tasks like maker-checker flows and deadline-based jobs into the scheduler for better visibility and control

Designed with ❤︎ and fueled by
a steady rotation of Linkin Park tracks

© 2026, Devesh. All rights reserved.

Designed with ❤︎ and fueled by a steady rotation of Linkin Park tracks

© 2026, Devesh. All rights reserved.

Designed with ❤︎ and fueled by
a steady rotation of Linkin Park tracks

© 2026, Devesh. All rights reserved.

Designed with ❤︎ and fueled by a
steady rotation of Linkin Park tracks

© 2026, Devesh. All rights reserved.