Calendars API

Synchronize Calendars and Automate Meeting Recordings

The Calendars API allows you to automatically sync calendars from Outlook and Google Workspace to deploy bots to scheduled meetings.

This makes it easy to:
  • Automate recording and participation in meetings without manual intervention
  • Connect to both Google Workspace and Microsoft Outlook calendars
  • Receive real-time updates when calendar events change
  • Apply business logic to determine which meetings to record

The API follows a simple pattern allowing you to connect calendar providers, list and manage events, and automatically schedule recording bots when meetings occur.

Key Features

  • Multi-Calendar Support: Connect to both Google Workspace and Microsoft Outlook calendars
  • OAuth Authentication: Secure integration with calendar providers using OAuth
  • Real-Time Webhooks: Receive immediate notifications when calendar events change
  • Selective Recording: Implement your own business rules to decide which meetings to record
  • Bot Configuration: Customize recording settings for each meeting
  • Recurring Meeting Support: Handle recurring meeting series efficiently

Implementation Process:

  • Authentication Setup: Connect calendars using OAuth credentials
  • Calendar Selection: Choose which calendars to sync
  • Event Management: List, filter, and process calendar events
  • Recording Configuration: Schedule bots for specific meetings
  • Webhook Processing: Receive and handle real-time calendar updates
  • Maintenance: Handle credential refreshing and error recovery

API Usage

The Calendars API is part of the Meeting BaaS platform and provides endpoints for:

  • Creating and managing calendar integrations
  • Listing and filtering calendar events
  • Scheduling recording bots for specific meetings
  • Managing webhooks for real-time updates

The API is fully documented and supports standard REST operations with JSON payloads. Authentication is performed using your Meeting BaaS API key along with OAuth tokens for calendar provider access.

API Usage Example

Below is an example of how to use the Calendars API to schedule bots for team meetings:


This Python code demonstrates how to interact with the Calendars API to retrieve events and schedule recording bots.

CALENDARS_API.PY
import json from datetime import datetime, timedelta import requests # Your API key api_key = "your-meetingbaas-api-key" # API endpoints base_url = "https://api.meetingbaas.com" calendars_url = f"{base_url}/calendars" # Headers for authentication headers = {"Content-Type": "application/json", "x-spoke-api-key": api_key} # 1. List connected calendar providers def list_calendar_providers(): response = requests.get(f"{calendars_url}/providers", headers=headers) return response.json() # 2. Schedule bots for all team meetings in the next week def schedule_bots_for_team_meetings(): # Calculate date range (next 7 days) today = datetime.now().isoformat() next_week = (datetime.now() + timedelta(days=7)).isoformat() # Query parameters to find team meetings params = {"start_time": today, "end_time": next_week, "query": "Team Meeting"} # Get matching events events_response = requests.get( f"{calendars_url}/events", headers=headers, params=params ) if events_response.status_code != 200: return f"Error fetching events: {events_response.text}" events = events_response.json().get("events", []) scheduled_bots = [] # Schedule a bot for each meeting for event in events: bot_data = { "meeting_url": event.get("meeting_url"), "scheduled_time": event.get("start_time"), "bot_name": "Team Meeting Recorder", "speech_to_text": "Gladia", "entry_message": "I'll be recording this team meeting.", } bot_response = requests.post(f"{base_url}/bots", headers=headers, json=bot_data) if bot_response.status_code == 200: bot = bot_response.json() scheduled_bots.append( { "event_id": event.get("id"), "event_title": event.get("title"), "bot_id": bot.get("bot_id"), } ) return {"total_events": len(events), "scheduled_bots": scheduled_bots} # Run the example if __name__ == "__main__": providers = list_calendar_providers() print(f"Connected calendar providers: {providers}") result = schedule_bots_for_team_meetings() print(json.dumps(result, indent=2))
preview features