Only show these results:

Meeting Types in Scheduler

This guide covers what types of meetings you can book with Nylas Scheduler and who is involved. Booking types consist of one-on-one, group, and collective events. These involve three roles: an organizer, an invitee, and an attendee.

You can configure attendee availability for bookings using the round robin and series.

When you create booking events, the resulting calendar events can be a single event, recurring event, or in a series of events during that booking timespan.

Roles

  • Organizer - Meeting creator. The organizer's account is authenticated and connected to Scheduler
  • Invitee - External person who can book an event, receives an invite, and can accept the invite.
  • Attendee - Meeting guests, also can include people from organizer’s team or company with access to free/busy information.

One on One

One on One meetings are for a single organizer and a single invitee. This is the default for Scheduler events and meetings.

Image showing two people icons symbolizing a one on one meeting.

To create a one on one meeting you should set the number of participants to one and leave yourself as the organizer.

Image showing the Event Info page of the Schedule editor

Beta

To enable Group and Collective events, contact Nylas Support.

Group

Group meetings involve a single organizer creating an event with multiple invitees and attendees. The organizer sets a single event time and a maximum capacity for attendees.

Image showing one event organizer with multiple attendees.

To create a group meeting, change the number of attendees. In this scenario, there is still only one organizer.

Image showing the Event Info page of the Scheduler editor

Collective

Collective meetings allow an organizer to host an event with another organizer or an assigned attendee. The event organizer can also give attendees the option to pick a mutually available time slot.

Gmail and EWS Only

This feature is available for Gmail and EWS accounts only. EAS accounts aren’t able to retrieve free-busy information from calendars.

Illustration of collective meeting booking

To create a collective scheduler, make a request to the POST manage/pages endpoint in the Nylas Scheduler API. Make the changes explained as comments in the example request payload below. The next tab shows the response to this example.

{
//Add all the organizers access_tokens here
"access_tokens": [
"<ACCESS_TOKEN_ORGANIZER1>",
"<ACCESS_TOKEN_ORGANIZER2>",
"<ACCESS_TOKEN_ORGANIZER3>"
],
"config": {
"appearance": {
"color": "red",
"company_name": "{{Company_Name}}",
"logo": "<<YOUR LOGO>>",
"privacy_policy_redirect": "",
"show_autoschedule": true,
"show_nylas_branding": false,
"show_timezone_options": true,
"show_week_view": true,
"submit_text": "",
"thank_you_redirect": "",
"thank_you_text": "",
"thank_you_text_secondary": ""
},
"booking": {
"additional_fields": [],
"additional_guests_hidden": false,
"available_days_in_future": 30,
"calendar_invite_to_guests": true,
"cancellation_policy": "",
"confirmation_emails_to_guests": true,
"confirmation_emails_to_host": true,
"confirmation_method": "automatic",
"interval_minutes": null,
"min_booking_notice": 5,
"min_buffer": 5,
"min_cancellation_notice": 10,
"name_field_hidden": false,
"opening_hours": [
// You can set specific opening hours for each organizer here
{
"account_id": "<<ORGANIZER_1_ACCOUNT_ID>>",
"days": ["M", "T", "W", "R", "F"],
"end": "17:00",
"start": "09:00"
},
{
"account_id": "<<ORGANIZER_2_ACCOUNT_ID>>",
"days": ["M", "T", "W", "R", "F"],
"end": "13:00",
"start": "09:00"
},
{
"account_id": "<<ORGANIZER_3_ACCOUNT_ID>>",
"days": ["T", "W", "R"],
"end": "17:00",
"start": "09:00"
}
],
// Set this to collective - make sure Nylas Support has enabled this feature for you
"scheduling_method": "collective"
},
// Specify which calendar to use for booking/availability by passing calendar IDs for each account
"calendar_ids": {
"<<ORGANIZER_1_ACCOUNT_ID>>": {
"availability": ["<<ORGANIZER_1_CALENDAR_ID>>"],
"booking": "<<ORGANIZER_1_CALENDAR_ID>>"
},
"<<ORGANIZER_2_ACCOUNT_ID>>": {
"availability": ["<<ORGANIZER_2_CALENDAR_ID>>"],
"booking": "<<ORGANIZER_2_CALENDAR_ID>>"
},
"<<ORGANIZER_3_ACCOUNT_ID>>": {
"availability": ["<<ORGANIZER_3_CALENDAR_ID>>"],
"booking": "<<ORGANIZER_3_CALENDAR_ID>>"
}
},
"disable_emails": false,
"event": {
"capacity": 4, //Optional
"duration": 30,
"location": "TBD",
"title": "Meeting Title",
"participants": [
// Pass each of the users to include in every booking here (this should mirror the access_tokens array)
{
"confirmation_method": "calendar",
"email": "[email protected]",
"name": "Dorothy A",
"role": "organizer"
},
{
"confirmation_method": "calendar",
"email": "[email protected]",
"name": "Kat B",
"role": "organizer"
},
{
"confirmation_method": "calendar",
"email": "[email protected]",
"name": "Mae C",
"role": "organizer"
}
]
},
"locale": "en",
"page_hostname": "schedule.nylas.com",
"reminders": [
{
"delivery_method": "email",
"delivery_recipient": "both",
"email_subject": "Reminder - meeting about to start",
"time_before_event": 15,
"webhook_url": ""
}
],
"timezone": "America/Chicago"
},
"name": "{{SchedulerName}}",
"slug": "{{SchedulerSlug}}"
}
[
{
"account_id": "exampleaccountid1",
"calendar_id": "examplecalendaridA",
"end": 1634922900,
"host_name": "[email protected]",
"start": 1634920200
},
{
"account_id": "exampleaccountid2",
"calendar_id": "examplecalendaridB",
"end": 1634925600,
"host_name": "[email protected]",
"start": 1634922900
},
{
"account_id": "exampleaccountid3",
"calendar_id": "examplecalendaridC",
"end": 1634928300,
"host_name": "[email protected]",
"start": 1634925600
}
]

