Somebody asked about this last week and while I have a lot of EWS scripts that do access the Calendar I didn't have a simple example that just exported a list of the Calendar events with relevant information to a CSV file so here it is.
I've talked on this one before in this howto but when you query the calendar folder using EWS you need to use a CalendarView which will expand any recurring appointments in a calendar. There are some limits when you use a calendarview in that you can only return a maximum of 2 years of appointments at a time and paging will limit the max number of items to 1000 per call. So if you have a calendar with a very large number of appointments you need to break your query into small date time blocks. In this example script I'm just grabbing the next 7 days of appointments if you want to query a longer period you need to adjust the following lines (keeping in mind what I just mentioned)
#Define Date to Query
$StartDate = (Get-Date)
$EndDate = (Get-Date).AddDays(7)
The AppointmentState value being reporting on is this property I've put some code in that converts the Bitwise value back to its Enumeration Flags value (or values) so it makes it more readable.
With the Attendees I've also include the acceptance status if this is stored, note the acceptance status of all the attendees and resources will only be available on the Organizer copy of an appointment (which will be stored in the Organizers calendar). The script produces a CSV that looks like
I've put a download of the script here the code itself looks like