> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Créer un planning

> Créer une nouvelle session planifiée.

**Obsolète.** Les planifications sont remplacées par les Automatisations : créez plutôt une automatisation avec un déclencheur `schedule:recurring` via `POST /v3/organizations/{org_id}/automations`. Pour les organisations ayant migré vers les Automatisations, cet endpoint renvoie `403` ; les planifications existantes peuvent toujours être consultées, mises à jour et supprimées.

<Warning>
  **Obsolète.** Les planifications sont remplacées par les [automatisations](/fr/api-reference/v3/automations/post-organizations-automations). Créez les tâches planifiées sous forme d'automatisation avec un trigger `schedule:recurring` via `POST /v3/organizations/{org_id}/automations`. À partir du 24 septembre 2026, cet endpoint renverra `403` pour les organisations migrées vers les automatisations ; les organisations dont la migration est en cours conservent la création de planifications jusqu'à la fin de celle-ci.
</Warning>

<h2 id="permissions">
  Autorisations
</h2>

Nécessite un [compte de service](/fr/api-reference/v3/service-users/members-service-users) ou un [jeton d’accès personnel](/fr/api-reference/personal-access-tokens) disposant de l’autorisation `ManageOrgSchedules` au niveau de l’organisation.

<h2 id="schedule-type">
  Type de planification
</h2>

Le champ `schedule_type` indique si la planification est récurrente ou ponctuelle :

* `recurring` (par défaut) — Nécessite le champ `frequency` avec une expression cron
* `one_time` — Nécessite le champ `scheduled_at` avec une date et heure au format ISO 8601 dans le futur

<h2 id="frequency">
  Fréquence
</h2>

Pour les planifications récurrentes, le champ `frequency` accepte une expression cron au format standard (par exemple, `0 9 * * 1-5` pour les jours ouvrés à 9 h UTC).

<h2 id="scheduled-at">
  Date de planification
</h2>

Pour les programmations uniques, le champ `scheduled_at` accepte une date et une heure au format ISO 8601 avec fuseau horaire (par exemple, `2026-03-01T09:00:00Z`). La date et l’heure doivent être postérieures au moment présent. Après son exécution, la programmation est automatiquement désactivée.

<h2 id="agent-types">
  Types d'agents
</h2>

| Agent | Description |
| - | - |
| `devin` | Agent Devin standard (par défaut) |
| `data_analyst` | Agent d'analyse de données |

Les autres valeurs d'`agent` sont rejetées avec une erreur de validation `422`.

<h2 id="user-impersonation">
  Usurpation d'identité d'utilisateur
</h2>

Le paramètre `create_as_user_id` permet de créer une planification pour le compte d'un autre utilisateur. Cela nécessite :

1. Le compte de service doit disposer de l'autorisation `ImpersonateOrgSessions`
2. L'utilisateur cible doit être membre de l'organisation
3. L'utilisateur cible doit disposer de l'autorisation `UseDevinSessions`


## OpenAPI

````yaml fr/v3-openapi.yaml POST /v3/organizations/{org_id}/schedules
openapi: 3.1.0
info:
  description: API Devin v3 avec authentification par compte de service et RBAC
  title: Devin API v3
  version: 3.0.0
servers: []
security:
  - bearerAuth: []
paths:
  /v3/organizations/{org_id}/schedules:
    post:
      tags:
        - schedules
      summary: Créer un planning
      description: >-
        Créer une nouvelle session planifiée.


        **Obsolète.** Les planifications sont remplacées par les Automatisations
        : créez plutôt une automatisation avec un déclencheur
        `schedule:recurring` via `POST /v3/organizations/{org_id}/automations`.
        Pour les organisations ayant migré vers les Automatisations, cet
        endpoint renvoie `403` ; les planifications existantes peuvent toujours
        être consultées, mises à jour et supprimées.
      operationId: handle_create_schedule_v3_organizations__org_id__schedules_post
      parameters:
        - description: "ID de l’organisation (préfixe\_: org-)"
          in: path
          name: org_id
          required: true
          schema:
            example: org-abc123def456
            title: Org Id
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScheduleCreateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduleResponse'
          description: Réponse réussie
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Non autorisé
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Accès interdit
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Introuvable
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Conflit
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Contenu impossible à traiter
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Trop de requêtes
      deprecated: true
