View My Calendar
Use My calendar to review the signed-in staff member's own schedule at the active location. In the GB demo, Olivia Hart at Harbor Soho sees her shifts, assigned schedules, vacation, leave, applicable blackouts and location vacation closures, with self-service correction and vacation requests when permissions allow.
In this article
My calendar shows the calendar for the staff member linked to the signed-in user at the active location. It does not use route parameters to switch employees; the app resolves the staff record from the location context and, if needed, from the staff list.
Use this view before service to check shifts, assigned schedules, vacation, leave and shared location constraints in one place. When the role allows it, Create routes staff self-service to attendance correction or vacation request flows instead of opening full calendar management.
Before you start
- Work inside a selected organisation and location, such as Harbor Demo Group > Harbor Soho.
- The signed-in user must be linked to a staff member at the selected location. In the GB runtime, `STAFF_ID` belongs to Olivia Hart.
- The user needs at least one personal calendar view permission. Without it, the screen shows the calendar access message.
- The route can receive `mode`, `startDate` and `firstVisibleDate`; valid modes are `day`, `week`, `month` and `year`, with `month` as the default.
- The visible range is calculated in the location timezone. Harbor Soho uses `Europe/London`.
Instructions
- 1.
Open My calendar
From the location navigation, open Personal > My calendar. The direct route is `/:orgId/:locationId/calendars/me`, and the loaded calendar belongs to the staff member linked to the signed-in user.
- 2.
Choose the calendar range
Use the view selector to switch between day, week, month and year. Use Today to return to the current date and refresh to reload the current range.
- 3.
Review personal entries
Read the visible staff shifts, staff schedules, vacation, leave, vacation blackouts that apply to the employee or role, and location vacation closures. Reservations are not shown as direct My calendar entries.
- 4.
Open an event
Select a visible event to open its detail screen. The app returns to My calendar with `returnRoute=LocationMyCalendar`, and staff schedule events open as read-only from this action.
- 5.
Use self-service actions
Press Create when available. If both options are permitted, the menu shows Request correction and Request vacation. Request correction opens Attendance scoped to the linked staff record, while Request vacation opens the vacation request form with My calendar as the return route.
- 6.
Handle blockers
Use the screen messages to distinguish missing location context, missing calendar permission and missing staff association before capturing or documenting the happy path.
Validations and limits
- If the selected organisation or location is missing, the screen shows `We couldn't find the requested location.` and event loading does not start.
- If the user lacks page access, the screen shows `You don't have permission to view this calendar.`
- If no linked staff member is found after loading staff, the screen shows `Your user is not linked to a staff member at this location.`
- `mode` only accepts `day`, `week`, `month` or `year`; invalid modes and invalid dates are ignored.
- Calendar events load only when organisation, location, page access and the linked staff id are all available.
- The personal preset is fixed to `staff_shift`, `staff_schedule`, `staff_vacation`, `staff_leave`, `vacation_blackout` and `location_vacation`; users cannot change the kind filter in this view.
- The backend still filters each event kind by read permission, even in My calendar.
- The personal calendar always uses the staff id linked to the signed-in user; route parameters must not be described as an employee switcher.
- Open staff shifts without an end time are not shown as closed calendar events.
- Creation from My calendar is limited to self-service correction and vacation request paths; request-only vacation submissions are forced to the user's own staff id and `requested` status.
Expected result
The staff member has a reliable personal calendar for the active location and can launch the supported self-service requests without leaving the operational context.