Calendar Triggers (Outlook/Microsoft 365)
Set up calendar triggers to automatically execute workflows when calendar events are created, updated, deleted, or about to start.
What You Can Build
- Meeting preparation: Automatically gather and send meeting prep materials before events
- Post-meeting follow-ups: Send summary emails or create tasks after meetings end
- Scheduling automation: Process new meeting requests and perform related actions
- Reminder systems: Send custom reminders with relevant context before important events
- Resource booking: Automate room booking or equipment reservation based on events
Prerequisites
Before setting up calendar triggers, you will need:
- A Microsoft 365 (Office 365) organization with Exchange Online
- An Azure AD application with Graph API permissions
- Admin access to your Raikoo organization
- The same Azure AD setup as email triggers (you can reuse the same app)
Trigger Types
Calendar triggers can fire on different event types:
| Trigger Type | When It Fires | Use Case |
|---|---|---|
event_created |
New event added to calendar | Notify stakeholders, prepare resources |
event_updated |
Existing event modified | Update related systems, re-send notifications |
event_deleted |
Event removed from calendar | Clean up resources, cancel preparations |
event_starting |
Configurable time before event | Send prep materials, reminders |
Setup Steps
Step 1: Configure Azure AD (if not already done)
If you have already set up email triggers, you can reuse the same Azure AD application. Otherwise, follow steps 1-3 from the email triggers guide.
For calendar triggers, ensure your app has these permissions:
- Calendars.Read - To read calendar events
- User.Read.All - To access user calendars
Step 2: Create or Update a Connection
If you already have a Graph API connection: 1. Navigate to Connections 2. Select your existing Graph API connection 3. Verify the credentials are still valid
If you need a new connection: 1. Navigate to Connections in your organization 2. Click Create Connection 3. Configure: - Name: "Outlook Calendar" (or similar) - Platform: Select Graph API (Microsoft) 4. Enter your credentials on the Credentials tab 5. Click Save
Step 3: Create a Calendar Trigger
- Navigate to Integrations in the left navigation
- Click Create Trigger
- Configure the trigger:
- Name: A descriptive name (e.g., "Meeting Prep Automation")
- Description: What this trigger does
- External Connection: Select your Graph API connection
- Go to the Execution tab:
- Execution Mode: Choose "Workflow"
- Project: Select the project containing your workflow
- Workflow: Select the workflow to execute
- Authentication Mode: Configure authentication
- In the trigger configuration, specify:
- Calendar User: The user whose calendar to monitor
- Event Types: Which event types trigger the workflow (created/updated/deleted/starting)
- Minutes Before (for starting triggers): How many minutes before the event to trigger
- Click Save
Calendar Event Parameters
When a calendar event triggers a workflow, these parameters are available:
| Parameter | Description | Example |
|---|---|---|
TRIGGER_CALENDAR_SUBJECT |
Event title | Weekly Team Sync |
TRIGGER_CALENDAR_START |
Start time (ISO 8601) | 2024-01-15T10:00:00Z |
TRIGGER_CALENDAR_END |
End time (ISO 8601) | 2024-01-15T11:00:00Z |
TRIGGER_CALENDAR_LOCATION |
Event location | Conference Room A |
TRIGGER_CALENDAR_ORGANIZER |
Organizer's email | manager@company.com |
TRIGGER_CALENDAR_ATTENDEES |
List of attendee emails | user1@company.com, user2@company.com |
TRIGGER_CALENDAR_WEB_LINK |
Link to event in Outlook | https://outlook.office365.com/... |
TRIGGER_CALENDAR_MEETING_URL |
Teams meeting URL (if applicable) | https://teams.microsoft.com/l/meetup-join/... |
TRIGGER_CALENDAR_EVENT_TYPE |
What triggered the workflow | event_created, event_updated, event_deleted, event_starting |
TRIGGER_CALENDAR_MINUTES_UNTIL_START |
Minutes until event starts (for starting triggers) | 15 |
Example: Meeting Prep Workflow
Here is an example workflow that sends preparation materials before meetings:
Workflow Design
- Start - Triggered 15 minutes before meeting
- Check Event Type - Conditional branch to filter events
- Only process if
TRIGGER_CALENDAR_EVENT_TYPEisevent_starting - Gather Context - AI operation to summarize relevant information
- Input: Meeting subject, attendees, previous meeting notes
- Output: Brief, context-aware summary
- Send Prep Email - Use Send Email operation
- To:
TRIGGER_CALENDAR_ORGANIZER - Subject: "Prep for:
TRIGGER_CALENDAR_SUBJECT" - Body: Generated summary with meeting link
Configuration
- Create the workflow with the operations above
- Create a calendar trigger for the calendar you want to monitor
- Set the trigger to fire 15 minutes before events
- Select the prep workflow as the execution target
Example: Post-Meeting Follow-up
Automate follow-up actions after meetings end:
- Start - Triggered when meeting is updated (to catch when it ends)
- Check if Meeting Ended - Evaluate if the current time is past the end time
- Generate Summary - AI operation to create action items (if you have meeting notes)
- Send Follow-up - Email the organizer with next steps
Troubleshooting
Calendar Subscription Not Activating
- Verify your Azure AD app has
Calendars.Readpermission - Check that admin consent was granted
- Ensure the monitored user exists and has a valid mailbox
- Verify the connection credentials are correct
Events Not Triggering Workflows
- Check that the trigger is set to Active
- Verify you are monitoring the correct calendar
- Ensure the event types match your trigger configuration
- Check for errors in Raikoo logs
"Event Starting" Triggers Not Firing
- These triggers rely on periodic polling, so there may be slight timing variations
- Ensure your trigger's "minutes before" setting is appropriate
- Check that the calendar has upcoming events to process
Permission Errors
- Confirm
Calendars.Readpermission is granted as Application permission (not Delegated) - Verify admin consent was provided
- Check the app has access to the specific user's calendar
Subscription Lifecycle
Raikoo manages calendar subscriptions automatically:
- Creation: When you save a calendar trigger, a subscription is created
- Renewal: Subscriptions are renewed before the 3-day expiration
- Polling: "Event starting" triggers use additional polling to detect upcoming events
- Cleanup: Subscriptions are removed when the trigger is deleted
Best Practices
- Use specific calendars: Monitor specific user calendars rather than shared calendars when possible
- Filter by event type: Only trigger on the event types you actually need
- Handle all-day events: Account for all-day events which have different time formats
- Consider time zones: Calendar events include timezone information - handle appropriately
- Test with recurring events: Verify your workflow handles recurring meetings correctly
- Monitor for gaps: Event starting triggers depend on polling - account for slight timing variations
Combining with Other Triggers
Calendar triggers work well in combination with other integrations:
- Email + Calendar: Send meeting prep via email when a meeting is approaching
- Teams/Slack + Calendar: Post meeting reminders to team channels
- SMS + Calendar: Send text reminders for important external meetings
Security Considerations
- Minimize access: Only request permissions for calendars you need to monitor
- Audit access: Azure AD logs all Graph API calendar access
- Consider sensitivity: Some calendar events may contain sensitive information
- Service accounts: Consider using dedicated service accounts for calendar monitoring
Next Steps
- Set up email triggers for email-based automation
- Learn about workflows to build complex calendar automation
- Configure Teams integration for meeting-related notifications