You need to understand the differences first:
- List events - its used to retrieve a list of events in a given calendar.
- List calendarview - using this you can get the occurrences, exceptions, and single instances of events in a calendar view defined by a time range, from the user's default calendar, or from some other calendar of the user's.
- getschedule - you can get the free/busy availability information for a collection of users, distributions lists, or resources (rooms or equipment) for a specified time period. Also you need to understand the differences between the delegated & application permission - https://learn.microsoft.com/en-us/azure/active-directory/develop/developer-glossary#permissions. In short, if you want to access your calendar then go for Delegated, wherein if you want to access others calendar as well then go for application permission.