Contents
On this page

Update Meeting - Plugixa CRM

PUT /plugixa-crm/v1/meetings/{id}

Change some of a meeting’s fields. Only the fields you send change. PATCH works the same way.

Any user with access to Plugixa CRM. With Plugixa CRM Pro roles, the user’s role must also allow editing this meeting.

status: completed does not stamp completed_at. Use Complete Meeting to close a meeting properly.

Request

PUT https://your-site.example/wp-json/plugixa-crm/v1/meetings/40

Path parameters

Name Type Description
id integer The meeting’s id

Request body

Content type: application/json

Field Type Required Description
name string No Sent blank, it is stored blank.
status string No planned, completed or canceled. Anything else is stored as planned.
location string No Where it takes place. Empty is stored as null.
description string No HTML. Tags not allowed in post content are stripped.
date_start string No Start, in the site’s time zone. Reminders count back from it.
date_end string No End, in the site’s time zone. Must not be before date_start.
is_all_day boolean No Defaults to false.
color string No red, pink, purple, indigo, blue, teal, green, lime, amber, orange or grey. Anything else is stored as null.
parent_type string No contact, account, opportunity or lead. Needs parent_id.
parent_id integer No The record it belongs to. Not checked. If either half is missing or invalid, both are stored as null.
assigned_user_id integer No The WordPress user who owns the meeting. 0 or nothing means none.
reminders array No Seconds before the start, as integers or objects with seconds_before. Replaces the meeting’s reminders. Needs the Reminders app.
participants array No Objects with type (contact, lead or user) and id. Replaces the whole list. Invalid entries are skipped.
modified_at string No The modified_at you read. When sent, the update is refused if the meeting changed since: see Avoiding lost updates.

A field you leave out keeps its value. Sending only one of parent_type and parent_id clears both. date_start and date_end are wall-clock times in the site’s time zone, as YYYY-MM-DD HH:MM:SS. You can also send YYYY-MM-DD HH:MM, a bare date, or an ISO 8601 time with an offset or Z, which is converted to the site’s time zone. Anything else is stored as null.

{
  "date_start": "2026-11-27 10:00:00",
  "date_end": "2026-11-27 11:00:00"
}

Responses

200 OK. data is the updated meeting.

{
  "success": true,
  "data": {
    "id": 40,
    "name": "Quarterly review",
    "status": "planned",
    "location": "Seattle office",
    "description": "",
    "date_start": "2026-11-27 10:00:00",
    "date_end": "2026-11-27 11:00:00",
    "is_all_day": 0,
    "color": "blue",
    "parent_type": "account",
    "parent_id": 12,
    "account_id": 12,
    "assigned_user_id": 3,
    "completed_at": null,
    "created_by": "1",
    "modified_by": "1",
    "created_at": "2026-11-12 09:30:00",
    "modified_at": "2026-11-12 10:15:00",
    "deleted_at": null,
    "parent_name": "Northwind Traders",
    "assigned_user_name": "Jordan Lee",
    "participants": [
      {
        "id": 15,
        "meeting_id": 40,
        "participant_type": "contact",
        "participant_id": 31,
        "acceptance": "none",
        "is_organizer": 0,
        "created_at": "2026-11-12 09:30:00",
        "participant_name": "Maria Anders"
      },
      {
        "id": 16,
        "meeting_id": 40,
        "participant_type": "user",
        "participant_id": 3,
        "acceptance": "none",
        "is_organizer": 0,
        "created_at": "2026-11-12 09:30:00",
        "participant_name": "Jordan Lee"
      }
    ],
    "reminders": [
      {
        "id": 9,
        "seconds_before": 3600,
        "sent": 0
      }
    ]
  }
}
Field Type Meaning
data.id integer The meeting’s id
data.status string planned, completed or canceled
data.location string|null Where it takes place
data.date_start string|null Site time zone
data.date_end string|null Site time zone

Errors

Status Code When
404 plugixa_crm_not_found No meeting with that id, or it is in the trash.
422 plugixa_crm_invalid_dates date_end would be before date_start.
409 plugixa_crm_conflict You sent modified_at and the meeting changed since.

Plus the errors every endpoint can return.

Examples

curl -s -X PUT "https://your-site.example/wp-json/plugixa-crm/v1/meetings/40" \
  -u "admin:$WP_APP_PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{"date_start":"2026-11-27 10:00:00","date_end":"2026-11-27 11:00:00"}'
<?php
$ch = curl_init('https://your-site.example/wp-json/plugixa-crm/v1/meetings/40');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST  => 'PUT',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_USERPWD        => 'admin:' . getenv('WP_APP_PASSWORD'),
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'date_start' => '2026-11-27 10:00:00',
        'date_end'   => '2026-11-27 11:00:00',
    ]),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
const auth = 'Basic ' + btoa(`admin:${process.env.WP_APP_PASSWORD}`);
const response = await fetch('https://your-site.example/wp-json/plugixa-crm/v1/meetings/40', {
  method: 'PUT',
  headers: {
    'Authorization': auth,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    date_start: '2026-11-27 10:00:00',
    date_end: '2026-11-27 11:00:00',
  }),
});
const { data } = await response.json();

Quick Links

Share