Create Configuration
Changed onCreates a Configuration object that you use to define settings and preferences for a scheduling session.
Duplicate email notifications
If the organizer in a scheduling session is a Microsoft account user, both the organizer and all attendees might receive duplicate email notifications, including booking confirmations, rescheduling and cancellation notifications, and reminders. This is because of the way Microsoft handles email notifications. If you set notifications in Scheduler, Microsoft also sends its own notifications to the event organizer and attendees. Microsoft doesn't provide a way to disable these notifications.
Metadata as additional fields
You can add metadata fields (type: metadata) to your Configuration to store custom information about a booking. For example, you can add campaign tags, keywords, or a logo URL. Set the value in the field's default. Configurations don't have a top-level metadata object, and a metadata field isn't the same as the metadata object on events and messages. It's a hidden field on the booking form.
The Scheduler UI doesn't display metadata fields. When a guest books through the hosted scheduling page or the nylas-scheduling component, the page sends each metadata field's default with the booking. The component's bookingInfo.additionalFields property overrides the default.
The Bookings API doesn't read default, required, or pattern. If your own code creates bookings with POST /v3/scheduling/bookings, include the values in the request's additional_fields. The API checks only that each key exists in the Configuration, and returns Additional field '<key>' not found in configuration if it doesn't. Values are strings.
Booking webhook notifications (booking.created, booking.rescheduled, booking.cancelled, booking.pending, and booking.reminder) include your metadata fields in booking_info.additional_fields. For group events, booking.reminder sends additional_fields as null. Calendar event webhooks (for example, event.updated) do not include them. Scheduler's own email notifications don't display them, but workflow templates can read them.
Guests can read and change metadata field values in the browser, so don't use them for routing, pricing, or secrets.
To identify Scheduler-related changes in event webhooks instead, use the metadata that Scheduler stamps on the calendar events it creates. For more information, see the event.updated notification schema.
Request
- Base URLhttps://api.us.nylas.com
- AuthHTTP bearer
Request body
Example request
{
"availability": {
"availability_rules": {
"default_open_hours": [
{
"days": [
0,
1,
2
],
"start": "10:00",
"end": "14:00",
"timezone": "America/Chicago",
"exdates": [
"2006-01-18"
]
}
],
"default_specific_time_availability": [
{
"date": "2025-12-25",
"start": "09:00",
"end": "13:00",
"timezone": "America/Toronto"
}
],
"only_specific_time_availability": true
}
},
"event_booking": {
"booking_type": "booking",
"description": "Come ready to talk philosophy!",
"location": "Central Library, room 203",
"notify_participants": true,
"reminders": [
{
"email_subject": "Reminder: Annual Philosophy Club Meeting",
"minutes_before_event": 30,
"recipient": "host",
"type": "email"
}
],
"timezone": "America/Chicago",
"title": "Annual Philosophy Club Meeting"
},
"participants": [
{
"availability": {
"open_hours": [
{
"days": [
0,
1,
2
],
"start": "10:00",
"end": "14:00",
"timezone": "America/Chicago",
"exdates": [
"2006-01-18"
]
}
]
},
"email": "nyla@example.com",
"name": "Nyla",
"specific_time_availability": [
{
"date": "2025-08-21",
"start": "09:00",
"end": "17:00",
"timezone": "America/Toronto"
}
],
"only_specific_time_availability": true,
"timezone": "America/Toronto"
}
],
"scheduler": {
"notetaker_settings": {
"enabled": true,
"show_ui_consent_message": true,
"notetaker_name": "Sales Recording Bot",
"meeting_settings": {
"action_items": true,
"action_items_settings": {
"custom_instructions": "Only return the 5 most important action items."
},
"audio_recording": true,
"leave_after_silence_seconds": 360,
"summary": true,
"summary_settings": {
"custom_instructions": "Return this summary in the MEDPIC sales methodology."
},
"transcription": true,
"video_recording": true,
"transcription_settings": {
"expected_languages": [
"en",
"es"
],
"fallback_language": "en",
"keywords": [
"Nylas",
"AssemblyAI"
],
"use_speaker_names_as_keywords": true
},
"messages": {
"on_join": [
{
"type": "text",
"content": "👋 Hey team! I'm your AI notetaker — here to capture the key points.",
"send_after_ms": 5000
}
],
"on_participant_join": [
{
"type": "text",
"content": "👋 Welcome! Recording and transcription are running.",
"debounce_ms": 3000
}
]
}
}
}
}
}Response
Configuration returned
Example response
{
"request_id": "5fa64c92-e840-4357-86b9-2aa364d35b88"
}Changes
- info
the
request property default valueNylas Notetakerwas removed - info
the
request property default valueNylas Notetakerwas removed
- info
- breaking
the request property
////became required - breaking
the request property
////became required - breaking
the
////request property's min was increased to5.00 - breaking
removed
subschema #1: Auto-conferencingsubschema #2: Google Meetsubschema #3: Zoom Meetingsubschema #4: Microsoft Teamssubschema #5: Teams for Businesssubschema #6: Skype for Consumersubschema #7: Skype for Businesssubschema #8: WebExsubschema #9: GoToMeetingfrom the//request propertyoneOflist - info
added
subschema #1: Auto-conferencingsubschema #2: Google Meetsubschema #3: Zoom Meetingsubschema #4: Microsoft Teamssubschema #5: Teams for Businesssubschema #6: Skype for Consumersubschema #7: Skype for Businesssubschema #8: WebExsubschema #9: GoToMeetingsubschema #10: Remove conferencingto the//request propertyanyOflist
- breaking