Skip to main content

Overview

The reschedule endpoint moves an existing meeting to a new time. Crucially, it records why the meeting was rescheduled so the AI can learn and avoid similar issues in the future.

Authentication

Requires Platform API Key in the X-API-Key header.

Request

POST https://api.syncline.run/v1/meetings/{meeting_id}/reschedule

Path Parameters

meeting_id
string
required
The meeting ID returned from the original schedule call

Request Body

meeting_id
string
required
Same as path parameter (for consistency)
requested_by
string
required
Email of person requesting the reschedule
reason
string
required
Why the meeting is being rescheduled. The AI learns from this!Example reasons:
  • “Too early in the morning”
  • “Too late in the day”
  • “Prefer to avoid Fridays”
  • “Need more preparation time”
  • “Conflicts with another meeting”
preferred_time_range
object
Optional preferred date range for new meeting
{
  "start": "2025-01-25T00:00:00Z",
  "end": "2025-01-27T00:00:00Z"
}

Example Request

{
  "meeting_id": "evt_7d8f9e3a2b1c",
  "requested_by": "alice@example.com",
  "reason": "Too early in the morning - prefer afternoon slots"
}

Response

Success Response (200 OK)

{
  "success": true,
  "new_meeting_id": "new_evt_7d8f9e3a2b1c",
  "new_meeting_time": "2025-01-23T14:00:00Z",
  "reasoning": "System learned from reschedule reason and selected new optimal time",
  "learned_from": "User prefers later times - future bookings will avoid early morning slots"
}

Response Fields

success
boolean
Whether reschedule succeeded
new_meeting_id
string
ID of the newly scheduled meeting
new_meeting_time
string
ISO 8601 timestamp of new meeting
reasoning
string
AI’s explanation for the new time choice
learned_from
string
What the system learned from this reschedule to improve future scheduling

How AI Learning Works

When you reschedule with a reason, the system:

1. Pattern Recognition

Analyzes the reason text for patterns:
  • “too early” → Deprioritizes morning slots for this user
  • “too late” → Deprioritizes evening slots
  • “Friday” → Reduces Friday slot scores
  • “back-to-back” → Increases buffer time importance

2. Score Adjustment

Updates the user’s SmartWeights:
{
  "time_of_day_preference": {
    "morning": 0.6,    // Reduced from reschedule
    "afternoon": 1.2,  // Increased
    "evening": 0.8
  },
  "day_of_week_preference": {
    "friday": 0.7      // Reduced if Friday mentioned
  }
}

3. Future Application

Next time this user needs a meeting:
  • Morning slots get lower scores
  • Afternoon slots get boosted
  • AI naturally gravitates toward preferred times

Example: Learning Loop

// First meeting: AI picked 9am (high score at the time)
const meeting1 = await scheduleAuto({
  attendees: ['alice@example.com', 'bob@example.com'],
  title: 'Sync'
});
// Scheduled for 9:00am

// User reschedules with reason
await reschedule({
  meeting_id: meeting1.meeting_id,
  requested_by: 'alice@example.com',
  reason: 'Too early - I prefer afternoons'
});
// → System learns: Alice prefers afternoons

// Next meeting: AI now prioritizes afternoon
const meeting2 = await scheduleAuto({
  attendees: ['alice@example.com', 'charlie@example.com'],
  title: 'Another Sync'
});
// Scheduled for 2:00pm ✓ (learned preference)

Best Practices

Provide Detailed Reasons

Bad: "Conflict" Good: "Too early in the morning - I'm most focused after 11am" The more detail in the reason, the better the AI can learn.

Consistent Language

If your users reschedule for similar reasons, use consistent phrasing:
  • “Too early in the morning”
  • “Too late in the afternoon”
  • “Prefer to avoid Mondays”
This helps pattern recognition work better.

Track Learning Outcomes

Monitor the learned_from field to see what patterns the AI is picking up. Share this with users so they understand their preferences are being learned.

Auto Schedule

Schedule with AI learning

Cancel Meeting

Cancel a meeting