> Portal Navigation: > > - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version. > - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages). > - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`). > - Top-level index of all portals: https://dev.wix.com/docs/llms.txt > - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt # Method name: connectByOAuth(providerId: string, scheduleId: string, redirectUrl: string, options: ConnectByOAuthOptions) # Method package: wixBookingsV2 # Method menu location: wixBookingsV2 --> externalCalendars --> connectByOAuth # Method Link: https://dev.wix.com/docs/velo/apis/wix-bookings-v2/external-calendars/connect-by-oauth.md # Method Description: Connects to an external calendar using the OAuth authorization protocol. The authorization flow should take place as follows: 1. Call the function with the appropriate parameters. 2. Redirect the user to the URL received in the response. 3. The user authorizes access. 4. The user is redirected to the URL you provide in the `redirectUrl` parameter, with a query parameter `connectionId` containing the new connection ID. If the attempt to connect fails, the user is still redirected to the URL you provide in the `redirectUrl` parameter, but with a query parameter `error` containing one of the following values: - `reject`: The user rejected the authorization request. - `unsupported`: Connecting to the user's external account type is not supported by the provider. - `internal`: An error unrelated to the client or the request that prevents the server from fulfilling the request. Once a connection is successfully created, use `listEvents()` to obtain an up-to-date list of events in the connected external calendars. > **Note:** > Use `listProviders()` to find out whether to connect to a particular provider using this endpoint or `connectByCredentials()`. # Method Code Examples: *** Note: do not assume any prop names or enum values other than the ones in the example. ## Connect with an external calendar by OAuth ```javascript import {externalCalendars} from 'wix-bookings.v2'; async function connectByOAuth(providerId, scheduleId, redirectUrl) { const {oauthUrl} = await externalCalendars.connectByOAuth(providerId, scheduleId, redirectUrl) return oauthUrl } ``` ---