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

NameTypeSampleExplanation
appointment_id
post
int9001Appointment id to update. Aliases: id, appinment_id, a_id.
title
post
stringtest add eventEvent title.
date
post
date2026-07-29Appointment 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_time
post
time04:00Start 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

NameTypeSampleWhat it gives
end_time
post
time04:30End 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.
duration
post
int30Duration minutes.
appoinment_color
post
stringredColor label.
customer_id
post
int108545Optional customer id.
team_member_id
post
int14Primary team member.
team_member_id_2
post
int0Second team member.
appoiment_address
post
stringOfficeLocation.
appoimenttext
post
stringDetailsDetails / notes.
sync_google_calendar
post
int1Sync 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.Edit

Sample 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"
}