---
title: "requestWriteOnlyAccessToEvents(completion:)"
framework: EventKit
role: symbol
role_heading: Instance Method
platforms: [iOS 17.0+, iPadOS 17.0+, Mac Catalyst 17.0+, macOS 14.0+, visionOS 1.0+, watchOS 10.0+]
path: eventkit/ekeventstore/4162274-requestwriteonlyaccesstoevents
---

# requestWriteOnlyAccessToEvents(completion:)

Prompts the person using your app to grant or deny write access to event data.

## Declaration

```swift
func requestWriteOnlyAccessToEvents(completion: @escaping @Sendable (Bool, (any Error)?) -> Void)
```

```swift
func requestWriteOnlyAccessToEvents() async throws -> Bool
```

## Parameters

- `completion`: The block to call when the request completes.

## Discussion

Requesting access to an event store asynchronously prompts people for permission to use their data. The operating system only prompts them the first time your app requests write-only event access; any subsequent instantiations of [EKEventStore](../ekeventstore.md) uses existing permissions. When they grant or deny access, [EventKit](../../eventkit.md) calls the completion handler on an arbitrary queue.

> **important:** If your app has never requested access, you must request write-only or full access to events before attempting to create them. If you request events before prompting the user for access with this method, you’ll need to reset the event store with the [reset()](reset().md) method to receive data after the user grants access.

Your app isn’t blocked while the person decides to grant or deny permission. Because they may deny permission, your app needs to handle the case where it doesn’t receive access to the event store.

If the person grants permission, your app receives write-only access to the event store. Your app can create events, but it can’t access any of the existing calendars and events on the device, including events your app created. API calls to read event data from the event store don’t return any events.

> **note:** Your iOS or Mac Catalyst app can present an [EKEventEditViewController](../../eventkitui/ekeventeditviewcontroller.md) to let your user create events without requesting access to the event store. If your app creates events without using [EKEventEditViewController](../../eventkitui/ekeventeditviewcontroller.md), you must request at least write-only access to event data.

## See Also

### Requesting access to events and reminders

- [requestFullAccessToEvents(completion:)](requestfullaccesstoevents(completion:).md)
- [requestFullAccessToReminders(completion:)](requestfullaccesstoreminders(completion:).md)
- [authorizationStatus(for:)](authorizationstatus(for:).md)
- [EKAuthorizationStatus](../ekauthorizationstatus.md)
- [EKEventStoreRequestAccessCompletionHandler](../ekeventstorerequestaccesscompletionhandler.md)
- [NSCalendarsFullAccessUsageDescription](../../bundleresources/information-property-list/nscalendarsfullaccessusagedescription.md)
- [NSCalendarsWriteOnlyAccessUsageDescription](../../bundleresources/information-property-list/nscalendarswriteonlyaccessusagedescription.md)
- [NSRemindersFullAccessUsageDescription](../../bundleresources/information-property-list/nsremindersfullaccessusagedescription.md)
