busy percentage for intervals in R

I work in a hospital. Our doctors work on-call during the night and evening hours. There may be times when no patients are coming so they can rest. At other times, many patients will be there at once.
They write down when they started and when they stopped treating a patient. With the lubridate package, I can transform these data into intervals with specific dates. The length of these intervals will vary a lot as treatment may be more or less complicated. Also when a lot is going on, a doctor may be going back and forth between patients. So a typical entry will look like this: "2016-06-11 21:45:00 UTC" "2016-06-11 22:35:00 UTC"

To see which times of day are usually very busy and which are rather slow, I would like to use these data. This should also be possible for different days of the week.
The whole thing should probably look like a bar graph showing what the average occupation would be at any time of day (for example 100% occupation between 8 and 9 pm, 40% between 1 and 2 am).
My problem is that I don't know how to do that. ggplot will not handle intervals and I have not found any package that will do this average or percentage for intervals.

I hope I was able to make clear what I need and what my problems are. I'm not an experienced programmer but happy to learn.

Thanks a lot

Valentin

Edit:

Sorry, I should have thought of that. So here is as far as I have come:

This way I have time intervals pointing to the same date and I have the weekdays to sort the data by. This is where I am stuck, because I know of no way to some kind of histogram on intervals. I could just use starting dates, but that would be heavily skewed, because an interval might be between 5 mins and 2 hours.

So after digging around and trying different things, here is what i came up with and what works for me. The salution is somewhat convoluted and verbose bus apparently gives exact results. In trying to find the answer, I learned about the vonders of vectorisation (pardon my german accent) since producing vectorised code cut the time it took to compute the results to about 3 mins whereas before i stopped calculations after about 96 hours without having completed.

Please note that the list of documented dates (not every doctor will have completed documentation of his shift) is an excel sheet with simple dates. the list of documented times working intervals is a date and time someone started seeing a patient in one column and stopped seeing that patient in another. The next row will be similar start and stop time and date.

All the variables in the text are in german or are abbreviations of german words, but I hope my comments are sufficient to understand what's going on. Also, a lot of the code is for problems specific to my situation.

Special thanks to users PhiSeu and user3507085 who helped me with different aspects of the solution.