Quick overview
This workflow runs hourly to sync Google Calendar events into Asana tasks, using an n8n Data Table as a sync log to create, update, or delete tasks based on event changes, cancellations, and declines.
How it works
- Runs every hour on a schedule trigger.
- Loads Google Calendar events from the last 3 days through the next configured window and filters to standard (default) event types.
- Reads existing sync records from an n8n Data Table and matches each calendar event to its logged Asana task ID.
- For each event, decides whether to create a new Asana task, update an existing task, delete a task for cancelled/declined events, or skip if nothing changed.
- When creating or updating, looks up users in the Asana workspace to map the organiser as assignee and add accepted/tentative attendees from your company domain as followers, then pins an HTML event summary comment on the task.
- Updates or creates the sync log entry in the n8n Data Table with the Asana task ID and the event’s last updated timestamp to prevent duplicates.
Setup
- Connect Google Calendar OAuth2 credentials and select the calendar ID you want to sync.
- Connect Asana OAuth2 credentials and set your Asana workspace GID and target project GID in the configuration step.
- Create an n8n Data Table with text columns named CalendarEventID, AsanaTaskID, and LastSyncedUpdate, then select it in the Data Table nodes.
- Update the configuration values (company email domain, timezone, and sync window) to match your environment before activating the workflow.