Reschedule Event
Move an event to a new date and time with automatic notifications
Reschedules an existing calendar event to a new date and time. The new time is provided in the `target_timezone` and converted to UTC for storage. Zyntro regenerates iCal files for all attendees and sends reschedule notification emails with the updated time (in each attendee's timezone), reschedule and cancel links, and the optional reschedule reason.
Requires `user_id` (your Zyntro user ID) in the JSON request body
Warning:
This endpoint uses `user_id` (your numeric Zyntro user ID) for authentication — not `api_key`. This is consistent with the cancel endpoint and the public booking UI.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
user_id |
body | string |
Yes | Your Zyntro user ID (numeric) |
event_id |
body | string |
Yes | The UUID of the event to reschedule |
new_date |
body | string |
Yes | New date in `YYYY-MM-DD` format |
new_time |
body | string |
Yes | New start time in `HH:MM` or `HH:MM:SS` format |
target_timezone |
body | string |
Yes | IANA timezone that the new_date and new_time are expressed in. Zyntro converts to UTC for storage. |
duration_minutes |
body | integer |
No | Event duration in minutes. Default: `30`. The new end time is calculated from the new start time + duration. |
reschedule_reason |
body | string |
No | Reason for rescheduling. Appended to the event description and included in notification emails. |
Request Body
Content-Type: application/json
Example
json
{
"user_id": "32",
"event_id": "e7f8a9b0-c1d2-3456-e7f8-a9b0c1d23456",
"new_date": "2026-04-10",
"new_time": "14:00",
"target_timezone": "America/New_York",
"duration_minutes": 30,
"reschedule_reason": "Conflict with another meeting."
}
Code Samples
bash
curl -X POST https://app.zyntrohq.com/public/calendar/processReschedule \
-H "Content-Type: application/json" \
-d '{"user_id": "32", "event_id": "e7f8a9b0-c1d2-3456-e7f8-a9b0c1d23456", "new_date": "2026-04-10", "new_time": "14:00", "target_timezone": "America/New_York", "duration_minutes": 30}'
Response
200
Event rescheduled
json
{
"data": {
"event_id": "e7f8a9b0-c1d2-3456-e7f8-a9b0c1d23456",
"new_end_time": "2026-04-10 18:30:00",
"new_start_time": "2026-04-10 18:00:00",
"notifications_sent": 3
},
"status": "success"
}
200
Error
json
{
"data": [
"Event not found"
],
"status": "error"
}
Info:
The `new_start_time` and `new_end_time` in the response are in **UTC** (as stored in the database). The notification emails sent to attendees show the time in each attendee's own timezone. iCal files are regenerated with the updated times and attached to the notification emails.
Tip:
The event status is set to `rescheduled` after this call. Notification emails include both a **Reschedule Again** link and a **Cancel Event** link, allowing attendees to take further action without contacting you directly.
Errors
| Code | Message | Resolution |
|---|---|---|
MISSING_USER_ID |
Missing service instance The user_id is missing. |
Include your user ID. |
MISSING_EVENT_ID |
Missing event ID The event_id is missing. |
Include the event UUID. |
MISSING_DATE |
Missing new date The new_date is missing. |
Provide the new date in YYYY-MM-DD format. |
MISSING_TIME |
Missing new time The new_time is missing. |
Provide the new time in HH:MM format. |
MISSING_TZ |
Missing timezone The target_timezone is missing. |
Provide an IANA timezone (e.g., America/New_York). |
NOT_FOUND |
Event not found No event with that ID exists. |
Verify the event_id. |
UPDATE_FAILED |
Failed to update event Database update failed. |
Retry the request. |