# ══════════════════════════════════════════════════════════════════════════════
# Calendar MCP Configuration
# ══════════════════════════════════════════════════════════════════════════════
# Server Configuration
MCP_SERVER_NAME=calendar-mcp
MCP_SERVER_VERSION=1.0.0
LOG_LEVEL=info # debug, info, warn, error
# Default Settings
DEFAULT_TIMEZONE=America/New_York # IANA timezone
DEFAULT_WORKING_HOURS_START=09:00
DEFAULT_WORKING_HOURS_END=17:00
DEFAULT_WORKING_DAYS=monday,tuesday,wednesday,thursday,friday
# ══════════════════════════════════════════════════════════════════════════════
# Provider: Google Calendar
# ══════════════════════════════════════════════════════════════════════════════
GOOGLE_ENABLED=true
GOOGLE_PROVIDER_ID=google-primary # Unique ID for this provider instance
GOOGLE_PROVIDER_NAME=Google Calendar # Display name
GOOGLE_EMAIL=user@gmail.com # Account email
# OAuth Application Credentials (from Google Cloud Console)
GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your-client-secret
GOOGLE_REDIRECT_URI=http://localhost:3000/oauth/google/callback
# Pre-authorized tokens (obtain from OAuth Playground or initial auth flow)
# https://developers.google.com/oauthplayground/
GOOGLE_ACCESS_TOKEN=
GOOGLE_REFRESH_TOKEN=
GOOGLE_TOKEN_EXPIRY= # ISO 8601 datetime
# ══════════════════════════════════════════════════════════════════════════════
# Provider: Microsoft 365 (Graph API)
# ══════════════════════════════════════════════════════════════════════════════
MICROSOFT_ENABLED=true
MICROSOFT_PROVIDER_ID=microsoft-primary # Unique ID for this provider instance
MICROSOFT_PROVIDER_NAME=Microsoft 365 # Display name
MICROSOFT_EMAIL=user@company.com # Account email
# Azure AD Application Credentials (from Azure Portal)
MICROSOFT_CLIENT_ID=your-app-id
MICROSOFT_CLIENT_SECRET=your-client-secret
MICROSOFT_TENANT_ID=common # 'common', 'organizations', or specific tenant ID
MICROSOFT_REDIRECT_URI=http://localhost:3000/oauth/microsoft/callback
# Pre-authorized tokens (obtain from Graph Explorer or initial auth flow)
# https://developer.microsoft.com/en-us/graph/graph-explorer
MICROSOFT_ACCESS_TOKEN=
MICROSOFT_REFRESH_TOKEN=
MICROSOFT_TOKEN_EXPIRY= # ISO 8601 datetime
# ══════════════════════════════════════════════════════════════════════════════
# Provider: Exchange On-Premises (EWS)
# ══════════════════════════════════════════════════════════════════════════════
EXCHANGE_ENABLED=false
EXCHANGE_PROVIDER_ID=exchange-work # Unique ID for this provider instance
EXCHANGE_PROVIDER_NAME=Work Exchange # Display name
EXCHANGE_EMAIL=user@company.com # Account email
# EWS Endpoint
EXCHANGE_EWS_URL=https://exchange.company.com/EWS/Exchange.asmx
# Authentication Method: 'ntlm', 'basic', or 'oauth'
EXCHANGE_AUTH_METHOD=ntlm
# For NTLM Authentication
EXCHANGE_USERNAME=DOMAIN\\username # Include domain for NTLM
EXCHANGE_PASSWORD=your-password
EXCHANGE_DOMAIN=COMPANY # Windows domain
# For Basic Authentication
# EXCHANGE_AUTH_METHOD=basic
# EXCHANGE_USERNAME=username
# EXCHANGE_PASSWORD=your-password
# For OAuth Authentication (Hybrid Exchange with Azure AD)
# EXCHANGE_AUTH_METHOD=oauth
# EXCHANGE_OAUTH_CLIENT_ID=your-app-id
# EXCHANGE_OAUTH_CLIENT_SECRET=your-client-secret
# EXCHANGE_OAUTH_TENANT_ID=your-tenant-id
# EXCHANGE_OAUTH_ACCESS_TOKEN=
# EXCHANGE_OAUTH_REFRESH_TOKEN=
# ══════════════════════════════════════════════════════════════════════════════
# Provider: Exchange On-Premises #2 (Second Exchange Account)
# ══════════════════════════════════════════════════════════════════════════════
EXCHANGE_2_ENABLED=false
EXCHANGE_2_PROVIDER_ID=exchange-second
EXCHANGE_2_PROVIDER_NAME=Second Exchange
EXCHANGE_2_EMAIL=user@company2.com
# EWS Endpoint (can be same server or different)
EXCHANGE_2_EWS_URL=https://mail.company2.com/EWS/Exchange.asmx
# Authentication
EXCHANGE_2_AUTH_METHOD=ntlm
EXCHANGE_2_USERNAME=DOMAIN\\username
EXCHANGE_2_PASSWORD=your-password
EXCHANGE_2_DOMAIN=COMPANY2
# ══════════════════════════════════════════════════════════════════════════════
# Advanced Configuration
# ══════════════════════════════════════════════════════════════════════════════
# Request Timeouts (milliseconds)
REQUEST_TIMEOUT=30000
# Rate Limiting
RATE_LIMIT_REQUESTS_PER_MINUTE=60
# Retry Configuration
MAX_RETRIES=3
RETRY_DELAY_MS=1000