We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jackfioru92/mcp-aruba-email'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
"""Test script for Aruba CalDAV calendar functionality."""
import os
from datetime import datetime, timedelta
from dotenv import load_dotenv
from src.mcp_aruba.calendar_client import ArubaCalendarClient
# Load environment variables
load_dotenv()
def test_calendar():
"""Test calendar operations."""
print("Testing Aruba CalDAV Calendar Connection...")
print("=" * 60)
# Get credentials from environment
url = os.getenv("CALDAV_URL", "https://syncdav.aruba.it/calendars/user@domain.com/")
username = os.getenv("CALDAV_USERNAME", os.getenv("IMAP_USERNAME", ""))
password = os.getenv("CALDAV_PASSWORD", os.getenv("IMAP_PASSWORD", ""))
if not username or not password:
print("❌ Error: CalDAV credentials not configured")
print("Please set CALDAV_USERNAME and CALDAV_PASSWORD in .env file")
return
print(f"URL: {url}")
print(f"Username: {username}")
print()
try:
# Test connection
print("1. Testing connection...")
with ArubaCalendarClient(url, username, password) as client:
print(f"✅ Connected successfully!")
print(f" Principal: {client.principal}")
# Get calendars
calendars = client.principal.calendars()
print(f" Found {len(calendars)} calendars")
if not calendars:
print("\n⚠️ No calendars found. You may need to:")
print(" 1. Log into Aruba Webmail (https://webmail.aruba.it)")
print(" 2. Go to Calendar section")
print(" 3. Click 'Sincronizza calendario' (Sync calendar)")
print(" 4. Follow the wizard and select CalDAV option")
print(" 5. Select which calendars to sync")
return
print(f"✅ Connected successfully to calendar: {client.calendar.name if client.calendar else 'Unknown'}")
print()
# Test listing events
print("2. Listing upcoming events (next 30 days)...")
start_date = datetime.now()
end_date = datetime.now() + timedelta(days=30)
events = client.list_events(start_date=start_date, end_date=end_date, limit=10)
print(f"Found {len(events)} upcoming events:")
for i, event in enumerate(events[:5], 1): # Show first 5
print(f"\n Event {i}:")
print(f" - UID: {event.get('uid', 'N/A')}")
print(f" - Summary: {event.get('summary', 'N/A')}")
print(f" - Start: {event.get('start', 'N/A')}")
print(f" - End: {event.get('end', 'N/A')}")
print(f" - Location: {event.get('location', 'N/A')}")
attendees = event.get('attendees', [])
if attendees:
print(f" - Attendees: {len(attendees)}")
for att in attendees[:3]: # Show first 3
print(f" • {att.get('email', 'N/A')} ({att.get('status', 'UNKNOWN')})")
print()
# Test creating an event
print("3. Testing event creation...")
test_summary = "Test Event - MCP Aruba Calendar"
test_start = datetime.now() + timedelta(days=7)
test_end = test_start + timedelta(hours=1)
try:
result = client.create_event(
summary=test_summary,
start=test_start,
end=test_end,
description="This is a test event created by MCP Aruba Calendar Client",
location="Virtual Meeting"
)
if result.get('success'):
print(f"✅ Event created successfully!")
print(f" - UID: {result.get('uid')}")
print(f" - Summary: {result.get('summary')}")
print(f" - Start: {result.get('start')}")
print()
# Try to delete the test event
print("4. Cleaning up test event...")
delete_result = client.delete_event(result.get('uid'))
if delete_result.get('success'):
print("✅ Test event deleted successfully")
else:
print(f"⚠️ Could not delete test event: {delete_result.get('error')}")
else:
print(f"❌ Failed to create event: {result.get('error', 'Unknown error')}")
except Exception as e:
print(f"⚠️ Event creation test skipped: {e}")
print()
print("=" * 60)
print("✅ Calendar tests completed successfully!")
except Exception as e:
print(f"❌ Error: {e}")
print()
print("Common issues:")
print("1. Check that CalDAV URL is correct (try: https://caldav.aruba.it)")
print("2. Verify credentials are correct")
print("3. Ensure calendar access is enabled in your Aruba account")
print("4. Check firewall/network settings")
if __name__ == "__main__":
test_calendar()