Skip to content

Add a Google Calendar "Event Created" Trigger for Kestra #275

@fdelbrayelle

Description

@fdelbrayelle

Feature description

📌 Context / Motivation

We already have the Google Workspace - Calendar plugin for Kestra that supports tasks like listing, creating, updating, deleting events. :contentReference[oaicite:0]{index=0}
However, there is no trigger that reacts to a new event being created in a Google Calendar.
Adding such a trigger will allow workflows to start automatically when a calendar event is added.

🎯 Proposal

Introduce a new trigger (e.g. GoogleCalendarEventCreated) in the Google Workspace Calendar plugin, which will:

  • Subscribe (or poll, depending on implementation) to one or more calendars
  • Detect new events (on creation)
  • Emit an “event created” message (with the event’s metadata)
  • Optionally allow filters (e.g. only events with specific labels, organizers, etc.)

This trigger should follow the Kestra trigger contract as documented in:

🔍 Requirements & Considerations

Aspect Description / Questions
Authentication / Permissions The trigger will likely need https://www.googleapis.com/auth/calendar permissions (or equivalent)
Implementation Strategy Could use the Google Calendar push notifications (via webhook/channel) or polling (List with sync tokens)
State management Must maintain state (e.g. sync tokens or change tokens) to know which events are new
Configuration options Calendar ID(s), filters, polling interval or webhook endpoint, time window, maximum lookback
Output payload Should include event fields: id, summary, description, start, end, organizer, attendees, etc.
Error handling & retries If API fails, backoff, resume, etc.
Testing Unit & integration tests (e.g. mock Google Calendar API)
Documentation & examples Add sample YAML workflows showing how to use the trigger

✅ Acceptance Criteria

  1. A new trigger class (e.g. GoogleCalendarEventCreated) is added in the plugin module.
  2. It implements the Trigger interface following the plugin-developer guide :contentReference[oaicite:1]{index=1}
  3. The trigger can be configured via YAML (with reasonable parameters)
  4. It emits an execution start when a new event is created
  5. The trigger is documented (README, plugin docs) with an example
  6. Tests are added verifying correct behavior (e.g. no duplicate events, filters, error handling)

🔗 References

Metadata

Metadata

Assignees

Labels

area/pluginPlugin-related issue or feature requestenhancementNew feature or requestgood first issueGreat issue for new contributors

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions