# Call Rescheduled Webhook

Webhook event triggered when a call is rescheduled in iClosed.io.

## Overview

The Call Rescheduled webhook is triggered whenever a previously booked call is rescheduled to a new time in your iClosed.io account. This event provides complete details about the rescheduled call, including the new timing, original timing, and rescheduling information.

## Event Details

| Property | Value |
|  --- | --- |
| **Event Type** | `callRescheduled` |
| **Trigger** | When a call is rescheduled to a different time |
| **Payload** | Complete call information with new and original timing details |


## Webhook Payload

The HTTP body is a single JSON object (not an array). It contains detailed information about the rescheduled call:

```json
{
  "event_type": {
    "uuid": 2,
    "kind": "Round Robin",
    "slug": "strategy-call",
    "name": "Strategy intro call",
    "duration": 30,
    "durationUnit": "MINUTES",
    "owner": {
      "type": "closer"
    },
    "type": "STRATEGY_EVENT"
  },
  "event": {
    "uuid": 168,
    "closerId": 5,
    "closerName": "Jamie Alvarez ",
    "closerEmail": "jamie.alvarez@example.com",
    "closerTimezone": "Asia/Karachi",
    "assigned_to": {
      "1": "Jamie Alvarez "
    },
    "extended_assigned_to": {
      "1": {
        "name": "Jamie Alvarez ",
        "email": "jamie.alvarez@example.com",
        "primary": true
      }
    },
    "utc_start_time": "2026-04-17T04:00:00.000Z",
    "utc_end_time": "2026-04-17T04:30:00.000Z",
    "start_time": "2026-04-17T04:00:00.000Z",
    "start_time_pretty": "09:00AM - Friday, April 17, 2026",
    "invitee_start_time": "2026-04-17T04:00:00.000Z",
    "invitee_start_time_pretty": "09:00AM - Friday, April 17, 2026",
    "end_time": "2026-04-17T04:30:00.000Z",
    "end_time_pretty": "09:30AM - Friday, April 17, 2026",
    "invitee_end_time": "2026-04-17T04:30:00.000Z",
    "invitee_end_time_pretty": "09:30AM - Friday, April 17, 2026",
    "created_at": "2026-04-09T09:19:54.875Z",
    "location": "+1 415 555 0192",
    "location_type": "phone",
    "eventLink": "https://app.iclosed.io/e/acme/strategy-call",
    "callPreviewId": "call_esiPJQAfxjJw",
    "type": "STRATEGY_CALL",
    "canceled": false,
    "canceler_name": null,
    "cancel_reason": null,
    "canceled_at": null,
    "old_start_time": "2026-04-09T10:30:00.000Z",
    "rescheduleLink": "https://app.iclosed.io/reschedulings/call_esiPJQAfxjJw",
    "cancelLink": "https://app.iclosed.io/cancellations/call_esiPJQAfxjJw",
    "setter": {
      "name": "Riley Chen",
      "firstName": "Riley",
      "lastName": "Chen",
      "email": "riley.chen@example.com",
      "setBy": {
        "firstName": "Riley",
        "lastName": "Chen",
        "email": "riley.chen@example.com"
      }
    }
  },
  "contactFields": {},
  "invitee": {
    "uuid": 239,
    "previewUrl": "https://app.iclosed.io/app/global-data/contacts?preview=contact_We1Ztdhvcii0",
    "referrer_url": "https://app.iclosed.io/e/acme/strategy-call",
    "ip_address": "::1",
    "callPreviewId": "call_esiPJQAfxjJw",
    "first_name": "Morgan",
    "last_name": "Lee",
    "name": "Morgan Lee",
    "email": "morgan.lee@example.com",
    "text_reminder_number": "+1 415 555 0192",
    "timezone": "Asia/Karachi",
    "created_at": "2026-04-09T09:19:54.875Z",
    "is_reschedule": true,
    "reschedule_reason": "Need to move the call after finance review on Tuesday.",
    "reschedule_by": "Jamie Alvarez (workspace admin)",
    "canceled": false,
    "canceler_name": null,
    "cancel_reason": null,
    "canceled_at": null
  },
  "questions_and_answers": [
    {
      "question": "Email Address",
      "answer": "morgan.lee@example.com"
    },
    {
      "question": "Phone Number",
      "answer": "+1 415 555 0192"
    },
    {
      "question": "Full Name",
      "answer": "Morgan Lee"
    },
    {
      "question": "Goals for the next 90 days",
      "answer": "We need to cut demo no-shows by half this quarter."
    },
    {
      "question": "Check box",
      "answer": "1, 3"
    },
    {
      "question": "Internal reference code"
    },
    {
      "question": "Date and Time",
      "answer": "2026-04-10T09:14:00.000Z"
    },
    {
      "question": "Team size (people)"
    },
    {
      "question": "New Multi Select",
      "answer": "b"
    },
    {
      "question": "Disqualify",
      "answer": "No"
    }
  ],
  "questions_and_responses": {
    "1_question": "Email Address",
    "1_response": "morgan.lee@example.com",
    "2_question": "Phone Number",
    "2_response": "+1 415 555 0192",
    "3_question": "Full Name",
    "3_response": "Morgan Lee",
    "4_question": "Goals for the next 90 days",
    "4_response": "We need to cut demo no-shows by half this quarter.",
    "5_question": "Check box",
    "5_response": "1, 3",
    "6_question": "Internal reference code",
    "6_response": 123,
    "7_question": "Date and Time",
    "7_response": "2026-04-10T09:14:00.000Z",
    "8_question": "Team size (people)",
    "8_response": 123,
    "9_question": "New Multi Select",
    "9_response": "b",
    "10_question": "Disqualify",
    "10_response": "No",
    "Email Address": "morgan.lee@example.com",
    "Phone Number": "+1 415 555 0192",
    "Full Name": "Morgan Lee",
    "Goals for the next 90 days": "We need to cut demo no-shows by half this quarter.",
    "Check box": "1, 3",
    "Internal reference code": 123,
    "Date and Time": "2026-04-10T09:14:00.000Z",
    "Team size (people)": 123,
    "New Multi Select": "b",
    "Disqualify": "No"
  },
  "tracking": {
    "first_utm_term": "strategy consultation",
    "first_utm_source": "google",
    "first_utm_medium": "cpc",
    "first_utm_content": "hero_cta_variant_b",
    "first_utm_campaign": "q2_2026_demo_requests",
    "utm_term": "sales scheduling software",
    "utm_source": "linkedin",
    "utm_medium": "paid_social",
    "utm_content": "carousel_ad_3",
    "utm_campaign": "b2b_outbound_apr",
    "utmKey_0": "gclid",
    "utmValue_0": "EAIaIQobChMIexampleValue123",
    "utmKey_1": "li_fat_id",
    "utmValue_1": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "utmKey_2": "referrer_domain",
    "utmValue_2": "newsletter.partner.io",
    "utmKey_3": "landing_path",
    "utmValue_3": "/events/strategy-call",
    "utmKey_4": "experiment_id",
    "utmValue_4": "exp_booking_flow_v2"
  },
  "call_booked_from": "GLOBAL_DATA_RESCHEDULING_MODAL",
  "hookType": "Call rescheduled"
}
```

