Calendar
One bespoke calendar workspace per member. Always-on internal calendar plus up to two linked external calendars. Aggregates bookings, manual events, tenant events, off-days, written consultations, and Let's Coordinate sessions into one timeline. Drag-to-create, drag-to-reschedule, recurrence, meeting links, reminders — all bilingual EN + fr-CA.
What you can do
One bespoke view that unifies every time-bound surface
Every member gets a per-member calendar workspace with month / week / day / agenda views. The unified view aggregates manual events, client bookings, tenant events (workshops, Q&A sessions), off-days, written consultations, and Let's Coordinate confirmations into one timeline. Stable per-source colours + tints make it easy to scan. Five visual themes (classic, marine, meadow, dusk, ink) — pick the one that suits your light, including a clean dark mode.
Always-on internal calendar + up to two external links
Every member always has an internal calendar — no OAuth required, no connection step. On top of that, link up to two external calendars (Google and / or Microsoft Outlook; same-provider pairs are explicitly supported — two Google accounts, two Outlook accounts). Pick which one is your write target with a single Make-this-primary click on the Profile page. The change is atomic at the database level — concurrent bookings can't slip into a window with no primary. Existing events are re-homed in the background: the old external copy is deleted and a fresh copy lands on the new primary, even when the flip is between two same-provider accounts.
Drag-to-create, drag-to-move, drag-to-resize
Drag on the calendar grid to create a new event with a live preview of duration. Click an empty slot for a quick one-hour default. Drag the body of an internal event to reschedule it (cross-day works on the week view; the chip rides into the destination column visually during the gesture). Drag the bottom edge to resize. Drag a booking chip to reschedule the booking — duration stays locked by the service. Read-only sources (off-days, tenant events, written consultations, Let's Coordinate, own external, teammate busy) display a cursor cue when you try to drag and explain why they can't move. Every drop snaps to 15 minutes.
Recurrence with DST-correct wall-clock anchoring
Pick a Repeats option in the event modal — Daily, Weekly, Monthly, Yearly, or Custom RRULE — and the series expands inline on the view. A 10 AM Toronto weekly meeting stays at 10 AM Toronto across the fall daylight-savings flip, not 9 AM. Editing or deleting a single occurrence opens an in-modal scope picker (This occurrence only / This and following / All). The series mirrors natively to the linked external calendar: Google receives an RRULE array with EXDATE lines for exceptions; Microsoft receives a translated PatternedRecurrence Graph object covering FREQ=DAILY/WEEKLY/MONTHLY/YEARLY + INTERVAL + COUNT/UNTIL + WEEKLY BYDAY + relativeMonthly (first / second / third / fourth / last weekday-of-month).
Meeting links that follow your primary calendar
Pick 'Google Meet' on an event when your primary is Google and the platform auto-mints a Meet link via Google's conferenceData flow. Pick 'Teams' when your primary is Microsoft and Microsoft Graph mints a Teams join URL. Mismatches (Meet on Outlook primary, Teams on Google primary) fall back to a plain calendar event with any manual URL you typed. The resolved meeting URL is saved back to the event so the in-app view and the reminder email both surface the join link.
Reminders for events + bookings — bilingual EN + fr-CA
Two opt-in reminder toggles per manual event: 1 day before, 30 minutes before. When set, the platform emails the organizer at those windows. Bookings get both reminders on by default — two emails per booking, one organizer-side platform-internal and one client-side RCIC App branded with your tenant as Reply-To. Reminders never double-fire — the platform stamps a sent-at column the moment delivery succeeds. Every email is bilingual EN + fr-CA based on the recipient's preferred language.
Teammate visibility — busy blocks only
Turn on a teammate's calendar from the side rail to see when they're busy. Every teammate event renders as a generic 'Busy' block with the title redacted — no leak of personal event detail. Useful for finding common free time when scheduling group meetings or for an Assistant who needs to know when the RCIC is in client appointments without seeing the appointment subject. Your own external calendars contribute at full detail; teammates' contribute as busy-only.
Per-member timezone + theme
Each member picks their own display timezone — defaults to the tenant's, but a member who travels (or whose laptop clock is wrong) can override. Each member also picks their own theme. Settings live on the per-member row, so a tenant where the Owner is in Toronto and a Co-Counsel is in Vancouver renders each member's calendar in their local wall-clock with no ambiguity. The booking-availability route already speaks tenant timezone end-to-end; the internal-calendar view extends that to per-member rendering.
How it works
- 1
Open Calendar from the dashboard sidebar. Your internal calendar is already live — no setup. Optionally connect one or two external calendars (Google or Microsoft Outlook) from Profile so freebusy from those calendars contributes to your booking availability + so you can mirror manual events out to your existing workflow.
- 2
Drag on the grid to create an event. Set a recurrence pattern if you want a series. Pick a meeting provider (Google Meet on a Google primary, Teams on a Microsoft primary) for an auto-minted join link. Toggle the 24-hour and 30-minute reminders. Save — the event lives on your internal calendar and mirrors to your primary external if linked.
- 3
Reschedule by dragging the chip to a new slot (within the day OR across days on the week view). Resize by dragging the bottom edge. Edit by clicking — the modal opens with every field editable, including the scope picker for recurring instances. Delete with the bin icon, with the same scope picker for series. Everything stays in lockstep with your linked external calendar without a refresh.
Pricing
Included on every tier: Basic ($29 CAD/mo) and Premium ($69 CAD/mo). No per-event fees, no caps on manual events. Linking Google or Microsoft Outlook uses OAuth — no extra cost.

