What is Scheduler module
The Scheduler module is part of the Proview SDK, exposed asProview.scheduler. It provides a candidate-facing interface for managing interview scheduler workflows with integrated authentication.
Once initialized, it lets your application:
- Fetch meetings — retrieve a candidate’s scheduled interviews and their current state.
- Respond to interviews — accept, decline, propose a new time, or submit availability on behalf of the candidate.
- Render scheduler UI — mount a prebuilt scheduler interface in
inline,sidebar, ormodallayout. - React to state changes — subscribe to events for phase transitions, route changes, and errors.
locale option.
Quickstart
All async methods support both Promises and an optional callback. This walkthrough uses Promises. See Callback Signature for the callback form.
1. Initialize credential
The SDK supports Firebase as a credentialing provider for authentication.2. Initialize scheduler
CallProview.scheduler.init() with the Firebase credential. The SDK authenticates the user and makes the user object available globally at Proview.user.
3. Fetch meetings
4. Fetch state for a specific meeting
5. Respond to an interview
Accept:6. Render the scheduler UI
Mount the scheduler UI into any container element. Three layout modes are supported:inline, sidebar, and modal.
7. Navigate programmatically
Usescheduler.navigate() to trigger a view change from outside the UI:
mounted.setView() to change the view from the mounted instance directly:
8. Listen to events
on() returns an unsubscribe function, useful for cleanup in component lifecycles:
9. Teardown
When done, unmount the UI and destroy the session:API Reference
Proview.scheduler.init(input)
Creates a scheduler session.
Input
SchedulerSession
Proview.user after initialization.
User Object
After initializing the scheduler module,Proview.user provides a Firebase-compatible user object accessible globally.
User Interface
Firebase Authentication
Proview.auth.FirebaseAuthStrategy(config)
Creates a Firebase authentication credential for use with the Proview SDK modules.
Input
FirebaseAuthStrategy
A credential object that can be passed to any Proview SDK module initialization.
Example:
fetchMeetings(cb?)
Returns all meetings for the candidate.
| Input | None |
| Promise | Promise<MeetingSummary[]> |
| Callback | (error: SchedulerError | null, meetings?: MeetingSummary[]) => void |
fetchMeeting(meetingId, cb?)
Returns the current scheduler state for one meeting.
| Input | meetingId: string |
| Promise | Promise<SchedulerState | null> |
| Callback | (error: SchedulerError | null, state?: SchedulerState | null) => void |
acceptMeeting(payload, cb?)
Accepts a specific interview within a meeting.
Input
| Promise | Promise<SchedulerState> |
| Callback | (error: SchedulerError | null, state?: SchedulerState | null) => void |
declineMeeting(payload, cb?)
Declines a specific interview within a meeting.
Input
| Promise | Promise<SchedulerState> |
| Callback | (error: SchedulerError | null, state?: SchedulerState | null) => void |
proposeNewTime(payload, cb?)
Submits a candidate’s preferred alternative time slot.
Input
| Promise | Promise<SchedulerState> |
| Callback | (error: SchedulerError | null, state?: SchedulerState | null) => void |
setAvailability(payload, cb?)
Saves the candidate’s general availability for scheduler. Availability is candidate-scoped, not tied to a specific meeting. The meetingId provides session context for the operation.
Input
| Promise | Promise<SchedulerState> |
| Callback | (error: SchedulerError | null, state?: SchedulerState | null) => void |
mount(options)
Mounts the scheduler UI into a host element.
Input
MountedSchedulerUi
navigate(view, options)
Navigates the mounted UI to a target view. Equivalent to mounted.setView() but called on the session rather than the mounted instance.
view | SchedulerView |
options | { meetingId: string } |
| Returns | void |
getCurrentView()
Returns the currently active view name.
| Returns | SchedulerView |
on(event, handler) / off(event, handler)
Subscribes or unsubscribes from scheduler events. on() returns an unsubscribe function as a convenience alternative to calling off().
Event names and payloads
| Event | Payload |
|---|---|
state.changed | { previous: SchedulerState; current: SchedulerState; source: 'command' | 'remote' } |
ui.route.changed | { from: SchedulerView | null; to: SchedulerView; mode: 'memory' | 'host_v8'; meetingId?: string } |
ui.rendered | { view: SchedulerView; mode: UiMode; containerId?: string } |
session.error | SchedulerError |
session.destroyed | { meetingId: string; participantId: string; destroyedAt: string } |
destroy()
Cleans up the scheduler session and all event listeners. Call mounted.unmount() first if the UI is still mounted.

