The events app/list works fine we use it. You can customize the category column to have the options of type of leave. And if you have to have a calendar view, you can use the classic view to view the calendar. Been using it for years for this exact purpose.
I ended up going with using the OOTB Calendar and customised it with some colours using Calendars Overlay , although i noticed when adding the events webpart on a page, i cannot get the correct values to display, thus making the webpart non-functional, did you come across this issue with SPO Modern when using the events app?