On-Call Optimizer is a SaaS application designed to work with any modern web browser. Off-line access is not supported.
For the best experience it is strongly recommended to integrate On-Call Optimizer with both an on-call product (e.g. PagerDuty) for each schedule and a calendar provider (e.g. Google) for each member
Authentication
All users are required to login via OIDC using one of the following identity providers. Username and password based login is not supported.
Google
Microsoft
Additional OIDC providers can be supported upon request.
Common Use-Cases
To begin experiencing the benefits of On-Call Optimizer start with one of these commonly used guides:
Learn more about the key concepts and operation of an On-Call Optimizer maintained on-call schedule.
1 - Organization set-up
Guidelines for setting up your organization’s home in On-Call Optimizer
Every user and schedule in On-Call Optimizer belongs to an organization. The metadata provided by the identity provider
used to login supplies the details used to associate each user to the correct organization.
The primary domain name associated with an organization is shown as the organization’s name in On-Call Optimizer.
Step 1: Create an On-Call Optimizer organization
To create an On-Call Optimizer organization simply login with your chosen identity provider.
The first user to login to On-Call Optimizer from a particular organization will trigger the creation of the organization and will become the initial
Organization Admin.
If you find you are logging into an already existing organization when you were expecting to be the first user to create it, you can view the users in the organization
using the link in the profile menu in the top-right corner of the page. Existing organization admins will be listed first.
There’s no need to set-up billing until you’re consistently using On-Call Optimizer to generate your schedules.
We’ll be in touch before you reach that point to make sure your trial is going smoothly and we’ll let you know when it’s time to upgrade as part of that conversation
once we’re confident you’re getting the best out of On-Call Optimizer. Easy!
Once the organization has been created, the next step is to create a connection to your existing On-Call Product (e.g. Pagerduty).
Step 2: Connect to your existing on-call product
Connecting your On-Call product to On-Call Optimizer enables shift assignments generated by On-Call Optimizer to be exported into your existing schedules and speeds up
the process of configuring schedules in On-Call Optimizer by importing the existing configuration and members for each schedule.
Select On-Call Products from the side bar.
Click the Create new connection button.
Click on the logo of the On-Call Product you are connecting to.
Enter your API Key in the provided field and click Continue
It may take a few moments for the connection to be established after which you’ll see a list of the scheduled available from the connected product displayed.
Step 3: Integrate your first schedule
Congratulations on getting your on-call product connected! Now you’re ready to integrate your first schedule with On-Call Optimizer.
This is an easy process. One that you’ll likely need to follow several times as more and more schedules begin to experience On-Call Optimizer’s benefits, so we’ve put the
instructions into their own guide Integrate an existing schedule with On-Call Optimizer which you can bookmark
for easy reference in future.
The process is quick to get started, but may take some time in the subsequent steps while you wait for each member to login to On-Call Optimizer and
link their calendar.
Next Steps
To further integrate On-Call Optimizer into your organization we recommend continuing with the following guides:
Connect an existing on-call product schedule to On-Call Optimizer
Ensure you have completed the organization set-up and established a connection
with an on-call product before startig this guide.
Overview
For teams new to On-Call Optimizer, the following four steps provide a recommended path to
integrating your existing schedule:
Set-up the link between your existing schedule and an On-Call Optimizer schedule. As part of this step you will configure a future date for On-Call Optimizer to start assigning shifts from and generate invitations to members to join On-Call Optimizer.
Each member has time to accept the invitation, link their calendar to On-Call Optimizer and add availability information.
Once all members are set-up, the first assignment for the schedule can occur. You will have the opportunity manually review and confirm everything is working as expected.
Finally, when the team is comfortable with how the schedule is operating, configure On-Call Optimizer to automatically confirm and export assignments on a rolling basis.
Teams already experienced with On-Call Optimizer, can skip or shorten the time spent on
steps 2 and 3 while still following the same overall process to link additional schedules.
What you need
To successfully complete this guide, you will need:
An existing on-call schedule in a connected on-call product.
Schedule Admin: 5-10 minutes to complete the initial setup and invitation process in step 1,
and additional time to review and confirm the assignment in step 3.
Each team member: 5-10 minutes to link their calendar and set-up availability information
during step 2.
Changes to your existing schedule
You will have full control over when and how each action On-Call Optimizer takes occurs.
Your existing schedule will not change in any way until you explicitly initiate the export of
the first assignment in step 3.
Notifications generated
You can choose to send new members an invitation to join On-Call Optimizer during step 1.
You (and any other schedule admins) will receive a notification when the first assignment
is ready for review.
When you confirm the first assignment in step 3, each member assigned new shifts will receive
a notification detailing their shifts.
Ready to begin?
To get started, select Step 1: Set-up schedule below.
If anything is unclear, or your would like some assistance feel free to reach out to help@oncall-optimizer.com.
2.1 - Step 1: Set-up schedule
Integration of a schedule begins with On-Call Optimizer importing key
configuration details from the existing schedule.
Select existing schedule
Click ‘On-Call Products’ in the menu and select the connection to the product where your
existing schedule exists from the displayed list.
From the list of all existing schedules, find the row corresponding to the schedule
you want to integrate with On-Call Optimizer and click
Create On-Call Optimizer Schedule in the right-most column.
For connections with many available schedules, you can use the search box to filter the table.
On-Call Optimizer supports primary and secondary assignees using a single schedule
configuration. When linking to a product like Pagerduty which requires two independent
schedules for primary/secondary roles, select the schedule corresponding to the primary
assignee in this step.
Configure shift specifications
On-Call Optimizer will show the time zone and shift configuration that have been detected from the source On-Call Product.
If the listed shifts do not match your desired configuration you can alter them now (e.g. to add a secondary assignee). Refer to the schedule configuration docs for further information.
Once you are happy with the configuration shown, click Continue to proceed to Members.
Member list
Review the list of members imported from the linked schedule. Select the appropiate role
and assignability status for each member. For more information on these options, refer to
the schedule members docs.
Click Create to finish linking the schedule. On-Call Optimizer will send invitations to any
members who do not yet have an On-Call Optimizer account unless you uncheck the
Auto-send invitation emails option above the member list.
Next Steps
Your schedule is now linked. The confirmation page shows when the first assignment for the schedule will take place.
We’ll come back and look at how the first assignment will work in step 3, first, each member needs to link their calendar to
On-Call Optimizer to provide their availability information.
After configuring the schedule it’s time to ensure each member of the schedule has a calendar linked to provide availability information
for On-Call Optimizer to use when choosing which shifts to assign to them.
Member Status
The Members tab of the schedule provides you with a quick summary of the status of each member via the icons in the first two columns. The Invite? column
shows whether an On-Call Optimizer account exists for the member. The calendar icon column shows whether availability information is available for the member.
Hover over each icon for an explanation of the status or refer to the schedule member docs.
Target State
To begin Step 3 each assignable member needs two green check marks in their row
(as shown in the screenshot below), indicating that they have signed in to On-Call Optimizer and configured a calendar to provide availability information.
Members missing a green check mark should be instructed to follow the steps below.
Assignments will be generated for every member listed as assignable, even if they have not yet logged in to On-Call Optimizer or configured a calendar.
Responding to an invitation
Invitations to join On-Call Optimizer will arrive at the specified email address of the member via an email.
Click the link containing an invitation code to respond, which will require logging in to On-Call Optimizer.
After logging in, click the button to accept the invitation.
Linking a calendar
Once the invitation has been accepted, you will be prompted to link a calendar.
The welcome screen will provide a list of available calendar providers.
Click the button for the desired provider to begin the connection process.
The same options are available by selecting the Calendars menu item, and then clicking Add Calendar Connection button at the bottom of the page.
Authentication
After selecting the calendar provider an authorization flow will occur for Google and Outlook calendars, or a prompt for the ICS URL will appear and must
be completed.
For more information on the authorization or configuration process please refer to the full calendar documentation.
Calendar Selection
When multiple calendars are available on the connection you will be asked to select which calendars On-Call Optimizer will process for availability events.
For each calendar select whether or not On-Call Optimizer should process it for availability information.
Click Save when done to confirm these choices.
Calendar Operation
On-Call Optimizer regularly scans linked calendars for new or changed availability information and uses the latest available information to assign
new on-call shifts.
For more details on how to structure calendar events for On-Call Optimizer to recognize, please refer to the event filtering documentation.
Next Steps
When all members have configured their calendar connections you’re ready to proceed.
Now that all members have a linked calendar, it’s time to generate the first shift assignment!
Background
On-Call Optimizer’s schedule lifecycle regularly assigns new shifts so that a
configured number of days (the horizon) of shifts into the future are assigned.
The first assignment for a new schedule takes place 7 days after it is created (providing time for users to be invited and link their calendars first),
and uses a default horizon of 30 days. This means the first shift assigned by On-Call Optimizer will start in around 37 days time
(give or take a few days depending on your shift configuration).
Existing shifts from configured destination schedules will be imported into On-Call Optimizer as history to provide continuity until that date.
Configuring lifecycle parameters
To change the horizon, click the (wrench) icon to the right of the Next Shift Assignment heading found on the Assignments tab at any time (or on the confirmation page immediately following creation of a schedule).
After saving lifecycle parameters, the Next Shift Assignment section of the Assignments tab updates to show the date of assignment and shifts
to be assigned based on the new configuration.
Changing the first assignment
To generate your first assignment immediately click the Trigger Now option on the Assignments tab.
To change the date or duration of the first assignment without affecting the configuration of future assignments, click the Create New Custom Assignment button on the Assignments tab.
In both cases, you can copy/paste the URL of the resulting assignment to other team members for review or discussion before confirming it if desired.
Creating an assignment via either of these methods is low-cost and safe to do whenever you’re curious what the next set of shifts will look
like given the currently available information.
The resulting assignment can easily be abandoned or regenerated as described if you do not wish to confirm it into the current schedule.
Assignment confirmation
Once an assignment has been generated (either automatically, or in response to an action from the above section) you will see the assignment review screen:
To view more details hover or click on any shift to show the corresponding shift popup.
Three actions are available for each pending assignment:
Confirm: This adds the shifts from the pending assignment into the schedule itself. When you confirm shifts into the schedule:
Each member with new shifts assigned receives a notification.
The shifts are queued for export to each configured destination.
Confirmation cannot be undone. Confirmed shifts can be replaced by a subsequent custom assignment or a swap request.
Regenerate This regenerates the assignment using the most recently fetched availability information for each member of the schedule.
Regeneration can be useful when one or more members have changed their availability information since the assignment was first generated.
Abandon Deletes the assignment.
Exporting updated shifts
After the first assignment has been confirmed, an orange notification icon appears on the Destinations tab for the schedule to signal there are pending changes
waiting for export to one or more destinations.
Click into the Destinations tab to see a count of shifts to be added or removed from each destination. Click View Diffs to see the specific changes to be made.
When you’re happy with what will be exported, click Export Now to begin updating the shifts in the connected on-call product.
Next Steps
The schedule is now fully operational. The final step enables On-Call Optimizer’s automatic lifecycle operations.
On-Call Optimizer is designed to work in the background, consistently and reliably keeping your on-call schedules up-to-date, flexible and fair without requiring
any significant input or attention from you or other members of the schedule.
Lifecycle automation
The previous steps of this guide helped you manually confirm and export the first assignment generated by On-Call Optimizer for your schedule.
On-Call Optimizer will keep requiring manual confirmation and manual export of any updated shifts until you are ready to enable automatic operation.
Our Recommendation
Enable automatic export for each destination as soon as you’ve completed the export of your first assignment (e.g. now!).
Enable automatic confirmation of new assignments once you and your team are comfortable with On-Call Optimizer’s
schedule lifecycle and are in the habit of keeping availability information up to date in
your calendar.
It’s important to enable automatic destination export as soon as possible so that updated shifts resulting from swaps can be promptly synchronized to all connected destinations.
The cost of keeping manual confirmation enabled for longer is only in your own time to approve assignments.
Enable automatic destination export
Each configured destination can be individually enabled or disabled for automatic export.
To enable a destination, visit the Destinations tab for the schedule, and simply toggle the slider next to the Enabled? text to the right (on) for the appropriate destination.
Enable automatic confirmation of new assignments
To allow On-Call Optimizer to automatically confirm new assignments it creates for you click on the Assignments tab of the schedule and then select the (wrench) icon to the right of the Next Shift Assignment heading.
In the assignment settings page that is displayed, toggle off (to the left) the slider with the Require Manual Confirmation? label.
Congratulations
You’ve reached the end of this guide! Your on-call schedule is now fully configured and running in On-Call Optimizer.
If you have any questions which were not answered here, please let us know at help@oncall-optimizer.com.
3 - User onboarding
This guide is for members of an on-call schedule who have received an email invitation to share their calendar.
Before you start
Locate the invitation email you received from the owner of your On-Call Schedule
The invitation email will have a sender of help@oncall-optimizer.com
The invitiation email will have a subject of Invitation from Owner Name, where Owner Name is the owner of your schedule.
Completing the steps in this guide will result in:
Confirmation of your membership in the schedule you have been invited to join.
One or more of your calendars configured to provide availability information for On-Call Optimizer to use when scheduling your on-call shifts.
Begin
To get started, select Accept the invitation below.
3.1 - Accept the invitation
In this step you will accept the invitation sent by the owner of your schedule. If you do not already have an On-Call Optimizer account this step
will guide you through the process of creating one.
1. Click the link in the invitation
The invitation email which you have received will contain a link as shown in the below image.
Click on the link to be taken to On-Call Optimizer.
2. Login
To accept the invitation you must have an On-Call Optimizer account. If you have not used On-Call Optimizer before, you will see a screen similar to the one show below asking you to choose an authentication provider to use for login. Your account will be automatically created on the first time that you authenticate and login with this provider.
If you have previously used On-Call Optimizer and are already logged in you may not see the above screen at all. However if you do, simply log-in again by selecting the authentication provider that matches your account.
Email address mismatches
On-Call Optimizer expects, but does not require, that you will accept the invitation from an account whose email address matches the address to which
the invitation was sent. Attempting to accept an invitation from an account whose email does not match the address to which the invitation was sent will display a warning.
3. Click accept
Once you have successfully logged in to On-Call Optimizer, you will see a button allowing you to accept the invitation.
Accepting the invitation means you are agreeing to share any availability information imported from your calendars with the members of the schedule.
Next Steps
Once you have accepted the invitation, you will be taken to a welcome screen from which you can follow the next set of instructions to link your calendar to On-Call Optimizer.
In this step we will establish a connection between On-Call Optimizer and the Calendar you wish to use to provide availability information.
1. Select the desired calendar product
Click on the button in the row corresponding to the calendar product you wish to connect.
Complete the authorization or configuration process that follows.
For full details of the authorization or configuration process please refer to full calendar documentation.
2. Choose calendars to use
When multiple calendars are available on the connection you will be asked to select which calendars On-Call Optimizer will process for availability events.
For each calendar select whether or not On-Call Optimizer should process it for availability information.
Click Save when done to confirm these choices.
Ready to Go!
Congratulations. You have successfully shared your calendar availability!
On-Call Optimizer will regularly scan your calendar for new or changed availability information and use the latest available information whenever assinging
new on-call shifts.
For more details on how to structure events on your calendar that On-Call Optimizer can recognize, please refer to the event filtering section of the calendar documentation.
4 - Integrating many schedules
Guidance for large organizations with many schedules to integrate with On-Call Optimizer
Coordinating integration of schedules across many teams in an organization requires a structured program of work. Our recommended approach is as follows:
Please get in touch early!
We’re eager to help apply the general guidance from this page to your specific situation and needs. Email help@oncall-optimizer.com.
Preparation
Initiate vendor onboarding and security reviews for On-Call Optimizer with your procurement and security teams.
The list of supported calendar providers can also be found in the calendar documentation.
Send an initial introduction to On-Call Optimizer to the organization.
Example introduction email
Hi team,
Next week we're beginning the introduction of On-Call Optimizer to improve the
flexibility of our on-call schedules and make it easy and hassle free to
organize swaps when your plans change.
On-Call Optimizer works by collecting availability information from your calendar,
such as Out of Office events or any other event where you've added a tag like
'no-oncall' or 'prefer-oncall' to the title or description.
On-Call Optimizer uses this availability information from each member of the team
to flexibly assign on-call shifts on a rolling basis - ensuring that on-call
commitments fit around your life, rather than life being disrupted by on-call.
The rollout will take place in a staged fashion over the next few months, and you'll
receive further detailed instructions and an onboarding guide when it's time to upgrade
your schedule.
For more information on On-Call Optimizer visit https://oncall-optimizer.com/
Phase 1: Create a schedule catalog
Build a catalog of schedules in-scope for integration with On-Call Optimizer.
From your existing on-call product, collect a list of all schedules in-use and their important properties:
Roles required (e.g. single assignee, or primary/secondary assignees)
Number of people participating in the schedule
Do they belong to a single team?
Are the in a single time zone, or distributed across geographies?
Do all members have the same assignment criteria and availability?
Does the schedule depend on any other schedules, or the availability of other teams?
Phase 2: Pilot
From the schedule catalog, select one or two schedules that meet the following criteria:
Staffed by members of a single team, in a single time-zone.
Have between 3 - 8 members.
The precise size is not important, but needs to be small enough easily coordinate while large enough to benefit from the flexibility On-Call Optimizer provdies.
Consider grouping schedules into batches using common targets for the date of the first On-Call Optimizer assigned shift to clarify communication and
understanding of when changes in operation will occur.
Phase 4: Complex schedules
Schedules with more complex shift patterns, or requiring use of advanced features such as assignment groups are smoother to integrate once organizational
experience and familiarity with On-Call Optimizer has grown.
Create throw-away schedules and generate custom assignments to test and observe how different combinations of shift patterns, assignment groups and schedule
nesting can be used to model a wide range of different schedule requirements.
Can't find a configuration that works?
Let us know!. We may be able to suggest an approach you have not yet considered, or in the event that you’ve discovered a
novel use-case, we’ll evaluate how On-Call Optimizer can be improved to meet your needs.
Phase 5: Cross-team schedules
Finally, schedules where cross-schedule availability is required are best integrated last, once the schedules on which they depend
have integrated and reached steady-state operation.
Tips for cross-schedule availability use:
Minimize the number of schedules providing availability information into any particular schedule.
In all cases, ensure that availability for any individual member is not being sourced from schedules with different actions.
For example: do not configure a cross-schedule availability block based on schedule A, and a cross-schedule preference based on schedule B if the
same members are being assigned in both schedules since this risks conflicting availability information for a member being provided if they are assigned
to shifts in both A and B at the same time.