Meetings

The Meetings API lets you list, create, retrieve, and update meetings on your Synced calendar.

List Meetings

GET/v1/meetings

Returns a list of meetings for the authenticated user.

Query Parameters

ParameterTypeDescription
filterstringFilter meetings by status. One of "upcoming", "past", "draft", or "all". Defaults to "upcoming".
limitnumberMaximum 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/meetings

Creates a new meeting and optionally sends calendar invites to participants.

Body Parameters

ParameterTypeDescription
titlerequiredstringTitle of the meeting.
descriptionstringOptional description or agenda for the meeting.
durationrequiredstringDuration of the meeting. One of "15 mins", "30 mins", "45 mins", "1 hour", "1.5 hours", or "2 hours".
startTimerequiredstringISO 8601 datetime for the meeting start (e.g., "2025-06-15T14:00:00Z").
participantsrequiredstring[]Array of email addresses for the meeting participants.
sendInvitesbooleanWhether 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

When sendInvites is true, participants receive a Google Calendar or Outlook invite based on the organizer's connected calendar.

Get Meeting

GET/v1/meetings/:id

Retrieves 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/:id

Updates an existing meeting. Only provided fields are changed.

Body Parameters

ParameterTypeDescription
titlestringUpdated meeting title.
descriptionstringUpdated meeting description.
durationstringUpdated duration. One of "15 mins", "30 mins", "45 mins", "1 hour", "1.5 hours", or "2 hours".
startTimestringUpdated ISO 8601 start time.
participantsstring[]Updated list of participant email addresses.
sendInvitesbooleanWhether 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.