Meetings
The Meetings API lets you list, create, retrieve, and update meetings on your Synced calendar.
List Meetings
GET
/v1/meetingsReturns a list of meetings for the authenticated user.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
filter | string | Filter meetings by status. One of "upcoming", "past", "draft", or "all". Defaults to "upcoming". |
limit | number | Maximum number of meetings to return. Defaults to 20, maximum 100. |
Example Request
curl https://api.meetsynced.com/v1/meetings?filter=upcoming&limit=5 \
-H "Authorization: Bearer sk_live_your_api_key"Example Response
{
"data": [
{
"id": "mtg_abc123",
"title": "Weekly Sync",
"startTime": "2025-06-15T14:00:00Z",
"duration": "30 mins",
"participants": ["alice@acme.com", "bob@acme.com"],
"status": "confirmed"
}
],
"hasMore": false
}Create Meeting
POST
/v1/meetingsCreates a new meeting and optionally sends calendar invites to participants.
Body Parameters
| Parameter | Type | Description |
|---|---|---|
titlerequired | string | Title of the meeting. |
description | string | Optional description or agenda for the meeting. |
durationrequired | string | Duration of the meeting. One of "15 mins", "30 mins", "45 mins", "1 hour", "1.5 hours", or "2 hours". |
startTimerequired | string | ISO 8601 datetime for the meeting start (e.g., "2025-06-15T14:00:00Z"). |
participantsrequired | string[] | Array of email addresses for the meeting participants. |
sendInvites | boolean | Whether to send calendar invites to participants. Defaults to true. |
Example Request
curl -X POST https://api.meetsynced.com/v1/meetings \
-H "Authorization: Bearer sk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"title": "Product Review",
"description": "Review Q3 roadmap",
"duration": "1 hour",
"startTime": "2025-06-20T10:00:00Z",
"participants": ["pm@acme.com", "eng@acme.com"],
"sendInvites": true
}'Calendar invites
WhensendInvites is true, participants receive a Google Calendar or Outlook invite based on the organizer's connected calendar.Get Meeting
GET
/v1/meetings/:idRetrieves a single meeting by its ID.
Example Request
curl https://api.meetsynced.com/v1/meetings/mtg_abc123 \
-H "Authorization: Bearer sk_live_your_api_key"Example Response
{
"id": "mtg_abc123",
"title": "Weekly Sync",
"description": "Team standup",
"startTime": "2025-06-15T14:00:00Z",
"duration": "30 mins",
"participants": ["alice@acme.com", "bob@acme.com"],
"status": "confirmed",
"createdAt": "2025-06-10T09:00:00Z"
}Update Meeting
PATCH
/v1/meetings/:idUpdates an existing meeting. Only provided fields are changed.
Body Parameters
| Parameter | Type | Description |
|---|---|---|
title | string | Updated meeting title. |
description | string | Updated meeting description. |
duration | string | Updated duration. One of "15 mins", "30 mins", "45 mins", "1 hour", "1.5 hours", or "2 hours". |
startTime | string | Updated ISO 8601 start time. |
participants | string[] | Updated list of participant email addresses. |
sendInvites | boolean | Whether to send updated calendar invites. Defaults to true. |
Example Request
curl -X PATCH https://api.meetsynced.com/v1/meetings/mtg_abc123 \
-H "Authorization: Bearer sk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"title": "Weekly Sync (Updated)",
"startTime": "2025-06-15T15:00:00Z"
}'Updating past meetings
You cannot update meetings that have already ended. The API will return a 400 error if you attempt to modify a past meeting.