# RSVP to calendar event invitations

Source: https://developer.nylas.com/docs/cookbook/calendar/rsvp-to-events/

You want users to accept or decline meeting invitations from inside your app, without bouncing them to Gmail or Outlook. Each provider models the response differently, and the edge cases (declining, organizers responding to their own events) don't behave the same way twice.

The Nylas Events API gives you one `send-rsvp` call. You pass the event, a status, and the calendar it lives on, and it sends the response through the user's provider so the organizer sees it like any other reply.

## How do I RSVP to an event?

Send a `POST /v3/grants/{grant_id}/events/{event_id}/send-rsvp` request with a `status` of `yes`, `no`, or `maybe`, and the `calendar_id` as a query parameter. Nylas relays the response to the meeting organizer through the user's own provider. The call works across 3 providers: Google, Microsoft, and Exchange. Send RSVP isn't supported for iCloud.

The request below sends a "yes" RSVP for one event on a specific calendar.

```bash
curl --compressed --request POST \
  --url 'https://api.us.nylas.com/v3/grants/<NYLAS_GRANT_ID>/events/<EVENT_ID>/send-rsvp?calendar_id=<CALENDAR_ID>' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer <NYLAS_API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '{
    "status": "yes"
  }'

```

Nylas also emails the RSVP to the organizer as a calendar update. If your app already sends its own notification, set `skip_nylas_email` to `true` on the request to avoid a duplicate email reaching the organizer.

## How does RSVP behavior differ by provider?

RSVP handling carries real provider differences worth coding around, across the 3 providers that support it. On Exchange (EWS), sending a `no` response usually removes the event from the user's calendar, unless an EWS admin disabled that behavior, in which case it stays with a declined status. Microsoft Graph sometimes doesn't update the event status correctly after an RSVP, so don't rely on an immediate status change there.

There's also an organizer rule: Google lets a meeting organizer reply `yes`, `maybe`, or `no` to their own event, but other providers don't allow an organizer to RSVP to an event they created. Plan your UI to hide the RSVP control for organizers on the other 2 providers, Microsoft and Exchange.

## What's next

- [Create Google events](/docs/cookbook/calendar/events/create-events-google/) to create the events users respond to
- [Find open meeting times across calendars](/docs/cookbook/calendar/find-meeting-times/) to pick a slot before inviting
- [Recurring events and RRULE](/docs/v3/calendar/recurring-events/) for responding to a series
- [Get real-time updates with webhooks](/docs/cookbook/use-cases/build/realtime-webhooks/) for event.updated notifications when invitations change