## Key Differences from Call Booked

| Field | Description |
|  --- | --- |
| `old_start_time` | The original start time before rescheduling |
| `is_reschedule` | Set to `true` on the `invitee` object |
| `reschedule_reason` | Optional reason for the reschedule |
| `canceled` | Remains `false` — the call is rescheduled, not cancelled |
| `hookType` | Set to `"Call rescheduled"` to distinguish from booking events |


## Key Fields Explained

### Event Type Information

The `event_type` object contains configuration details of the event type:

| Field | Description |
|  --- | --- |
| `uuid` | Unique identifier for the event type |
| `kind` | Booking strategy (e.g., `"Round Robin"`, `"Direct Assignment"`) |
| `slug` | URL-friendly event name |
| `name` | Display name of the event |
| `duration` | Call duration (typically unchanged) |
| `owner.type` | Type of owner (`closer`, `setter`, etc.) |


### Event Details

The `event` object contains information about the rescheduled call:

| Field | Description |
|  --- | --- |
| `uuid` | Unique call identifier (same as original booking) |
| `old_start_time` | Original start time before rescheduling |
| `start_time` / `end_time` | New scheduled times |
| `start_time_pretty` / `end_time_pretty` | Human-readable new times |
| `utc_start_time` / `utc_end_time` | UTC timestamps for the new times |
| `canceled` | Remains `false` (not cancelled) |
| `assigned_to` | Team member assignment (may change) |
| `type` | Call type (`STRATEGY_CALL`, `DISCOVERY_CALL`, etc.) |


