Create Event
Create a calendar event with attendees, video meeting, and invite notifications
Creates a calendar event with full attendee management. For video meetings, Zyntro auto-provisions a Google Meet space (if the member has Google Meet connected). Sends iCal invite emails to all attendees with reschedule and cancel links. Event times are converted to UTC for storage.
Requires a valid `api_key` in the JSON request body
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
api_key |
body | string |
Yes | Your Zyntro API key |
org_id |
body | string |
Yes | Your organization UUID |
member_id |
body | string |
Yes | The member UUID (event organizer) |
contact_id |
body | string |
Yes | The primary contact UUID for the event |
event_data |
body | object |
Yes | Event details object. See Event Data Fields below. |
Request Body
Content-Type: application/json
Example
json
{
"org_id": "YOUR_ORG_ID",
"api_key": "YOUR_API_KEY",
"member_id": "YOUR_MEMBER_ID",
"contact_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"event_data": {
"calendar_id": "3d21426f-9042-40d9-a0b2-94037f551d51",
"event_title": "Discovery Call",
"attendee_data": [
{
"contact_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"contact_role": "participant",
"contact_email": "[email protected]",
"contact_fname": "Jane",
"contact_lname": "Smith",
"contact_timezone": "America/New_York"
}
],
"location_type": "video",
"event_end_time": "2026-04-07 10:30:00",
"event_timezone": "America/New_York",
"event_start_time": "2026-04-07 10:00:00",
"event_description": "Initial discovery call to discuss requirements."
}
}
Code Samples
bash
curl -X POST https://app.zyntrohq.com/public/calendar/createEvent \
-H "Content-Type: application/json" \
-d '{
"api_key": "YOUR_API_KEY",
"org_id": "YOUR_ORG_ID",
"member_id": "YOUR_MEMBER_ID",
"contact_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"event_data": {
"calendar_id": "3d21426f-9042-40d9-a0b2-94037f551d51",
"event_title": "Discovery Call",
"event_start_time": "2026-04-07 10:00:00",
"event_end_time": "2026-04-07 10:30:00",
"event_timezone": "America/New_York",
"location_type": "video",
"attendee_data": [{
"contact_email": "[email protected]",
"contact_fname": "Jane",
"contact_lname": "Smith",
"contact_timezone": "America/New_York",
"contact_role": "participant"
}]
}
}'
Response
200
Event created with video meeting
json
{
"data": {
"event_id": "e7f8a9b0-c1d2-3456-e7f8-a9b0c1d23456",
"attendees": [
{
"contact_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"contact_email": "[email protected]",
"contact_fname": "Jane",
"contact_lname": "Smith"
}
],
"meeting_data": {
"cancel_url": "https://app.zyntrohq.com/public/calendar/cancel/32/e7f8a9b0-c1d2-3456-e7f8-a9b0c1d23456",
"meeting_id": "m1n2o3p4-q5r6-7890-stuv-wx1234567890",
"meeting_url": "https://meet.google.com/abc-defg-hij",
"meeting_type": "google_meet",
"reschedule_url": "https://app.zyntrohq.com/public/calendar/reschedule/32/e7f8a9b0-c1d2-3456-e7f8-a9b0c1d23456"
}
},
"status": "success"
}
200
Error
json
{
"data": [
"Missing event start time"
],
"status": "error"
}
Info:
For video events, the response includes `meeting_data` with the Google Meet URL, meeting ID, and reschedule/cancel URLs. The member must have Google Meet connected in **Settings > Integrations** for auto-provisioning to work. If not connected, an error is returned.
Tip:
Event times in the request should be in the `event_timezone`. Zyntro converts them to UTC for storage. The iCal invites sent to attendees are converted back to the event's original timezone. Each attendee's notification email shows the time in their own timezone if `contact_timezone` is provided.
Errors
| Code | Message | Resolution |
|---|---|---|
MISSING_API_KEY |
Missing service instance The api_key is missing. |
Include your API key. |
INVALID_API_KEY |
Invalid API Key No active user matches. |
Verify your key. |
MISSING_FIELDS |
Missing organization/member/contact ID or event data Required fields are missing. |
Include all required fields. |
MISSING_EVENT_FIELDS |
Missing calendar ID / event start time / event end time Required event_data fields are missing. |
Include calendar_id, event_start_time, and event_end_time. |
MEMBER_NOT_FOUND |
Member not found The member_id does not exist. |
Use a valid member ID from Fetch Members. |
NO_MEET_INTEGRATION |
No Google Meet integration found for this member Video event requested but member has no Google Meet connected. |
Connect Google Meet in **Settings > Integrations**, or set location_type to `in_person`. |
INSERT_FAILED |
Error inserting event Database insert failed. |
Check the error details and retry. |