---
title: "Create an event"
method: POST
path: "/v3/grants/{grant_id}/events"
tags: ["Events"]
---

# Create an event

`POST /v3/grants/{grant_id}/events`

Creates an event.

### Microsoft limitations

Microsoft ignores the `notify_participants` field and always sends email notifications about
changes to events.

### iCloud limitations

- iCloud ignores the `notify_participants` field and always sends email notifications about changes
to events.
- Email addresses that are registered with iCloud will not receive `notify_participants`
notifications containing the event. These events are automatically added to the iCloud calendar.
- Participants' information might be replaced by their iCloud alias. For example, if the organizer's
email address is `example@icloud.com` and their iCloud account was registered with
`example@gmail.com`, you might encounter cases where `example@icloud.com` is replaced with
`example@gmail.com`.

## Query parameters

- `calendar_id` string, required
- `select` string
- `notify_participants` boolean
- `tentative_as_busy` boolean

## Request body

- EventCreate
  - `busy` boolean, nullable — When `true`, shows the event's time block as "busy" on shared or public calendars. This might be called "transparency" in some systems. This field may be `null` if not explicitly set. Treat `null` the same as `true` (the default behavior).
  - `capacity` integer — The maximum number of participants that can attend the event.
  - `conferencing` union — An object that lets you automatically create a conference, or enter conferencing details manually. You can't use `autocreate` and `details` in the same request. If you do, Nylas returns an error. Nylas stores conference information in the event description. To remove conference details, set `conferencing` to `{}` and remove the corresponding conference information from the description in the same request.
    - object — Let Nylas autocreate the conference link.
      - `provider` 'Google Meet' | 'Zoom Meeting' | 'Microsoft Teams' — The conferencing provider that Nylas uses to create the conference.
      - `autocreate` object — When you include `autocreate` in your request, Nylas automatically creates the conference for the event and appends the conferencing details to the event description. If the `provider` is `Zoom Meeting`, your Zoom OAuth app must include the following [granular scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-granular/) for Nylas to manage meetings on behalf of the user: - `meeting:write:meeting` — required to **create** Zoom meetings. - `meeting:update:meeting` — required to **update** Zoom meetings (for example, when event time or title changes). - `meeting:delete:meeting` — required to **delete** Zoom meetings (when events are removed). If any of these scopes are missing, the Zoom API rejects the request. After adding scopes to your Zoom app, affected users must re-authenticate their grant so their access tokens include the new scopes.
        - `conf_grant_id` string — The grant ID of the account that hosts the conference. The user that belongs to this grant acts as the conference host: they join the conference at the scheduled time and admit other participants during the meeting. Include `conf_grant_id` when the conferencing `provider` isn't available on the user's own account — for example, when the `provider` is `Google Meet` but the user authenticated with a Microsoft account (cross-provider autocreation). When the `provider` is `Zoom Meeting`, `conf_grant_id` is always required.
        - `conf_settings` object — Optional provider-specific settings that Nylas passes through when it creates the conference. For `Zoom Meeting`, each key is sent as a top-level parameter to [Zoom's Create a Meeting API](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/meetingCreate) — for example, `agenda`, `password`, or Zoom's own `settings` object. Nylas does _not_ validate these values. They can make your Zoom integration more accessible but potentially less secure, so review your organization's security requirements.
    - object — Manually attach Google Meet details to the event.
      - `provider` 'Google Meet' — The conferencing provider for the event.
      - `details` object — An object that contains Google Meet conferencing details.
        - `url` string, required — The URL for the Google Meet conference.
        - `phone` string[] — The phone number associated with the Google Meet conference. This array accepts only one phone number.
        - `pin` string — The PIN associated with the Google Meet conference, if applicable.
    - object — Manually attach Zoom Meeting details to the event.
      - `provider` 'Zoom Meeting' — The conferencing provider for the event.
      - `details` object — An object that contains Zoom conferencing details.
        - `url` string, required — The URL for the Zoom conference.
        - `meeting_code` string, nullable — A unique ID associated with the Zoom conference.
        - `password` string, nullable — The password for the Zoom conference, if applicable.
    - object — Manually attach Microsoft Teams details to the event.
      - `provider` 'Microsoft Teams' — The conferencing provider for the event.
      - `details` object — An object that contains Microsoft Teams conferencing details.
        - `url` string, required — The URL for the Microsoft Teams conference.
    - object — Manually attach Teams for Business details to the event.
      - `provider` 'Teams for Business' — The conferencing provider for the event.
      - `details` object — An object that contains Microsoft Teams for Enterprise conferencing details.
        - `url` string, required — The URL for the Microsoft Teams for Enterprise conference.
    - object — Manually attach Skype for Consumer details to the event.
      - `provider` 'Skype for Consumer' — The conferencing provider for the event.
      - `details` object — An object that contains Skype for Consumer conferencing details.
        - `url` string, required — The URL for the Skype for Consumer conference.
    - object — Manually attach Skype for Business details to the event.
      - `provider` 'Skype for Business' — The conferencing provider for the event.
      - `details` object — An object that contains Skype for Business conferencing details.
        - `url` string, required — The URL for the Skype for Business conference.
    - object — Manually attach WebEx details to the event.
      - `provider` 'WebEx' — The conferencing provider for the event.
      - `details` object — An object that contains WebEx conferencing details.
        - `url` string, required — The URL for the WebEx conference.
        - `password` string — The password for the WebEx conference, if applicable.
        - `pin` string — The PIN for the WebEx conference, if applicable.
        - `phone` string[] — The phone number associated with the WebEx conference.
    - object — Manually attach GoToMeeting details to the event.
      - `provider` 'GoToMeeting' — The conferencing provider for the event.
      - `details` object — An object that contains GoToMeeting conferencing details.
        - `url` string, required — The URL for the GoToMeeting conference.
        - `meeting_code` string — A unique ID associated with the GoToMeeting conference.
        - `password` string — The password for the GoToMeeting conference, if applicable.
        - `phone` string[] — The phone number associated with the GoToMeeting conference.
  - `description` string — A brief description of the event (for example, its agenda). Nylas might return the description as an HTML string, depending on how the provider formats it. For Google accounts, this field accepts a maximum of 8,192 characters.
  - `hide_participants` boolean — When `true`, hides the event's list of participants.
  - `location` string — The location of the event (for example, a physical address or the name of a meeting room).
  - `metadata` Metadata — The metadata associated with the object. For more information, see [Metadata](/docs/reference/api/#metadata).
  - `notetaker` EventSync
    - `id` string — The Notetaker bot ID. Read-only; returned in responses but not required in create or update requests.
    - `meeting_settings` MeetingSettings — A collection of settings for the Notetaker bot.
      - `action_items` boolean — When `true`, Notetaker generates a list of action items from the meeting. If `action_items` is `true`, `video_recording`, `audio_recording`, and `transcription` must also be `true`.
      - `action_items_settings` object
        - `custom_instructions` string — A custom prompt to pass to Nylas' AI model and specify settings for the list of action items it generates. `action_items` must be `true` to use this field.
      - `audio_recording` boolean — When `true`, Notetaker records the meeting's audio.
      - `leave_after_silence_seconds` integer — The number of seconds of silence after which the Notetaker bot automatically leaves the meeting. This helps end recordings when meetings have concluded but participants haven't disconnected the call. Must be between 10 and 3600 seconds (1 hour).
      - `summary` boolean — When `true`, Notetaker generates a summary of the meeting. If `summary` is `true`, `video_recording`, `audio_recording`, and `transcription` must also be `true`.
      - `summary_settings` object
        - `custom_instructions` string — A custom prompt to pass to Nylas' AI model and specify settings for the summary it generates. `summary` must be `true` to use this field.
      - `transcription` boolean — When `true`, Notetaker transcribes the meeting's audio. If `transcription` is `true`, `video_recording` and `audio_recording` must also be `true`.
      - `video_recording` boolean — When `true`, Notetaker records the meeting's video.
      - `transcription_settings` object, nullable — Optional settings that tune how Notetaker transcribes audio. `transcription` must be `true` for these settings to take effect. Provide any combination of the fields below. The fields fall into two independent groups: - **Language hints** (`expected_languages`, `fallback_language`) constrain automatic language detection. This declares the languages you expect; it does not translate transcripts or force the recording into a specific language. - **Keyword hints** (`keywords`, `use_speaker_names_as_keywords`) bias recognition toward domain-specific terms such as names, acronyms, and product names. Set on individual Notetakers, on calendar sync, or on event sync. When set on a calendar, events inherit the value unless the event's own request overrides it. Send `null` or `{}` to clear inherited settings and return to default transcription behavior. See [Set transcription languages](/docs/v3/notetaker/#set-transcription-languages) for supported language codes and validation rules.
        - `expected_languages` string[] — Language codes the audio is expected to contain. Optional. When provided, it must contain at least one supported code and cannot be `null` or empty. When omitted, transcription considers all supported languages.
        - `fallback_language` string — Language to use if Notetaker does not detect one of the `expected_languages`. Optional. When `expected_languages` is set, the fallback must be one of those codes. When `expected_languages` is omitted, transcription considers all supported languages and the fallback may be any supported code. When `fallback_language` is omitted, the transcriber auto-detects the language. The field is not stored, so responses do not return it.
        - `keywords` string[] — Domain-specific terms that bias transcription toward recognizing them correctly, such as names, acronyms, and product names. Optional. Up to 200 terms; each term must be 1 to 200 characters and cannot contain control characters. Cannot be `null`.
        - `use_speaker_names_as_keywords` boolean — When `true`, Notetaker adds known speaker names to the keyword set so they are transcribed accurately. Optional. Cannot be `null`.
    - `name` string — The display name for the Notetaker bot.
  - `participants` EventParticipantsCreateUpdate[]
    - `comment` string — A note or comment about the participant (for example, their nickname). If the participant's email address is missing, this field is also missing.
    - `email` string, required — The participant's email address. For Microsoft Graph, this field can be missing.
    - `name` string — The participant's full name.
    - `phone_number` string — The participant's phone number. If the participant's email address is missing, this field is also missing.
  - `resources` EventResources[]
    - `email` string, required — The resource's email address.
    - `name` string — The resource's full name.
  - `recurrence` string[] — An array of `RRULE` and `EXDATE` strings. Nylas includes this field only if the event is the main (master) event. See [RFC-5545](https://tools.ietf.org/html/rfc5545#section-3.8.5) for more details. You can use [this tool](https://jkbrzt.github.io/rrule/) to learn more about the `RRULE` spec. Events inherit their timezone from the `when` object. Nylas recommends that you use the `when` object to specify the event's start and end time. Provider specifics: - On some providers, `EXDATE` might not include exception or cancelled event timestamps. When this happens, Nylas represents those event instances as separate objects in its responses. - Virtual calendars don't support `DTSTART` or `TZID`. - iCloud accounts do _not_ support changing an event from recurring to non-recurring. You can create, update, or delete information on recurring events. - Microsoft Graph adds one day to the `UNTIL` date.
  - `reminders` EventRemindersCreate — A list of reminders to send for the event. If left empty or omitted, the event uses the provider defaults.
    - `use_default` boolean — When `true`, the event uses the calendar's default reminder settings. - **Google**: Generates a `popup`-style reminder 10 minutes before the event begins. - **Microsoft**: Generates a reminder 15 minutes before the event begins. - **iCloud**: Does not generate a reminder. - **EWS**: Generates a `display`-style reminder 15 minutes before the event begins.
    - `overrides` object[] — A list of reminders for the event to use when `use_default` is `false`. If this field is empty or omitted, and `use_default` is `false`, the event does not send reminders. If `true`, Nylas generates both the default event reminder and any reminders in the `overrides` list. You cannot set reminder overrides if `use_default` is `true`. For Microsoft Graph, EWS, and iCloud, you can set only one reminder per event.
      - `reminder_minutes` integer — The number of minutes before the event start time when a user wants to receive a reminder for this event.
      - `reminder_method` 'popup' | 'email' | 'display' | 'sound' — (Google and iCloud only) The method used to notify the user about the event, with separate options and default settings for each provider. - **Google**: - Default: `popup` - Options: `popup`, `email` - **iCloud**: - Default: `display` - Options: `display`, `sound`
  - `title` string — The name of the event.
  - `visibility` 'default' | 'private' | 'public', nullable — (Not supported for iCloud events) Specifies whether the event is `public` or `private`. If not defined, Nylas uses the account's default provider settings. For Google and Microsoft, event visibility is `public` by default. The `default` enum value is only valid for Google events, where it defers to the calendar's own sharing settings. Microsoft and EWS events only support `public` and `private`; sending `default` for these providers returns a 400 error. For virtual calendar events, you can explicitly set `visibility` to `private` or `public` on create and update requests. If not set, virtual calendar events default to `public` behavior.
  - `when` union, required — An object that represents the time and duration of an event. You can format `when` as one of four sub-objects: `time`, `timespan`, `date`, or `datespan`. These sub-objects allow you to capture and represent specific points in time. `time` and `timespan` objects include optional timezone support.
    - object — A specific point in time (for example, the start time of an event).
      - `time` integer — The time that the meeting occurs, in seconds using the Unix timestamp format.
      - `timezone` string — The timezone of the event as an [IANA-formatted](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) string. If populated, Nylas reads the value of `time` with the provided timezone.
    - object — A period of time with a specified beginning and end (for example, an hour-long lunch meeting).
      - `start_time` integer — The event's start time, in seconds using the Unix timestamp format.
      - `end_time` integer — The event's end time, in seconds using the Unix timestamp format.
      - `start_timezone` string, nullable — The timezone of the event's `start_time` as an [IANA-formatted](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) string. If you define `start_timezone` in your request, you must also define `end_timezone`.
      - `end_timezone` string, nullable — The timezone of the event's `end_time` as an [IANA-formatted](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) string. If you define `end_timezone` in your request, you must also define `start_timezone`.
    - object — The date on which the event occurs, without a clock-based start or end time (for example, a birthday or holiday).
      - `date` string — The date of the event, in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601#Calendar_dates).
    - object — A span of days, without specific clock-based start and end times (for example, a business quarter or semester). For more information, see [All-day event handling](/docs/v3/calendar/using-the-events-api/#all-day-event-handling).
      - `start_date` string — The event's start date, in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601#Calendar_dates).
      - `end_date` string — The event's end date (inclusive), in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601#Calendar_dates).

## Response `200`

Event Response

- object
  - `request_id` string — The request ID.
  - `data` EventCommon
    - `busy` boolean — If `true`, shows the event's time block as `busy` on shared or public calendars. This may be called "transparency" in some systems.
    - `calendar_id` string, nullable — The calendar ID associated with the event. If you used the `calendar_id=primary` query parameter in your request, Nylas returns the real calendar ID instead of `primary`. For Microsoft calendars, there are some cases where the event Nylas returns isn't associated with a calendar ID. This happens most often when the event is created in a shared calendar. This field may be `null` for certain event types (for example, virtual calendar events).
    - `conferencing` union — An object that contains event conferencing details. Nylas appends the conference information to the Event `description`.
      - object — Conference Nylas autocreated for the event.
        - `provider` 'Google Meet' | 'GoToMeeting' | 'Microsoft Teams' | 'Skype for Business' | 'Skype for Consumer' | 'WebEx' | 'Zoom Meeting' | 'unknown'
        - `autocreate` object — The autocreate settings Nylas used to generate the conference for the event. After the conferencing provider creates the meeting, Nylas returns the concrete meeting information — such as the URL and meeting code — in the `details` object and appends it to the event `description`. For an autocreated conference, expect the response `conferencing` object to contain a `provider` and a `details` object once the meeting exists.
      - object — Manually-attached Google Meet conferencing details.
        - `provider` 'Google Meet' | 'GoToMeeting' | 'Microsoft Teams' | 'Skype for Business' | 'Skype for Consumer' | 'WebEx' | 'Zoom Meeting' | 'unknown'
        - `details` object — An object that contains Google Meet conferencing details.
          - `url` string — The URL for the Google Meet conference.
          - `phone` string[] — The phone number associated with the Google Meet conference.
          - `pin` string — The PIN associated with the Google Meet conference, if applicable.
      - object — Manually-attached Zoom Meeting conferencing details.
        - `provider` 'Google Meet' | 'GoToMeeting' | 'Microsoft Teams' | 'Skype for Business' | 'Skype for Consumer' | 'WebEx' | 'Zoom Meeting' | 'unknown'
        - `details` object — An object that contains Zoom conferencing details.
          - `url` string — The URL for the Zoom conference.
          - `meeting_code` string — A unique ID associated with the Zoom conference.
          - `password` string — The password for the Zoom conference, if applicable.
      - object — Manually-attached Microsoft Teams conferencing details.
        - `provider` 'Google Meet' | 'GoToMeeting' | 'Microsoft Teams' | 'Skype for Business' | 'Skype for Consumer' | 'WebEx' | 'Zoom Meeting' | 'unknown'
        - `details` object — An object that contains Microsoft Teams conferencing details.
          - `url` string — The URL for the Microsoft Teams conference.
      - object — Manually-attached WebEx conferencing details.
        - `provider` 'Google Meet' | 'GoToMeeting' | 'Microsoft Teams' | 'Skype for Business' | 'Skype for Consumer' | 'WebEx' | 'Zoom Meeting' | 'unknown'
        - `details` object — An object that contains WebEx conferencing details.
          - `url` string — The URL for the WebEx conference.
          - `password` string — The password for the WebEx conference, if applicable.
          - `pin` string — The PIN for the WebEx conference, if applicable.
          - `phone` string[] — The phone number associated with the WebEx conference.
      - object — Manually-attached GoToMeeting conferencing details.
        - `provider` 'Google Meet' | 'GoToMeeting' | 'Microsoft Teams' | 'Skype for Business' | 'Skype for Consumer' | 'WebEx' | 'Zoom Meeting' | 'unknown'
        - `details` object — An object that contains GoToMeeting conferencing details.
          - `url` string — The URL for the GoToMeeting conference.
          - `meeting_code` string — A unique ID associated with the GoToMeeting conference.
          - `password` string — The password for the GoToMeeting conference, if applicable.
          - `phone` string[] — The phone number associated with the GoToMeeting conference.
    - `created_at` integer, nullable — When the event was created, in seconds using the Unix timestamp format.
    - `description` string, nullable — A brief description of the event (for example, its agenda). The description might be returned as an HTML string, depending on how the provider formats it. For Google accounts, this field accepts a maximum of 8,192 characters.
    - `text_description` string, nullable — A brief text description of the event (for example, its agenda). If the description is HTML-formatted, this field will contain the text version of the description.
    - `hide_participants` boolean — (Not supported for iCloud or EWS events) When `true`, hides the event's list of participants.
    - `grant_id` string — The ID of grant for the connected user.
    - `html_link` string — (Not supported for EWS events) A link to the event on the provider.
    - `ical_uid` string, nullable — A unique ID that you can use to identify events across calendaring systems, in [iCalendar format](https://datatracker.ietf.org/doc/html/rfc5545#section-3.8.4.7). Recurring events might share the same ID. Can be `null` for events synced before the year 2020.
    - `id` string — The ID of the event. Event IDs are usually unique to each user, except for Google which maintains the same event ID for an event regardless of the user querying it.
    - `location` string, nullable — The location of the event (for example, a physical address or the name of a meeting room).
    - `master_event_id` string, nullable — If the event is an instance of a recurring event series, this field lists the ID of the parent event. If the parent event belongs to a different calendar that you don't have access to, or it's been deleted or cancelled, you can't retrieve it using this ID.
    - `metadata` Metadata — The metadata associated with the object. For more information, see [Metadata](/docs/reference/api/#metadata).
    - `object` string — The type of object.
    - `organizer` Organizer — An object that contains information about an event's organizer.
      - `name` string — The organizer's full name.
      - `email` string — The organizer's email address. For an event in a Google calendar, Nylas returns the `email` based on the calender type. - For a primary calendar, `email` is the same as the `calendar_id`. - For a non-primary calendar, `email` is set to the actual ID of the calendar.
    - `participants` object[] — An array of participants invited to the event. The organizer doesn't need to be explicitly included in this list.
      - `comment` string — A note or comment about the participant (for example, their nickname).
      - `email` string — The participant's email address. For Microsoft Graph, this field can be missing.
      - `name` string — The participant's name.
      - `phone_number` string — The participant's phone number.
      - `status` 'yes' | 'no' | 'maybe' | 'noreply' — The participant's RSVP status.
    - `resources` EventResources[] — An array of room resource bookings added to the event.
      - `email` string, required — The resource's email address.
      - `name` string — The resource's full name.
    - `read_only` boolean — If `true`, indicates that the event is read-only. The provider sets the `read_only` value based on the connected calendar, and you can't modify it. In cases where you _can_ update this field on a cloned event (for example, an event imported to your calendar from an email invitation), `read_only` is `true`. If the calendar is read-only, all events on the calendar have `read_only` set to `true`.
    - `reminders` EventReminders — A list of reminders to generate for the event. If not defined, Nylas uses the provider's default settings.
      - `use_default` boolean, nullable — When `true`, the event uses the calendar's default reminder settings. This field may be `null` if reminders are not explicitly configured. - **Google**: Generates a `popup`-style reminder 10 minutes before the event begins. - **Microsoft**: Generates a reminder 15 minutes before the event begins. - **iCloud**: Does not generate a reminder. - **EWS**: Generates a `display`-style reminder 15 minutes before the event begins.
      - `overrides` object[], nullable — A list of reminders for the event to use when `use_default` is `false`. If this field is empty or omitted, and `use_default` is `false`, the event does not send reminders. If `true`, Nylas generates both the default event reminder and any reminders in the `overrides` list. You cannot set reminder overrides if `use_default` is `true`. For Microsoft Graph, EWS, and iCloud, you can set only one reminder per event. This field may be `null` if no reminder overrides have been set. Treat `null` the same as an empty array.
        - `reminder_minutes` integer — The number of minutes before the event to display a reminder.
        - `reminder_method` 'popup' | 'email' | 'display' | 'sound' — (Google and iCloud only) The method used to notify the user about the event, with separate options and default settings for each provider. - **Google**: - Default: `popup` - Options: `popup`, `email` - **iCloud**: - Default: `display` - Options: `display`, `sound`
    - `recurrence` string[] — An array of `RRULE` and `EXDATE` strings. Nylas includes this field only if the event is the main (master) event. See [RFC-5545](https://tools.ietf.org/html/rfc5545#section-3.8.5) for more details. You can use [this tool](https://jkbrzt.github.io/rrule/) to learn more about the `RRULE` spec. Events inherit their timezone from the `when` object. Nylas recommends that you use the `when` object to specify the event's start and end time. Provider specifics: - On some providers, `EXDATE` might not include exception or cancelled event timestamps. When this happens, Nylas represents those event instances as separate objects in its responses. - Virtual calendars don't support `DTSTART` or `TZID`. - iCloud accounts do _not_ support changing an event from recurring to non-recurring. You can create, update, or delete information on recurring events. - Microsoft Graph adds one day to the `UNTIL` date.
    - `status` 'confirmed' | 'cancelled' | 'maybe' — (Not supported for iCloud) The status of the event. You can't set this field when creating or updating an event. If you're the organizer of the event and you want to reply "maybe" or "no" to the invitation, use the [Send RSVP endpoint](/docs/reference/api/events/send-rsvp/) instead. For Google events, a `cancelled` status indicates that the event was an occurrence of a recurring event, and that the occurrence has been cancelled by the event organizer. For Microsoft and EWS events, a `cancelled` status indicates that the event was organized by someone else, and the organizer cancelled or deleted the event.
    - `title` string — The name of the event.
    - `updated_at` integer, nullable — When the event was last updated, in seconds using the Unix timestamp format.
    - `visibility` 'default' | 'private' | 'public', nullable — (Not supported for iCloud events) Specifies whether the event is `public` or `private`. If not defined, Nylas uses the account's default provider settings. For Google and Microsoft, event visibility is `public` by default. The `default` enum value is only valid for Google events, where it defers to the calendar's own sharing settings. Microsoft and EWS events only support `public` and `private`; sending `default` for these providers returns a 400 error. For virtual calendar events, you can explicitly set `visibility` to `private` or `public` on create and update requests. If not set, virtual calendar events default to `public` behavior.
    - `when` union — An object that represents the time and duration of an event. Nylas might format `when` as one of three sub-objects: `timespan`, `date`, or `datespan`. These sub-objects allow Nylas to capture and represent specific points in time. `timespan` objects include optional timezone support. This field may be `null` when event timing data is unavailable (for example, when using field selection that excludes the underlying time fields).
      - object — A period of time with a specified beginning and end (for example, an hour-long lunch meeting).
        - `start_time` integer — The event's start time, in seconds using the Unix timestamp format.
        - `end_time` integer — The event's end time, in seconds using the Unix timestamp format.
        - `start_timezone` string, nullable — The timezone of the event's `start_time` as an [IANA-formatted](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) string. If you define `start_timezone` in your request, you must also define `end_timezone`.
        - `end_timezone` string, nullable — The timezone of the event's `end_time` as an [IANA-formatted](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) string. If you define `end_timezone` in your request, you must also define `start_timezone`.
      - object — The date on which the event occurs, without a clock-based start or end time (for example, a birthday or holiday).
        - `date` string — The date of the event, in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601#Calendar_dates).
      - object — A span of days, without specific clock-based start and end times (for example, a business quarter or semester). For more information, see [All-day event handling](/docs/v3/calendar/using-the-events-api/#all-day-event-handling).
        - `start_date` string — The event's start date, in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601#Calendar_dates).
        - `end_date` string — The event's end date (inclusive), in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601#Calendar_dates).
    - `original_start_time` integer — (Not supported for virtual calendars) The original start time of the event, in seconds using the Unix timestamp format. This field is present only if the event is an instance of a recurring event.
    - `notetaker` EventSync
      - `id` string — The Notetaker bot ID. Read-only; returned in responses but not required in create or update requests.
      - `meeting_settings` MeetingSettings — A collection of settings for the Notetaker bot.
        - `action_items` boolean — When `true`, Notetaker generates a list of action items from the meeting. If `action_items` is `true`, `video_recording`, `audio_recording`, and `transcription` must also be `true`.
        - `action_items_settings` object
          - `custom_instructions` string — A custom prompt to pass to Nylas' AI model and specify settings for the list of action items it generates. `action_items` must be `true` to use this field.
        - `audio_recording` boolean — When `true`, Notetaker records the meeting's audio.
        - `leave_after_silence_seconds` integer — The number of seconds of silence after which the Notetaker bot automatically leaves the meeting. This helps end recordings when meetings have concluded but participants haven't disconnected the call. Must be between 10 and 3600 seconds (1 hour).
        - `summary` boolean — When `true`, Notetaker generates a summary of the meeting. If `summary` is `true`, `video_recording`, `audio_recording`, and `transcription` must also be `true`.
        - `summary_settings` object
          - `custom_instructions` string — A custom prompt to pass to Nylas' AI model and specify settings for the summary it generates. `summary` must be `true` to use this field.
        - `transcription` boolean — When `true`, Notetaker transcribes the meeting's audio. If `transcription` is `true`, `video_recording` and `audio_recording` must also be `true`.
        - `video_recording` boolean — When `true`, Notetaker records the meeting's video.
        - `transcription_settings` object, nullable — Optional settings that tune how Notetaker transcribes audio. `transcription` must be `true` for these settings to take effect. Provide any combination of the fields below. The fields fall into two independent groups: - **Language hints** (`expected_languages`, `fallback_language`) constrain automatic language detection. This declares the languages you expect; it does not translate transcripts or force the recording into a specific language. - **Keyword hints** (`keywords`, `use_speaker_names_as_keywords`) bias recognition toward domain-specific terms such as names, acronyms, and product names. Set on individual Notetakers, on calendar sync, or on event sync. When set on a calendar, events inherit the value unless the event's own request overrides it. Send `null` or `{}` to clear inherited settings and return to default transcription behavior. See [Set transcription languages](/docs/v3/notetaker/#set-transcription-languages) for supported language codes and validation rules.
          - `expected_languages` string[] — Language codes the audio is expected to contain. Optional. When provided, it must contain at least one supported code and cannot be `null` or empty. When omitted, transcription considers all supported languages.
          - `fallback_language` string — Language to use if Notetaker does not detect one of the `expected_languages`. Optional. When `expected_languages` is set, the fallback must be one of those codes. When `expected_languages` is omitted, transcription considers all supported languages and the fallback may be any supported code. When `fallback_language` is omitted, the transcriber auto-detects the language. The field is not stored, so responses do not return it.
          - `keywords` string[] — Domain-specific terms that bias transcription toward recognizing them correctly, such as names, acronyms, and product names. Optional. Up to 200 terms; each term must be 1 to 200 characters and cannot contain control characters. Cannot be `null`.
          - `use_speaker_names_as_keywords` boolean — When `true`, Notetaker adds known speaker names to the keyword set so they are transcribed accurately. Optional. Cannot be `null`.
      - `name` string — The display name for the Notetaker bot.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `429` — Rate Limit
- `504` — Provider Failure

---

[API](https://skmtc.dev/nylas/apis/nylas-api.md) · [All operations](https://skmtc.dev/nylas/apis/nylas-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/nylas/nylas-api/revisions/51c2c1b4ecff/schema)