Round Robin

Round Robin meetings distribute the booking across a group of organizers. With Smart Integration configurations, you can find availability between multiple users.

The two modes for round robin meetings are Maximize Fairness and Maximize Availability. See the Round Robin Modes section for more information.

An illustration of round-robin booking

Maximize Availability

Event booking is spread evenly across calendars. This means hosts who have more availability in their calendar, will see more bookings.

An illustration of maximum availability

Maximize Availability Examples

{
"duration_minutes": 15,
"start_time": 1647986400,
"end_time": 1647993600,
"interval_minutes": 5,
"emails": [
"[email protected]",
"[email protected]"
],
"free_busy": [],
"buffer": 30,
"round_robin": "max-availability",
"open_hours": [
{
"emails": [
"[email protected]",
"[email protected]"
],
"days": [
0,
1,
2,
3,
4
],
"timezone": "America/Los_Angeles",
"start": "10:00",
"end": "16:00",
"object_type": "open_hours"
}
]
}
{
"object": "availability",
"order": ["[email protected]", "[email protected]"],
"time_slots": [
{
"emails": ["[email protected]", "[email protected]"],
"end": 1647987300,
"end_time": 1647987300,
"object": "time_slot",
"start": 1647986400,
"start_time": 1647986400,
"status": "free"
},
{
"emails": ["[email protected]", "[email protected]"],
"end": 1647987600,
"end_time": 1647987600,
"object": "time_slot",
"start": 1647986700,
"start_time": 1647986700,
"status": "free"
},
{
"emails": ["[email protected]", "[email protected]"],
"end": 1647987900,
"end_time": 1647987900,
"object": "time_slot",
"start": 1647987000,
"start_time": 1647987000,
"status": "free"
},
{
"emails": ["[email protected]", "[email protected]"],
"end": 1647988200,
"end_time": 1647988200,
"object": "time_slot",
"start": 1647987300,
"start_time": 1647987300,
"status": "free"
},
{
"emails": ["[email protected]", "[email protected]"],
"end": 1647988500,
"end_time": 1647988500,
"object": "time_slot",
"start": 1647987600,
"start_time": 1647987600,
"status": "free"
},
{
"emails": ["[email protected]", "[email protected]"],
"end": 1647988800,
"end_time": 1647988800,
"object": "time_slot",
"start": 1647987900,
"start_time": 1647987900,
"status": "free"
},
{
"emails": ["[email protected]", "[email protected]"],
"end": 1647989100,
"end_time": 1647989100,
"object": "time_slot",
"start": 1647988200,
"start_time": 1647988200,
"status": "free"
},
{
"emails": ["[email protected]", "[email protected]"],
"end": 1647989400,
"end_time": 1647989400,
"object": "time_slot",
"start": 1647988500,
"start_time": 1647988500,
"status": "free"
},
{
"emails": ["[email protected]", "[email protected]"],
"end": 1647989700,
"end_time": 1647989700,
"object": "time_slot",
"start": 1647988800,
"start_time": 1647988800,
"status": "free"
},
{
"emails": ["[email protected]", "[email protected]"],
"end": 1647990000,
"end_time": 1647990000,
"object": "time_slot",
"start": 1647989100,
"start_time": 1647989100,
"status": "free"
}
]
}

