logo_smallAxellero.io

Google Calendar

Comprehensive calendar events management integration with Google Calendar API v3 and OAuth2 authentication.

Google Calendar Node

Professional integration with Google Calendar API v3, enabling automated calendar management, event scheduling, and meeting coordination workflows with comprehensive OAuth2 security.

Available Operations

  • Event Management: Create, update, retrieve, and delete calendar events
  • Event Discovery: List and search calendar events with advanced filtering
  • Attendee Management: Manage meeting attendees and invitations
  • Time Management: Schedule events with precise datetime handling and timezone support
  • Calendar Integration: Access multiple calendars and manage permissions

Connection Configuration

ParameterTypeRequiredDescription
accessTokenTEXTYesOAuth2 access token for Google Calendar API authentication
calendarIdTEXTNoTarget calendar ID (default: 'primary' for user's main calendar)
{
  "accessToken": "{{ctx.consts.GOOGLE_CALENDAR_ACCESS_TOKEN}}",
  "calendarId": "{{ctx.vars.targetCalendarId}}"
}

Required OAuth2 Scope: https://www.googleapis.com/auth/calendar

Event Management Operations

createEvent

Create a new calendar event with comprehensive scheduling options and attendee management.

ParameterTypeRequiredDescription
summaryTEXTYesEvent title and primary description
startDateTimeTEXTYesStart time in RFC3339 timestamp format
endDateTimeTEXTYesEnd time in RFC3339 timestamp format
descriptionTEXTNoDetailed event description and agenda
locationTEXTNoGeographic location or meeting venue
attendeesTEXTNoComma-separated email addresses of attendees
{
  "summary": "{{ctx.vars.eventTitle}}",
  "description": "{{ctx.nodes.agendaGenerator.outputs.description}}\n\nGenerated by workflow: {{ctx.vars.workflowName}}",
  "startDateTime": "{{ctx.vars.startTime}}",
  "endDateTime": "{{ctx.vars.endTime}}",
  "location": "{{ctx.vars.meetingLocation}}",
  "attendees": "{{ctx.nodes.attendeeProcessor.outputs.emailList}}"
}

updateEvent

Update an existing calendar event with new details and scheduling information.

ParameterTypeRequiredDescription
eventIdTEXTYesGoogle Calendar event ID to update
summaryTEXTNoUpdated event title
descriptionTEXTNoUpdated event description
startDateTimeTEXTNoUpdated start time (RFC3339 timestamp)
endDateTimeTEXTNoUpdated end time (RFC3339 timestamp)
locationTEXTNoUpdated geographic location
{
  "eventId": "{{ctx.vars.eventId}}",
  "summary": "{{ctx.vars.updatedTitle}}",
  "startDateTime": "{{ctx.vars.newStartTime}}",
  "endDateTime": "{{ctx.vars.newEndTime}}",
  "location": "{{ctx.vars.updatedLocation}}"
}

getEvent

Retrieve detailed information about a specific calendar event including all metadata and attendee details.

ParameterTypeRequiredDescription
eventIdTEXTYesGoogle Calendar event ID to retrieve
{
  "eventId": "{{ctx.vars.targetEventId}}"
}

deleteEvent

Remove a calendar event from the calendar and send cancellation notifications to attendees.

ParameterTypeRequiredDescription
eventIdTEXTYesGoogle Calendar event ID to delete
{
  "eventId": "{{ctx.vars.eventToDelete}}"
}

listEvents

Retrieve calendar events with advanced filtering, search, and pagination capabilities.

ParameterTypeRequiredDescription
timeMinTEXTNoLower bound (inclusive) for event end time (RFC3339 timestamp)
timeMaxTEXTNoUpper bound (exclusive) for event start time (RFC3339 timestamp)
maxResultsINTNoMaximum number of events returned (default: 10, max: 2500)
qTEXTNoFree text search terms to find specific events
orderByTEXTNoSort order: 'startTime' or 'updated'
{
  "timeMin": "{{ctx.vars.searchStartDate}}",
  "timeMax": "{{ctx.vars.searchEndDate}}",
  "maxResults": 50,
  "q": "{{ctx.vars.searchQuery}}",
  "orderBy": "startTime"
}

Workflow Integration

Use workflow context for dynamic calendar management:

{
  "summary": "{{ctx.vars.meetingType}} - {{ctx.user.department}}",
  "description": "**Automated Meeting**\n\n**Purpose:** {{ctx.vars.meetingPurpose}}\n\n**Organizer:** {{ctx.user.name}}\n**Created:** {{ctx.vars.currentDateTime}}\n\n**Agenda:**\n{{ctx.nodes.agendaBuilder.outputs.formattedAgenda}}",
  "startDateTime": "{{ctx.nodes.timeCalculator.outputs.meetingStart}}",
  "endDateTime": "{{ctx.nodes.timeCalculator.outputs.meetingEnd}}",
  "location": "{{ctx.vars.preferredLocation}}",
  "attendees": "{{ctx.nodes.teamLookup.outputs.teamMemberEmails}}"
}

Time Format Specifications

RFC3339 Timestamp Format

Google Calendar requires RFC3339 formatted timestamps:

2024-12-13T14:30:00Z          # UTC time
2024-12-13T14:30:00+02:00     # With timezone offset
2024-12-13T14:30:00-05:00     # With negative timezone offset

Examples for Different Time Zones

{
  "startDateTime": "2024-12-13T09:00:00-08:00",  // 9 AM Pacific Time
  "endDateTime": "2024-12-13T10:00:00-08:00"    // 10 AM Pacific Time
}

Response Format

Success Response

{
  "success": true,
  "event": {
    "id": "event_abc123xyz",
    "htmlLink": "https://calendar.google.com/event?eid=...",
    "summary": "Team Meeting",
    "description": "Weekly team sync meeting",
    "start": {
      "dateTime": "2024-12-13T14:00:00Z"
    },
    "end": {
      "dateTime": "2024-12-13T15:00:00Z"
    },
    "location": "Conference Room A",
    "attendees": [
      {
        "email": "john@company.com",
        "responseStatus": "accepted"
      },
      {
        "email": "jane@company.com",
        "responseStatus": "needsAction"
      }
    ],
    "organizer": {
      "email": "organizer@company.com",
      "displayName": "Meeting Organizer"
    }
  }
}

List Events Response

{
  "success": true,
  "events": [
    {
      "id": "event_123",
      "summary": "Daily Standup",
      "start": {
        "dateTime": "2024-12-13T09:00:00Z"
      },
      "end": {
        "dateTime": "2024-12-13T09:30:00Z"
      }
    }
  ],
  "nextPageToken": "next_page_token_here",
  "timeZone": "America/Los_Angeles"
}

Error Response

{
  "success": false,
  "error": "Event not found",
  "code": "NOT_FOUND",
  "details": "The specified event ID does not exist or is not accessible"
}

Calendar Management

Calendar IDs

  • Primary Calendar: "primary" - User's main calendar
  • Secondary Calendars: Use specific calendar ID (e.g., "calendar_id@group.calendar.google.com")
  • Shared Calendars: Access requires appropriate permissions

Permission Levels

PermissionDescriptionAvailable Operations
OwnerFull control over calendarAll operations
EditorCan create and edit eventsCreate, update, delete events
ReaderView-only accessList and get events only

Use Cases

Meeting Automation

  • Scheduled Meetings: Create recurring team meetings with automatic attendee invitations
  • Dynamic Scheduling: Schedule meetings based on availability and preferences
  • Meeting Updates: Automatically update meeting details based on workflow changes
  • Cancellation Management: Handle meeting cancellations with proper notifications

Event-Driven Workflows

  • Calendar Sync: Synchronize events across multiple calendar systems
  • Notification Systems: Trigger workflows based on upcoming events
  • Resource Management: Schedule and manage shared resources and meeting rooms
  • Attendance Tracking: Monitor event attendance and send follow-up actions

Integration Workflows

  • CRM Integration: Create meetings from sales opportunities and customer interactions
  • Project Management: Schedule project milestones and deadline reminders
  • HR Processes: Automate interview scheduling and employee onboarding events
  • Support Systems: Schedule customer calls and support sessions

OAuth2 Authentication

Required Scopes

https://www.googleapis.com/auth/calendar

Token Management

  • Access Tokens: Short-lived tokens for API access (typically 1 hour)
  • Refresh Tokens: Long-lived tokens for obtaining new access tokens
  • Token Storage: Securely store tokens using environment variables or secure vaults

Security Considerations

  • Token Rotation: Implement automatic token refresh for continuous access
  • Scope Limitation: Request only necessary calendar permissions
  • Audit Logging: Track calendar access and modifications for security compliance
  • Rate Limiting: Respect Google Calendar API quotas and rate limits

API Limits and Best Practices

Rate Limits

  • Queries per day: 1,000,000 requests per day
  • Queries per 100 seconds per user: 1,000 requests
  • Queries per 100 seconds: 100,000 requests

Best Practices

  • Batch Operations: Group multiple calendar operations when possible
  • Efficient Filtering: Use time ranges and search queries to limit result sets
  • Error Handling: Implement retry logic for rate limit and temporary errors
  • Cache Management: Cache frequently accessed calendar data to reduce API calls

Getting Started

  1. Set up OAuth2: Configure Google Cloud Console with Calendar API and OAuth2 credentials
  2. Obtain Access Token: Implement OAuth2 flow to get user authorization and access tokens
  3. Test Basic Operations: Start with simple event creation and listing operations
  4. Implement Error Handling: Add robust error handling for API limits and authentication issues
  5. Optimize Performance: Implement caching and efficient querying for production workflows