Automate Everhour time-off scheduling directly into Google Calendar all-day events. This robust synchronization n8n workflow ensures accurate creation, updating, and deletion of PTO entries using external keys for reliable idempotency.
Download this n8n workflow template and start using it instantly.
Human Resources (HR) teams seeking to automate time-off visibility.
Operations specialists needing reliable cross-platform scheduling.
Developers looking for advanced examples of idempotent API synchronization using an n8n node.
Organizations utilizing n8n to integrate project management and time tracking systems.
Manually syncing time-off requests from a time tracking system like Everhour into a shared calendar can be time-consuming and error-prone, especially when requests are modified or canceled. This comprehensive n8n workflow solves this by providing a scheduled, idempotent synchronization mechanism.
This specialized n8n templates solution fetches all approved Everhour time-off data and performs an intelligent 'upsert' (update or insert) operation on Google Calendar. Crucially, it assigns a unique external key to every day of time off, allowing the n8n logic to handle changes and cancellations accurately. By utilizing several powerful n8n nodes, this ensures that your Google Calendar always reflects the current, approved status of employee time off, minimizing scheduling conflicts and administrative overhead.
This powerful n8n workflow is initiated by a scheduled n8n trigger and executes a complex sync, update, and cleanup routine:
Schedule Trigger n8n trigger node starts the process, typically running every hour to ensure timely synchronization.calendarId set within the Config n8n node.Everhour - Fetch Time Off HTTP Request n8n node fetches current assignments from the Everhour API using Header Authentication.Filter Approved Time-Off n8n node to only include approved statuses. The Prepare Time-Off Items Code n8n node then transforms multi-day requests into individual, per-day items, assigning a unique externalKey (e.g., everhour:: ) to each calendar day. This key is central to the entire n8n workflow's reliability.externalKey via the Find Existing Event by External Key HTTP Request n8n node.Check if Event Exists If n8n node routes the flow. If an event ID is found, the workflow uses the Update All-Day Event Google Calendar n8n node. If not found, it uses the Create All-Day Event Google Calendar n8n node.Find Obsolete Events) compare the keys currently on the calendar against the newly approved keys from Everhour.externalKey is no longer present in the Everhour data are sent to the Delete Calendar Event Google Calendar n8n node for removal. This ensures accuracy and makes this an effective n8n templates implementation.To deploy this synchronization n8n workflow, follow these setup steps:
X-Api-Key, and the value should be your personal Everhour API key. This credential must be linked to the Everhour - Fetch Time Off HTTP Request n8n node.Update All-Day Event, Create All-Day Event, Delete Calendar Event, and the associated HTTP Request nodes).Config n8n node and replace REPLACEWITHYOURCALENDAR[email protected] with the actual ID of the Google Calendar where you want the time-off events to appear.This n8n workflow leverages several specialized n8n node types for complex data handling and integration:
Schedule Trigger (n8n trigger):
Function: Initiates the n8n workflow automatically at defined intervals.
Key Configuration: Set to run every hour (interval: hours).
Everhour - Fetch Time Off (HTTP Request n8n node):
Function: Retrieves raw assignment data from the Everhour API.
Key Configuration: Uses a Generic HTTP Header Auth credential (X-Api-Key) for authentication.
Prepare Time-Off Items (Code n8n node):
Function: Expands multi-day Everhour requests into separate items for each date and generates the unique externalKey necessary for the idempotent logic of the entire n8n workflow.
Find Existing Event by External Key (HTTP Request n8n node):
Function: Searches the target Google Calendar for an event whose description or title contains the unique externalKey.
Key Configuration: Uses the q query parameter set to {{ $json.externalKey }}.
Check if Event Exists (If n8n node):
Function: Determines the correct action (Update or Create) based on the search results from the previous Google Calendar n8n node.
Update All-Day Event / Create All-Day Event (Google Calendar n8n node):
Function: Performs the final synchronization action. Both nodes configure the event as an all-day event, populating the summary with the employee name and type, and embedding the externalKey into the description for future cleanup operations.
Find Obsolete Events (Code n8n node):
* Function: Executes the crucial cleanup logic. This n8n node compares the set of approved keys from Everhour against the keys found on the calendar, identifying events that need deletion.
Use this powerful n8n workflow to automatically create Google Calendar events from incoming Gmail emails. Perfect for busy professionals using n8n templates.

Master event registrations, confirmations, and reminders using this powerful n8n workflow. Integrate Webhooks, Gmail, and Google Sheets for scalable, automated event management.

Use this powerful n8n workflow to automate event RSVPs. Validate emails with VerifiEmail, generate personalized badges, send Gmail confirmations, and log all data to Google Sheets efficiently.

Use this powerful n8n workflow to automatically sync approved expense reports and receipts from Airtable directly into QuickBooks, ensuring seamless financial management. Integrate your data with this ready-to-use n8n template.

Use this powerful n8n workflow to automate domain reconnaissance, perform DNS lookups, query the Shodan API for exposed services, and log results to Google Sheets. Ideal for security analysis.

Automate technical knowledge capture by turning relevant Stack Overflow questions into structured, internal FAQs in Notion and Google Sheets using GPT-4o-mini. This powerful n8n workflow template includes crucial error handling and Slack alerts for your team.








































