The way most of us do oncall scheduling kind of sucks. Most automated solutions are just a round-robin list of people who get scheduled in that order. When someone leaves the team, their slots are filled by just moving everybody else up, which scrambles everybody's plans. Some teams use a spreadsheet with some self-service entry of preferences, but then someone has to create a tentative schedule, talk to everybody about whether it works, and then iterate, which takes a lot of time and is not a joyful process. The most caring orgs have built some kind of automated system, but it's one of those internal apps which doesn't get much love because it's a low-priority side-gig for someone.
To fix this, I build
https://oncallscheduler.com. It gives self-service control to everybody to both pick shifts they prefer to work, and to enter preferences about dates/holidays they want to avoid working. It solves the "person left the team" scenario with something of an auction for the shift. People who work less desirable shifts, including taking on shifts from someone who left the team, end up working fewer shifts in total over time.
Check it out! And let me know if you think there's something missing from how it works.