Is Google Calendar giving you a headache?

    You were probably searching for a fix for that obscure Google Calendar error.But maybe you found something better.

    Stop debugging. Start coordinating.

    Qordinate acts as your intelligent layer between apps like Google Calendar and your life. We handle the messy API connections and coordination so you can focus on what actually matters.

    Google Calendar Integration Terminal Errors

    Authentication Errors

    invalid_client

    Error: invalid_client
    {
      "error": "invalid_client",
      "error_description": "The OAuth client was not found."
    }
    

    access_denied

    Error: access_denied
    {
      "error": "access_denied",
      "error_description": "The user denied your request"
    }
    

    invalid_grant

    Error: invalid_grant
    {
      "error": "invalid_grant",
      "error_description": "Bad Request"
    }
    

    API Errors

    forbidden

    HTTP 403 Forbidden
    {
      "error": {
        "errors": [
          {
            "domain": "calendar",
            "reason": "forbidden",
            "message": "Forbidden"
          }
        ],
        "code": 403,
        "message": "Forbidden"
      }
    }
    

    notFound

    HTTP 404 Not Found
    {
      "error": {
        "errors": [
          {
            "domain": "calendar",
            "reason": "notFound",
            "message": "Not Found"
          }
        ],
        "code": 404,
        "message": "Not Found"
      }
    }
    

    invalid

    HTTP 400 Bad Request
    {
      "error": {
        "errors": [
          {
            "domain": "calendar",
            "reason": "invalid",
            "message": "Invalid value for: Invalid format: 2023-13-45T25:61:61.000Z is not a valid date and time."
          }
        ],
        "code": 400,
        "message": "Invalid value for: Invalid format: 2023-13-45T25:61:61.000Z is not a valid date and time."
      }
    }
    

    SDK-Specific Errors

    Python SDK: googleapiclient.errors.HttpError

    Traceback (most recent call last):
      File "calendar_script.py", line 18, in <module>
        events_result = service.events().list(calendarId='primary').execute()
      File "/usr/local/lib/python3.9/site-packages/googleapiclient/http.py", line 907, in execute
        self._execute(num_retries)
      File "/usr/local/lib/python3.9/site-packages/googleapiclient/http.py", line 942, in execute
        raise HttpError(resp, content, uri=self.uri)
    googleapiclient.errors.HttpError: <HttpError 403 when requesting https://www.googleapis.com/calendar/v3/calendars/primary/events?alt=json returned "Forbidden">
    

    Node.js SDK: GaxiosError

    GaxiosError: invalid_client
        at Gaxios._request (/node_modules/gaxios/src/gaxios.ts:160:13)
        at processTicksAndRejections (internal/process/task_queues.js:95:5)
        at async Calendar.calendars.get (/node_modules/googleapis/src/apis/calendar/v3.ts:2341:15)
        at async main (/app/index.js:23:18)
    {
      response: {
        config: { url: 'https://www.googleapis.com/oauth2/v4/token', method: 'POST' },
        data: { error: 'invalid_client', error_description: 'The OAuth client was not found.' },
        status: 400,
        statusText: 'Bad Request',
        headers: {
          'content-type': 'application/json; charset=utf-8',
          'cache-control': 'no-cache, no-store, max-age=0, must-revalidate',
          'pragma': 'no-cache',
          'expires': 'Mon, 01 Jan 1990 00:00:00 GMT'
        }
      }
    }
    

    Calendar-Specific Errors

    timeRangeEmpty

    HTTP 400 Bad Request
    {
      "error": {
        "errors": [
          {
            "domain": "calendar",
            "reason": "timeRangeEmpty",
            "message": "The specified time range is empty."
          }
        ],
        "code": 400,
        "message": "The specified time range is empty."
      }
    }
    

    invalidRecurrence

    HTTP 400 Bad Request
    {
      "error": {
        "errors": [
          {
            "domain": "calendar",
            "reason": "invalidRecurrence",
            "message": "Invalid recurrence rule."
          }
        ],
        "code": 400,
        "message": "Invalid recurrence rule."
      }
    }
    

    Rate Limiting

    quotaExceeded

    HTTP 403 Forbidden
    {
      "error": {
        "errors": [
          {
            "domain": "usageLimits",
            "reason": "quotaExceeded",
            "message": "Quota exceeded for quota metric 'Queries' and limit 'Queries per minute per user' of service 'calendar-json.googleapis.com' for consumer 'project_number:123456789'."
          }
        ],
        "code": 403,
        "message": "Quota exceeded for quota metric 'Queries' and limit 'Queries per minute per user' of service 'calendar-json.googleapis.com' for consumer 'project_number:123456789'."
      }
    }
    

    Connection Errors

    timeout

    Error: timeout of 30000ms exceeded
        at createError (/node_modules/axios/lib/core/createError.js:16:15)
        at Timeout.handleTimeout [as _onTimeout] (/node_modules/axios/lib/adapters/http.js:280:16)
        at listOnTimeout (timers.js:557:17)
        at processTimers (timers.js:500:7)