Skip to main content
Glama

Google Calendar MCP

datetime-utils.test.ts2.66 kB
import { describe, it, expect } from 'vitest'; import { hasTimezoneInDatetime, convertToRFC3339, createTimeObject } from '../../../handlers/utils/datetime.js'; describe('Datetime Utilities', () => { describe('hasTimezoneInDatetime', () => { it('should return true for timezone-aware datetime strings', () => { expect(hasTimezoneInDatetime('2024-01-01T10:00:00Z')).toBe(true); expect(hasTimezoneInDatetime('2024-01-01T10:00:00+05:00')).toBe(true); expect(hasTimezoneInDatetime('2024-01-01T10:00:00-08:00')).toBe(true); }); it('should return false for timezone-naive datetime strings', () => { expect(hasTimezoneInDatetime('2024-01-01T10:00:00')).toBe(false); expect(hasTimezoneInDatetime('2024-01-01 10:00:00')).toBe(false); }); }); describe('convertToRFC3339', () => { it('should return timezone-aware datetime unchanged', () => { const datetime = '2024-01-01T10:00:00Z'; expect(convertToRFC3339(datetime, 'America/Los_Angeles')).toBe(datetime); }); it('should return timezone-aware datetime with offset unchanged', () => { const datetime = '2024-01-01T10:00:00-08:00'; expect(convertToRFC3339(datetime, 'America/Los_Angeles')).toBe(datetime); }); it('should convert timezone-naive datetime using fallback timezone', () => { const datetime = '2024-06-15T14:30:00'; const result = convertToRFC3339(datetime, 'UTC'); // Should result in a timezone-aware string (the exact time depends on system timezone) expect(result).toMatch(/2024-06-15T\d{2}:\d{2}:\d{2}Z/); expect(result).not.toBe(datetime); // Should be different from input }); it('should fallback to UTC for invalid timezone conversion', () => { const datetime = '2024-01-01T10:00:00'; const result = convertToRFC3339(datetime, 'Invalid/Timezone'); // Should fallback to UTC expect(result).toBe('2024-01-01T10:00:00Z'); }); }); describe('createTimeObject', () => { it('should create time object without timeZone for timezone-aware datetime', () => { const datetime = '2024-01-01T10:00:00Z'; const result = createTimeObject(datetime, 'America/Los_Angeles'); expect(result).toEqual({ dateTime: datetime }); }); it('should create time object with timeZone for timezone-naive datetime', () => { const datetime = '2024-01-01T10:00:00'; const timezone = 'America/Los_Angeles'; const result = createTimeObject(datetime, timezone); expect(result).toEqual({ dateTime: datetime, timeZone: timezone }); }); }); });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nspady/google-calendar-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server