POST
Calendar.Edit
Update an existing calendar appointment (appointments table). Same fields as Calendar.Add plus appointment_id. Syncs Google Calendar events (update/add/delete) for team members like dashboard editMeetingDataCommon. Alias route: Calendar.Update.
Permissions
- User must be logged in with a valid bearer token.
- Returned or changed records are limited by the user permissions, team access, folder access, and account settings.
Action
- Updates the requested Calendar record after validating permissions and input fields.
Push Service
Pushes event appointment.updated to users who should see this change.
Automation
No automation is run for this function.
Special Instructions
- Send the bearer token on protected calls with Authorization: Bearer YOUR TOKEN.
- Send parameters as POST body fields exactly as documented.
- Send date/time values in UTC Y-m-d H:i:s format when a date or datetime field is used.
Required Parameters
| Name | Type | Sample | Explanation |
|---|---|---|---|
appointment_idpost | int | 9001 | Appointment id to update. Aliases: id, appinment_id, a_id. |
titlepost | string | test add event | Event title. |
datepost | date | 2026-07-29 | Appointment date Y-m-d. Send date filters and date values as UTC Y-m-d H:i:s when the route accepts date/time; date-only table columns store the Y-m-d date part. |
start_timepost | time | 04:00 | Start time H:i. Send time values as H:i:s. If the route also has a date field, send that date as UTC Y-m-d H:i:s. |
Optional Parameters
| Name | Type | Sample | What it gives |
|---|---|---|---|
end_timepost | time | 04:30 | End time H:i. Send time values as H:i:s. If the route also has a date field, send that date as UTC Y-m-d H:i:s. |
durationpost | int | 30 | Duration minutes. |
appoinment_colorpost | string | red | Color label. |
customer_idpost | int | 108545 | Optional customer id. |
team_member_idpost | int | 14 | Primary team member. |
team_member_id_2post | int | 0 | Second team member. |
appoiment_addresspost | string | Office | Location. |
appoimenttextpost | string | Details | Details / notes. |
sync_google_calendarpost | int | 1 | Sync Google Calendar (default 1). Pass 0 to skip. |
Authentication
Send the bearer token returned by Login in the request header.
Authorization: Bearer YOUR TOKEN
Sample Request
{
"url": "\/app\/Calendar.Edit",
"method": "POST",
"headers": {
"Authorization": "Bearer YOUR TOKEN"
},
"body": {
"appointment_id": "9001",
"title": "test add event",
"date": "2026-07-29",
"start_time": "04:00",
"end_time": "04:30",
"appoinment_color": "red"
},
"url_user": "https:\/\/{user}.bull36.com\/app\/Calendar.Edit",
"url_domain": "https:\/\/{domain}\/app\/Calendar.Edit"
}Endpoint
POST /app/Calendar.Edit
POST https://{user}.bull36.com/app/Calendar.Edit
POST https://{domain}/app/Calendar.EditSample Output
{
"success": 1,
"message": "Appointment updated successfully",
"appointment_id": 9001,
"socket_event": "appointment.updated"
}JavaScript Example
const token = 'YOUR TOKEN';
const body = new URLSearchParams();
body.set('appointment_id', '9001');
body.set('title', 'test add event');
body.set('date', '2026-07-29');
body.set('start_time', '04:00');
body.set('end_time', '04:30');
const res = await fetch('/app/Calendar.Edit', { method: 'POST', headers: { Authorization: 'Bearer ' + token }, body });
console.log(await res.json());Error Example
{
"success": 0,
"message": "Appointment not found"
}