Sync BambooHR out of office to Google Calendar with approval

Starting promptUse this prompt as a starting point to build your workflow.

Build a 3B workflow that lets me privately review and manually approve syncing my BambooHR out-of-office time to my calendar. Nothing is ever written to a calendar without my explicit, per-section approval. Keep every route authenticated to the workflow's space — no public routes. The workflow has two independent sync flows behind one review page: one manages ""busy"" native Out of Office blocks on my own primary calendar, and the other sends all-day, free-not-busy ""[Owner] OOO"" invitations to a list of colleagues so they can see when I'm out without blocking their availability. Trigger: manual. There's no schedule — a space member opens the review page and presses approve. Build these steps: Review page (React web page, e.g. at /ooo-review). A single private page with two independent sections — ""Your calendar"" and ""Colleagues"" — each with its own loaded plan and its own approve button. Render the shell immediately and fetch each section's plan from its own API route. Nothing is written until the relevant approve button is pressed. Give it a descriptive document title. Preview (your calendar) — a read-only API step. Read the next ~180 days of my upcoming time off, read the events already synced to my calendar, compare them, and label each proposed event create / update / delete / no change. Note in the response that pending or unapproved time-off requests may not appear. Approve (your calendar) — a POST API step. Accept the exact plan the reviewer saw. Refetch live data, recompute each action, and apply a change only when the live action still matches the approved one. Reject plans older than ~30 minutes, reject malformed bodies, and return any drifted items untouched in a ""skipped"" list. Mark every managed event with a private marker and only ever write or delete events carrying that marker — but adopt (tag in place) an existing untagged matching event instead of creating a duplicate. These are ""busy"" out-of-office events. Preview (colleagues) and Approve (colleagues) — the same pattern as steps 2 and 3, but for all-day, transparent (free) ""[Owner] OOO"" events with my list of colleagues as attendees. Creates and updates send calendar invitations; deletions send cancellations. Never delete untagged events. Same stale-plan rejection and drift-skip guarantees. Document each API step's request/response contract, and write per-step READMEs plus a workflow README. For the data sources: I pulled time off from a separate BambooHR out-of-office workflow and wrote to Google Calendar — but use whatever HR/time-off system and calendar your team runs on (e.g. Workday or another HRIS, and Google Calendar or Outlook/Microsoft 365). Keep the two preview/approve pairs' shared logic consistent. Tools used: BambooHR, Google Calendar API

New to Tines?Sign up free for Tines 3B Explore Edition

What this prompt builds

This workflow syncs BambooHR out-of-office time to Google Calendar with manual approval. It creates native busy blocks on the owner's calendar and sends transparent all-day invitations to colleagues, ensuring no calendar events are written without explicit per-section approval. The workflow prevents duplicate calendar management and keeps team visibility consistent with approved time off.

The problem

Teams using BambooHR for time-off requests face double data entry: approved time off must be manually blocked on personal calendars and separately communicated to colleagues through calendar invitations. This creates inconsistency, forgotten blocks, and wasted administrative time. This workflow automatically syncs BambooHR out-of-office records to Google Calendar with a two-part manual review: it creates native busy blocks on the owner's primary calendar and sends transparent all-day invitations to a list of colleagues, ensuring team visibility without blocking availability. Nothing writes to any calendar without explicit, per-section approval.

Solution and impact

The workflow eliminates duplicate calendar management by letting users review and approve BambooHR time-off syncs in a single private interface before any events are created. It intelligently reconciles existing calendar entries, prevents duplicates, and handles drift by rejecting stale plans and skipping changed items. Teams save administrative overhead, maintain consistent out-of-office visibility across personal and colleague calendars, and retain full control over what gets written to their calendars.