# Setup OAuth Google Calendar - Smart Calendar

Ce guide te permet de configurer la connexion Google Calendar pour ton app locale NextAuth.

## Prerequis
- Un compte Google.
- Acces a Google Cloud Console.
- Projet lance en local sur `http://localhost:3000`.

## 1) Creer un projet Google Cloud
1. Ouvre: https://console.cloud.google.com
2. Cree un nouveau projet (ex: `smart-calendar-local`)
3. Selectionne ce projet en haut de l'ecran

## 2) Activer l'API Google Calendar
1. Va dans **APIs & Services** -> **Library**
2. Recherche **Google Calendar API**
3. Clique **Enable**

## 3) Configurer l'ecran de consentement OAuth
1. Va dans **APIs & Services** -> **OAuth consent screen**
2. User type:
   - **External** (simple pour dev local)
3. Renseigne les champs obligatoires (nom app, email support, etc.)
4. Sauvegarde
5. Dans **Scopes**, ajoute explicitement:
   - `https://www.googleapis.com/auth/calendar`
   - `https://www.googleapis.com/auth/calendar.events`
   - `openid`
   - `email`
   - `profile`
6. Dans **Test users**, ajoute ton email Google

Important:
- Si `calendar` et `calendar.events` ne sont pas dans l'ecran de consentement, Google ne les delivrera pas au token.

## 4) Creer l'identifiant OAuth client
1. Va dans **APIs & Services** -> **Credentials**
2. **Create credentials** -> **OAuth client ID**
3. Application type: **Web application**
4. Name: `Smart Calendar Local Web`
5. Authorized redirect URIs:
   - `http://localhost:3000/api/auth/callback/google`
6. Clique **Create**
7. Copie:
   - Client ID -> `GOOGLE_CLIENT_ID`
   - Client Secret -> `GOOGLE_CLIENT_SECRET`

## 5) Remplir .env.local
Dans [.env.local](.env.local), complete:

```dotenv
GOOGLE_CLIENT_ID=<Google OAuth Client ID>
GOOGLE_CLIENT_SECRET=<Google OAuth Client Secret>
```

## 6) Verifier que la connexion fonctionne
1. Lance l'app: `npm run dev`
2. Ouvre `http://localhost:3000`
3. Clique **Connecter Google**
4. Accepte les permissions
5. Reviens dans l'app: l'etat doit afficher connecte Google

## 7) Erreurs frequentes
- `redirect_uri_mismatch`:
  - Verifie exactement: `http://localhost:3000/api/auth/callback/google`
- `access blocked` ou app non verifiee:
  - Ajoute ton compte dans **Test users**
- `invalid_client`:
  - Mauvais client ID/secret ou projet Google incorrect
- `Scopes Google insuffisants`:
   - Les scopes Calendar ne sont pas presents dans l'ecran de consentement
   - Ou tu utilises un ancien consentement sans scopes Calendar

## 8) Reset complet du consentement Google (recommande si scopes insuffisants)
1. Va dans ton compte Google: **Security** -> **Third-party apps with account access**
2. Supprime l'acces de ton app OAuth Smart Calendar
3. Dans l'app Smart Calendar:
    - Clique **Se deconnecter**
    - Puis **Reconnecter Google (forcer permissions)**
4. A la popup Google, re-accepte les permissions Calendar
5. Re-teste la creation d'evenement

## Checklist rapide
- Projet Google Cloud cree
- Calendar API activee
- Consent screen configure
- Redirect URI exacte
- Credentials copies dans `.env.local`
- Connexion Google validee depuis l'UI
