FAQ & How-To Guide
Answers to common questions and step-by-step instructions for using Resident Scheduler.
1. Getting Started
How do I create an account?
- Go to the Resident Scheduler login page.
- Click "Sign Up" and enter your name, email, and password — or sign in with Google.
- After signing up, the app checks whether your email has been added to a program. If the email matches a pending invitation, you are automatically registered and directed to your dashboard.
- If your email is not found in any program, you will see a message indicating that you do not have access. Contact your program administrator to be added.
I signed up but can't access anything. What's wrong?
Your program administrator needs to add your email before you sign up. Make sure the email you used matches the one your administrator entered. Email matching is case-insensitive.
How do I switch between light and dark mode?
Click the sun/moon icon in the top-right corner of the header on any page. Your preference is saved and remembered across sessions.
What browsers are supported?
Resident Scheduler works in all modern browsers: Chrome, Firefox, Safari, and Edge. A stable internet connection is required as all data is stored in the cloud.
2. Roles & Access
What are the different user roles?
- Admin (Program Manager) ADMIN — Manages one or more specific programs. Can add/edit residents, configure rotations and hospitals, review requests, and set up the academic calendar.
- Resident RESIDENT — Views their own rotation schedule, submits requests (vacation, elective, conference, lieu days, call preferences), and views their call schedule.
- Lead Resident LEAD — A resident with the additional ability to access Call Scheduling: generate, edit, and publish call schedules for their program.
Can a user have multiple roles?
A user can be both an admin for certain programs and a resident in another. The app detects all roles and shows the appropriate dashboards. A resident can also be marked as a "lead resident" to gain access to call scheduling.
3. Program Manager
How do I add residents to my program?
- Go to Program Manager and select your program.
- Under the Residents section, click "Add Resident".
- Enter the resident's name, email, phone, PGY level, student/employee number, and assign a base hospital.
- Once saved, the resident's email is added to the pending users list. When they sign up on the login page, they will be automatically linked to your program.
How do I set up hospitals and rotation sites?
In Program Manager, use the Hospitals section to add each hospital or clinical site. Enter the hospital name, abbreviation, and any relevant details. These hospitals become available for rotation assignments and call scheduling.
How do I configure rotations?
- In Program Manager, go to the Rotations section.
- Add rotation definitions with a name and type (e.g., "Family Medicine", "Emergency", "Elective").
- Some rotations can be marked as eligible or ineligible for certain call types.
- These rotations are then used in the Academic Planner to build block schedules.
How do I assign rotation schedules to residents?
Rotation schedules are assigned in the Academic Planner page (see Section 5 below). In Program Manager, you set up the rotation definitions, hospitals, and block structure. The actual assignment of "which resident does which rotation in which block" is done in the Academic Planner.
How do I review resident requests?
- Go to Program Manager and select your program.
- Open the Requests section to see all pending requests.
- Each request shows the resident's name, type (vacation, elective, conference, lieu day), dates, and any notes.
- Click Approve or Deny for each request. The resident will receive an email notification of the decision (if they have a registered account).
4. Academic Planner
What is the Academic Planner?
The Academic Planner is where administrators build the yearly rotation schedule for each academic year. It provides a visual grid of residents vs. time blocks, allowing you to assign rotations, set block dates, and view the full-year schedule at a glance.
How do I set up an academic year?
- Navigate to Academic Planner and select your program.
- Choose or create the academic year (e.g., "2025-2026").
- Define the block structure — the number of blocks and their start/end dates.
- Assign rotations to each resident for each block using the schedule grid.
Can I add events to the academic calendar?
Yes. The Academic Planner includes a calendar view where you can add events (e.g. academic half-days, retreats, workshops). Events can be colour-coded by type and are visible to residents on their portal. Use the event type picker to categorize events consistently.
How do I export the schedule?
The Academic Planner supports PDF export using jsPDF. Click the export/download button to generate a PDF of the rotation schedule grid, which you can print or share with your program.
5. Resident Portal
What can I do in the Resident Portal?
- View your rotation schedule for the current academic year
- See your call schedule (once published by the lead resident)
- View academic calendar events for your program
- Submit requests for vacation, elective, conference, and lieu days
- Submit call preferences — mark specific dates as "call-on" (preferred) or "no-call" (unavailable)
- Track the status of your submitted requests (pending, approved, denied)
- Access elective contact information and resources
How do I submit a vacation or leave request?
- Go to Resident Portal and navigate to the Requests section.
- Click "New Request" and select the type: Vacation, Elective, Conference, or Lieu Day.
- Enter the start and end dates, and add any notes or details.
- Submit the request. Your program administrators will be notified by email.
- You can track the status of your request (pending / approved / denied) on the same page.
How do I set call preferences?
- In the Resident Portal, find the Call Preferences section.
- Select dates where you are available for call (call-on) or unavailable (no-call).
- Your preferences are saved and visible to the lead resident generating the call schedule.
- The scheduling algorithm considers no-call requests as constraints when generating schedules.
6. Call Scheduling
Who can generate call schedules?
Only lead residents (residents with isLead: true) and sudo users can access the Call Scheduling page. Program admins configure the call rules; lead residents run the algorithm and publish the final schedule.
How does the call scheduling algorithm work?
The algorithm generates fair call assignments by:
- Parsing constraints — rotation-based eligibility, no-call requests, approved leave, and call rules.
- Prioritizing fairness — balancing total call counts, weekend calls, and holiday calls across residents.
- Respecting rules — minimum spacing between calls, maximum calls per block, and rotation-specific restrictions.
- Multi-pass optimization — the algorithm runs multiple phases to fill gaps, resolve conflicts, and optimize the overall distribution.
How do I generate a call schedule?
- Go to Call Scheduling and select the program and time period.
- Review the current call rules, resident eligibility, and any submitted preferences/requests.
- Click "Generate Schedule" to run the algorithm.
- Review the generated schedule — check the statistics for fairness, look for any flagged issues.
- You can manually adjust assignments by swapping or reassigning specific dates.
- Once satisfied, publish the schedule to make it visible to all residents.
Can I edit a generated schedule?
Yes. After generating a schedule, you can manually swap or reassign call dates before publishing. The system will warn you if a manual change violates any rules (e.g., spacing constraints or eligibility). You can also regenerate the entire schedule if the result is not satisfactory.
What happens when a schedule is published?
Publishing a call schedule makes it visible to all residents in the Resident Portal. Residents can then view their assigned call dates on their dashboard. Published schedules are saved and can be referenced or exported later.
7. Requests & Approvals
What types of requests can residents submit?
- Vacation — time off during a rotation block
- Elective — elective rotation placement requests
- Conference — conference attendance requests
- Lieu Day — lieu day requests (days in lieu of worked time)
- Call-On — preferred dates for call duty
- No-Call — dates unavailable for call duty
How are requests processed?
- Resident submits a request via the Resident Portal.
- Program administrators receive an email notification about the new request.
- Admins review the request in Program Manager and approve or deny it.
- The resident receives an email notification about the decision.
- Approved leave requests are automatically factored into call scheduling as constraints.
Can I edit or cancel a submitted request?
Pending requests can be modified or cancelled by the resident before an admin takes action. Once a request has been approved or denied, contact your program administrator to make changes.
8. Email Notifications
What emails will I receive?
- Admins receive email when a resident submits a new request.
- Residents receive email when their request is approved or denied.
Emails are sent from Resident Scheduler <notifications@marcotklaw.com> and are purely transactional — no marketing or promotional content.
I'm not receiving email notifications. Why?
- Email notifications are only sent to registered users — users who have created an account and signed in at least once.
- Check your spam/junk folder for emails from
notifications@marcotklaw.com. - Make sure the email in your account matches the email your administrator entered for you.
- If you were recently added to the program but haven't signed up yet, you won't receive emails until you register.
Can I opt out of email notifications?
Currently, email notifications cannot be individually toggled. They are limited to essential transactional messages only (request submissions and status updates). No marketing emails are sent.
9. General / Technical
Is my data secure?
Yes. All data is transmitted over HTTPS, stored in Google Cloud Firestore (Canada region), and protected by Firebase Authentication and role-based access rules. For full details, see the Data & Privacy Policy.
Where is my data stored?
All data is stored in Google Cloud Firestore in the Canada (northamerica-northeast1) region. Authentication is managed by Firebase Auth. See the Data & Privacy Policy for more details.
Does the app work on mobile?
Resident Scheduler is responsive and works on mobile browsers. The layout adapts to smaller screens for core tasks like viewing schedules and submitting requests. However, administrative tasks with complex grids (e.g., Academic Planner) are best done on a desktop or tablet.
Can I export data as a PDF?
Yes. Several pages (including the Academic Planner and Call Scheduling) support PDF export using the built-in export buttons. PDFs are generated client-side using jsPDF — no data is sent to an external server for PDF generation.
Who developed Resident Scheduler?
Resident Scheduler was developed by Marco Law. For questions, feedback, or support, contact marcolaw.md@gmail.com.