Antes do iOS 6, o acesso ao calendário não exigia nenhuma permissão. Nós apenas tivemos que criar uma loja de eventos e então pudemos adicionar eventos através dela.
Com o iOS6 a história é um pouco diferente: para criar um novo evento, pedimos ao usuário permissão para acessar seu calendário.
Graças à nova função requestAccessToEntityType: completed: que foi adicionada ao EKEventStore, esta operação é extremamente simples.
Artigo completo aqui:
http://www.thinkandbuild.it/calendar-events-and-permissions-in-ios-6/
//Request the access to the Calendar
[eventStore requestAccessToEntityType:EKEntityTypeEvent
completion:^(BOOL granted,NSError* error){
//Access not granted-------------
if(!granted){
}
//Access granted------------------
}else{
}
}];