### Invitee Information

The `invitee` object contains details about the person who rescheduled:

| Field | Description |
|  --- | --- |
| `is_reschedule` | Set to `true` indicating this is a reschedule |
| `reschedule_reason` | Reason for rescheduling (if provided) |
| `canceled` | Remains `false` (not cancelled) |
| `previewUrl` | Link to view the contact in iClosed.io |
| `name` | Full name of the invitee |
| `email` | Invitee's email address |
| `text_reminder_number` | Phone number for SMS reminders |
| `timezone` | Invitee's timezone |


### Questions and Responses

| Field | Description |
|  --- | --- |
| `questions_and_answers` | Original booking form responses in array format |
| `questions_and_responses` | Object format of the same responses |


### Tracking Information

The `tracking` object contains the original UTM parameters and attribution data preserved from the original booking.

## Rescheduling Reasons

Common rescheduling reasons include schedule conflicts, better availability found, time zone confusion, needing more preparation time, technical issues, personal emergencies, higher-priority business meetings, and travel delays.

## Use Cases

This webhook is useful for:

- **Calendar Updates** – Update calendar events with the new times
- **CRM Synchronization** – Update opportunity records with new timing
- **Team Notifications** – Alert team members about schedule changes
- **Analytics Tracking** – Monitor rescheduling patterns and frequency
- **Customer Communication** – Send confirmation of new timing
- **Resource Management** – Update team member availability
- **Reporting** – Track rescheduling metrics and team performance
- **Workflow Automation** – Trigger follow-up actions for rescheduled calls


## Response Requirements

Your webhook endpoint should:

- Return a `2xx` status code to acknowledge receipt
- Respond within **5 seconds** to avoid retries
- Handle duplicate events (idempotency)
- Log the call `uuid` and rescheduling details for debugging
- Compare `old_start_time` with the new `start_time` to confirm changes


## Best Practices

1. **Time Comparison** – Use `old_start_time` to identify what changed
2. **Reason Tracking** – Monitor `reschedule_reason` for patterns
3. **Calendar Management** – Update all calendar entries immediately
4. **Team Communication** – Notify assigned team members promptly
5. **Customer Confirmation** – Send confirmation of new timing
6. **Availability Updates** – Update team member availability slots
7. **Follow-up Timing** – Adjust any automated follow-up sequences
8. **Data Consistency** – Ensure all systems reflect the new timing


## Rescheduling Workflows

### When Invitee Reschedules

- Send confirmation of new timing
- Update calendar entries
- Notify assigned team member
- Adjust any automated reminders
- Update CRM with new timing
- Trigger rescheduling analytics


### When Host Reschedules

- Send apology and explanation
- Offer alternative times if needed
- Update internal calendars
- Notify relevant team members
- Track rescheduling reasons
- Update availability management


## Time Zone Considerations

| Field | Usage |
|  --- | --- |
| `timezone` | Use the invitee's timezone for displaying local times |
| `utc_start_time` | Use UTC times for system integrations |
| `start_time_pretty` | Use the pretty format for customer-facing communications |


Always handle cases where the invitee's timezone itself may have changed between the original booking and the reschedule.

## Rescheduling vs. Cancellation

|  | Rescheduled | Cancelled |
|  --- | --- | --- |
| `canceled` | `false` | `true` |
| `is_reschedule` | `true` | not present |
| Original data | Preserved | Preserved |
| Next step | New time confirmed | New booking required |


Monitor both `callRescheduled` and `callCancelled` webhooks and use the `canceled` flag to route events to the appropriate workflow. Track both metrics separately for accurate business intelligence.