Screentime.ScheduleChanged
Emitted when a parent changes the screentime rules for a player in Family Connect: a daily limit, a quiet-hours window, or the break-reminder interval.
k-ID delivers Screentime.ScheduleChanged only to endpoints subscribed to it, and drops it for the rest without a delivery attempt or an error. Select it for your endpoint on the product's Developer Settings page. See Before you start.
The payload deliberately carries no rules. It's a cache-invalidation hint, not a diff. When you receive it, call GET /screentime/get-state for the session and replace your copy of the state. That keeps one source of truth for the rules and means you never have to merge a partial update.
Handling this event is what makes a parent's change take effect while the player is already in your product. Without it, a new bedtime or a raised limit is invisible to your product until the player's next session.
Fields
| Field | Type | Required | Description |
|---|---|---|---|
eventType | string | yes | Always "Screentime.ScheduleChanged" |
data | object | yes | Schedule change data |
data.sessionId | string (UUID) | yes | Session ID whose schedule changed |
data.productId | number | yes | Product ID |
Example
{
"eventType": "Screentime.ScheduleChanged",
"data": {
"sessionId": "b1a6482d-5242-4b4a-aa88-3fa52595a672",
"productId": 42
}
}
When it doesn't fire
The event goes to a session, so it's skipped when the player has no live session with your product. A parent who sets a schedule before the player has ever played sends no event; your product picks the rules up from GET /screentime/get-state at the start of the first session instead.
One schedule change produces at most one event. A schedule belongs to one player in one product, and k-ID resolves the single live session for that pair to notify, so there is no per-product fan-out to expect. When there is no live session, no event is sent at all.