Max Fairness

Event booking spreads evenly across calendars. This may result in participants seeing less availability when booking.

An illustartion of maximum fairness

Max Fairness Examples

{
"duration_minutes": 15,
"start_time": 1647986400,
"end_time": 1647993600,
"interval_minutes": 5,
"emails": [
"[email protected]",
"[email protected]",
"[email protected]"
],
"free_busy": [],
"buffer": 30,
"round_robin": "max-fairness",
"open_hours": [
{
"emails": [
"[email protected]",
"[email protected]",
"[email protected]"
],
"days": [
0,
1,
2,
3,
4
],
"timezone": "America/Los_Angeles",
"start": "10:00",
"end": "16:00",
"object_type": "open_hours"
}
]
}
{
"object": "availability",
"order": ["[email protected]", "[email protected]"],
"time_slots": [
{
"emails": ["[email protected]", "[email protected]"],
"end": 1647987300,
"end_time": 1647987300,
"object": "time_slot",
"start": 1647986400,
"start_time": 1647986400,
"status": "free"
},
{
"emails": ["[email protected]", "[email protected]"],
"end": 1647987600,
"end_time": 1647987600,
"object": "time_slot",
"start": 1647986700,
"start_time": 1647986700,
"status": "free"
},
{
"emails": ["[email protected]", "[email protected]"],
"end": 1647987900,
"end_time": 1647987900,
"object": "time_slot",
"start": 1647987000,
"start_time": 1647987000,
"status": "free"
},
{
"emails": ["[email protected]", "[email protected]"],
"end": 1647988200,
"end_time": 1647988200,
"object": "time_slot",
"start": 1647987300,
"start_time": 1647987300,
"status": "free"
},
{
"emails": ["[email protected]", "[email protected]"],
"end": 1647988500,
"end_time": 1647988500,
"object": "time_slot",
"start": 1647987600,
"start_time": 1647987600,
"status": "free"
},
{
"emails": ["[email protected]", "[email protected]"],
"end": 1647988800,
"end_time": 1647988800,
"object": "time_slot",
"start": 1647987900,
"start_time": 1647987900,
"status": "free"
},
{
"emails": ["[email protected]", "[email protected]"],
"end": 1647989100,
"end_time": 1647989100,
"object": "time_slot",
"start": 1647988200,
"start_time": 1647988200,
"status": "free"
},
{
"emails": ["[email protected]", "[email protected]"],
"end": 1647989400,
"end_time": 1647989400,
"object": "time_slot",
"start": 1647988500,
"start_time": 1647988500,
"status": "free"
},
{
"emails": ["[email protected]", "[email protected]"],
"end": 1647989700,
"end_time": 1647989700,
"object": "time_slot",
"start": 1647988800,
"start_time": 1647988800,
"status": "free"
},
{
"emails": ["[email protected]", "[email protected]"],
"end": 1647990000,
"end_time": 1647990000,
"object": "time_slot",
"start": 1647989100,
"start_time": 1647989100,
"status": "free"
}
]
}