You can use the Orchestrator Queue functionality to distribute the workload among several robots.
- Create a queue in Orchestrator for the work items.
- Create a “Dispatcher” process that will add one work item in queue for each user related fetch. This is a simple process that will populate the queue with items that needs to be processes - relevant data for the event fetch.
- Create a “Performer” process that will take one work item from queue and process it. Repeat as long as there are items in queue. The process part means to fetch events from calendar for the current item.
- Aggregate the results from all robots.
The “Dispatcher” process is executed first, it will add one work item in queue for each fetch that you need from the calendar. Then you can execute the “Performer” process on multiple robots, each one will process different items from queue - will fetch different data from calendar, until all data is fetched. If you start the “Performer” process on 10 robots, all the data should be fetched 10 times faster then when a robot is working alone.
Also, maybe you can improve the time it takes to process one work item by fine tuning the delays in the activities (DelayBefore, DelayAfter, WaitForReady, etc.)