components:
  schemas:
    ScheduleCreateRequest:
      properties:
        agent:
          default: devin
          enum:
            - devin
            - data_analyst
          title: Agent
          type: string
        bypass_approval:
          default: false
          title: Bypass Approval
          type: boolean
        create_as_user_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Create As User Id
        frequency:
          anyOf:
            - type: string
            - type: 'null'
          title: Frequency
        interval_count:
          default: 1
          title: Interval Count
          type: integer
        name:
          title: Name
          type: string
        notify_on:
          default: failure
          enum:
            - always
            - failure
            - never
          title: Notify On
          type: string
        platform:
          anyOf:
            - type: string
            - type: 'null'
          description: "Plateforme de VM pour les sessions générées par cette planification (p.\_ex. 'windows'). Si elle est omise, les sessions utilisent la plateforme par défaut de l'organisation au moment du déclenchement. La valeur doit correspondre à une plateforme configurée pour l'organisation (sans distinction de casse)\_; les valeurs inconnues sont rejetées avec une erreur 400 qui liste les libellés de plateforme disponibles."
          title: Platform
        playbook_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Playbook Id
        prompt:
          title: Prompt
          type: string
        schedule_type:
          default: recurring
          enum:
            - recurring
            - one_time
          title: Schedule Type
          type: string
        scheduled_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Scheduled At
        slack_channel_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Slack Channel Id
        slack_team_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Slack Team Id
        tags:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Tags
        target_devin_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Target Devin Id
      required:
        - name
        - prompt
      title: ScheduleCreateRequest
      type: object
    ScheduleResponse:
      properties:
        agent:
          enum:
            - devin
            - data_analyst
          title: Agent
          type: string
        bypass_approval:
          default: false
          title: Bypass Approval
          type: boolean
        consecutive_failures:
          title: Consecutive Failures
          type: integer
        created_at:
          format: date-time
          title: Created At
          type: string
        created_by:
          anyOf:
            - type: string
            - type: 'null'
          title: Created By
        enabled:
          title: Enabled
          type: boolean
        frequency:
          anyOf:
            - type: string
            - type: 'null'
          title: Frequency
        interval_count:
          default: 1
          title: Interval Count
          type: integer
        last_edited_by:
          anyOf:
            - type: string
            - type: 'null'
          title: Last Edited By
        last_error_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Last Error At
        last_error_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Last Error Message
        last_executed_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Last Executed At
        name:
          title: Name
          type: string
        notify_on:
          enum:
            - always
            - failure
            - never
          title: Notify On
          type: string
        org_id:
          title: Org Id
          type: string
        platform:
          anyOf:
            - type: string
            - type: 'null'
          title: Platform
        playbook:
          anyOf:
            - $ref: '#/components/schemas/PlaybookInfo'
            - type: 'null'
        prompt:
          title: Prompt
          type: string
        schedule_type:
          default: recurring
          enum:
            - recurring
            - one_time
          title: Schedule Type
          type: string
        scheduled_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Scheduled At
        scheduled_session_id:
          title: Scheduled Session Id
          type: string
        slack_channel_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Slack Channel Id
        slack_team_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Slack Team Id
        tags:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Tags
        target_devin_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Target Devin Id
        updated_at:
          format: date-time
          title: Updated At
          type: string
      required:
        - scheduled_session_id
        - org_id
        - created_by
        - name
        - prompt
        - playbook
        - frequency
        - enabled
        - last_executed_at
        - created_at
        - updated_at
        - last_error_at
        - last_error_message
        - consecutive_failures
        - notify_on
        - agent
      title: ScheduleResponse
      type: object
    ProblemDetail:
      description: "Corps d’erreur RFC 9457 application/problem+json pour l’API v3.\n\ndetail est conservé de l’ancien corps {\"detail\": ...} pour assurer la rétrocompatibilité\_; les\nautres membres sont ajoutés de manière additive. errors contient les échecs de validation\nau niveau des champs (422 uniquement)."
      properties:
        detail:
          anyOf:
            - type: string
            - type: 'null'
          description: Explication en langage clair, spécifique à cette occurrence.
          title: Detail
        error_code:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Code exploitable par machine indiquant le refus d’une action bloquée
            (p. ex. "user_frozen", "migrated_session").
          title: Error Code
        errors:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          description: Erreurs de validation par champ (réponses 422 uniquement).
          title: Errors
        instance:
          anyOf:
            - type: string
            - type: 'null'
          description: Une référence d’URI (le chemin de la requête) pour cette occurrence.
          title: Instance
        status:
          description: Le code d’état HTTP.
          title: Status
          type: integer
        title:
          description: Un bref résumé du type de problème, compréhensible par un humain.
          title: Title
          type: string
        type:
          default: about:blank
          description: Une référence d’URI identifiant le type de problème.
          title: Type
          type: string
      required:
        - title
        - status
      title: ProblemDetail
      type: object
    PlaybookInfo:
      properties:
        playbook_id:
          title: Playbook Id
          type: string
        title:
          anyOf:
            - type: string
            - type: 'null'
          title: Title
      required:
        - playbook_id
        - title
      title: PlaybookInfo
      type: object
  securitySchemes:
    bearerAuth:
      description: "Identifiant de compte de service (préfixe\_: cog_)"
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.