# Google Classroom

Google Classroom is a free web service developed by Google for schools that aims to simplify creating, distributing, and grading assignments

- **Category:** education
- **Auth:** OAUTH2
- **Composio Managed App Available?** Yes
- **Tools:** 62
- **Triggers:** 0
- **Slug:** `GOOGLE_CLASSROOM`
- **Version:** 20260323_00

## Frequently Asked Questions

### How do I set up custom Google OAuth credentials for Google Classroom?

For a step-by-step guide on creating and configuring your own Google OAuth credentials with Composio, see [How to create OAuth2 credentials for Google Apps](https://composio.dev/auth/googleapps).

### Why am I seeing "App is blocked" when connecting Google Classroom?

The OAuth client is requesting scopes that Google hasn't verified for that client. This usually happens when you add extra scopes beyond the defaults.

Remove the additional scopes from your auth config, or create your own OAuth app and submit the scopes for verification. See [How to create OAuth2 credentials for Google Apps](https://composio.dev/auth/googleapps).

### Why am I getting "Google Classroom API has not been used in project" error?

When using custom OAuth credentials, the Google Classroom API must be enabled in the Google Cloud project that owns those credentials. Enable it in Google Cloud Console under APIs & Services, wait a few minutes, and retry.

### Why am I getting "Error 400: invalid_scope"?

The requested scopes are invalid or incorrectly formatted in the authorization URL. Verify your scope values against the [Google OAuth scopes docs](https://developers.google.com/identity/protocols/oauth2). If you're creating auth configs programmatically, see the [programmatic auth config guide](/docs/auth-configuration/programmatic-auth-configs).

### Why does the OAuth consent screen show "Composio" instead of my app?

By default, the consent screen uses Composio's OAuth app. To show your own app name and logo, create your own OAuth app and set a custom redirect URL. See [White-labeling authentication](/docs/white-labeling-authentication#using-your-own-oauth-apps).

### Why am I getting 401 errors on tool calls?

The user's access token is no longer valid. Common causes: the user revoked access, changed their password or 2FA, a Workspace admin policy changed, or Google's refresh token limit (~50 per account) was exceeded. Re-authenticating the user typically resolves this.

---

## Tools

### Create Course Alias

**Slug:** `GOOGLE_CLASSROOM_COURSES_ALIASES_CREATE`

Tool to create an alias for a course. Use when you need to add an alternative identifier to a course after confirming the course ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `alias` | string | Yes | The alias to create. Must be unique within its scope and cannot exceed 256 characters. Domain-scoped aliases (prefix 'd:') can only be created by domain administrators. Project-scoped aliases (prefix 'p:') can be created by any project user. |
| `courseId` | string | Yes | Identifier of the course. This may either be the Classroom-assigned identifier or an alias. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Course Alias

**Slug:** `GOOGLE_CLASSROOM_COURSES_ALIASES_DELETE`

Tool to delete an alias of a course. Use when you need to remove an alias from a course after confirming the course ID and alias name.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `alias` | string | Yes | The alias to delete. This may not be the Classroom-assigned identifier. |
| `courseId` | string | Yes | Identifier of the course. This may either be the Classroom-assigned identifier or an alias. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Course Aliases

**Slug:** `GOOGLE_CLASSROOM_COURSES_ALIASES_LIST`

Tool to list aliases for a course. Use when you need to retrieve all aliases associated with a specific course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `courseId` | string | Yes | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. |
| `pageSize` | integer | No | Maximum number of items to return. Zero or unspecified indicates that the server may assign a maximum. |
| `pageToken` | string | No | nextPageToken value returned from a previous list call, indicating that the subsequent page of results should be returned. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Announcement

**Slug:** `GOOGLE_CLASSROOM_COURSES_ANNOUNCEMENTS_CREATE`

Tool to create an announcement in a course. Use after confirming the course ID is valid.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `text` | string | No | The text content of the announcement. |
| `state` | string ("DRAFT" | "PUBLISHED" | "DELETED") | No | State of the announcement; if omitted defaults to PUBLISHED. |
| `courseId` | string | Yes | Identifier of the course. |
| `materials` | array | No | List of materials to attach to the announcement. |
| `assigneeMode` | string ("ALL_STUDENTS" | "INDIVIDUAL_STUDENTS") | No | Mode for assigning the announcement; ALL_STUDENTS or INDIVIDUAL_STUDENTS. |
| `scheduledTime` | string | No | RFC3339 timestamp at which to publish the announcement. |
| `individualStudentsOptions` | object | No | Options for INDIVIDUAL_STUDENTS assignee mode. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Announcement

**Slug:** `GOOGLE_CLASSROOM_COURSES_ANNOUNCEMENTS_DELETE`

Tool to delete an announcement. Use after confirming the announcement ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Identifier of the announcement to delete. |
| `courseId` | string | Yes | Identifier of the course. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Announcement

**Slug:** `GOOGLE_CLASSROOM_COURSES_ANNOUNCEMENTS_GET`

Tool to get an announcement. Use when you need to fetch an announcement by course and announcement ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Identifier of the announcement to retrieve. |
| `courseId` | string | Yes | Identifier of the course. This identifier can be either the Classroom-assigned ID or an alias. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Add-on Context for Announcement

**Slug:** `GOOGLE_CLASSROOM_COURSES_ANNOUNCEMENTS_GET_ADD_ON_CONTEXT`

Tool to get metadata for Classroom add-ons in the context of a specific announcement post. Use when validating query parameters and user permissions for add-ons loading in an iframe. Returns the current user's role (student or teacher) with exactly one context field populated.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `itemId` | string | Yes | Identifier of the Announcement, CourseWork, or CourseWorkMaterial with the attached add-on. |
| `postId` | string | No | Deprecated. Use itemId instead. |
| `courseId` | string | Yes | Identifier of the course. |
| `addOnToken` | string | No | Optional authorization token passed when redirecting to the add-on's URL. Required unless the add-on has attachments or the requesting project created the post. |
| `attachmentId` | string | No | Optional identifier for the specific attachment. Required for all requests except Attachment Discovery iframe. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Announcements

**Slug:** `GOOGLE_CLASSROOM_COURSES_ANNOUNCEMENTS_LIST`

Tool to list announcements in a course. Use after you have the course ID to page through announcements.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `orderBy` | string ("updateTime asc" | "updateTime desc") | No | How to sort announcements. Use `updateTime desc` (newest first) or `updateTime asc` (oldest first). Defaults to `updateTime desc`. |
| `courseId` | string | Yes | Identifier of the course whose announcements should be listed. Can be the Classroom-assigned identifier or an alias. |
| `pageSize` | integer | No | Maximum number of announcements to return. Must be between 1 and 100. Defaults to 30 if not set. |
| `pageToken` | string | No | Token specifying the next page of results to return. Obtain from a previous list call's `nextPageToken`. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Modify Announcement Assignees

**Slug:** `GOOGLE_CLASSROOM_COURSES_ANNOUNCEMENTS_MODIFY_ASSIGNEES`

Tool to modify assignee mode and options of an announcement. Use when you need to change who can view an announcement, either making it visible to all students or to specific students only.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Identifier of the announcement. |
| `courseId` | string | Yes | Identifier of the course. This may be the Classroom-assigned identifier or an alias. |
| `assigneeMode` | string ("ALL_STUDENTS" | "INDIVIDUAL_STUDENTS") | Yes | Mode of the announcement describing whether it is accessible by all students or specified individual students. Use ALL_STUDENTS for all students to see the item, or INDIVIDUAL_STUDENTS for a subset of students. |
| `modifyIndividualStudentsOptions` | object | No | Options for modifying which students can view the announcement when assigneeMode is INDIVIDUAL_STUDENTS. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Patch Announcement

**Slug:** `GOOGLE_CLASSROOM_COURSES_ANNOUNCEMENTS_PATCH`

Tool to update fields of an announcement. Use when you need to modify specific details of an existing announcement after confirming which fields to update.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Identifier of the announcement to update. |
| `text` | string | No | The text content of the announcement to set. |
| `state` | string ("DRAFT" | "PUBLISHED" | "DELETED") | No | State of the announcement. |
| `courseId` | string | Yes | Identifier of the course. |
| `materials` | array | No | List of materials to attach to the announcement. |
| `updateMask` | string | Yes | Comma-separated list of fields to update. E.g., 'text,state'. |
| `assigneeMode` | string ("ALL_STUDENTS" | "INDIVIDUAL_STUDENTS") | No | Mode for assigning the announcement; ALL_STUDENTS or INDIVIDUAL_STUDENTS. |
| `scheduledTime` | string | No | RFC3339 timestamp at which to publish the announcement. |
| `individualStudentsOptions` | object | No | Options for INDIVIDUAL_STUDENTS assignee mode. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Add-on Attachment

**Slug:** `GOOGLE_CLASSROOM_COURSES_ANNOUNCES_ADD_ON_ATTACHS_DELETE`

Tool to delete an add-on attachment from a course announcement. Requires the add-on to have been the original creator of the attachment.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `itemId` | string | Yes | Identifier of the announcement under which the attachment is attached. |
| `postId` | string | No | Deprecated. Use itemId instead. Optional identifier of the post. |
| `courseId` | string | Yes | Identifier of the course. |
| `attachmentId` | string | Yes | Identifier of the add-on attachment to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Add-on Attachment

**Slug:** `GOOGLE_CLASSROOM_COURSES_ANNOUNCES_ADD_ON_ATTACHS_GET`

Tool to get an add-on attachment from an announcement. Use when you need to retrieve a specific add-on attachment. Requires the add-on requesting the attachment to be the original creator.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `itemId` | string | Yes | Identifier of the Announcement, CourseWork, or CourseWorkMaterial containing the attachment. |
| `postId` | string | No | Deprecated. Use itemId instead. Optional identifier of the post. |
| `courseId` | string | Yes | Identifier of the course. |
| `attachmentId` | string | Yes | Identifier of the add-on attachment. Classroom-assigned identifier for this attachment, unique per post. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Add-on Attachments

**Slug:** `GOOGLE_CLASSROOM_COURSES_ANNOUNCES_ADD_ON_ATTACHS_LIST`

Tool to list all add-on attachments created under an announcement. Use when you need to retrieve attachments added by an add-on. Requires the add-on to have active attachments on the post or permission to create new attachments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `itemId` | string | Yes | Identifier of the Announcement, CourseWork, or CourseWorkMaterial whose attachments should be listed. |
| `postId` | string | No | Optional. Deprecated, use itemId instead. |
| `courseId` | string | Yes | Identifier of the course. |
| `pageSize` | integer | No | Maximum number of attachments to return. Default is 20, maximum is 20. |
| `pageToken` | string | No | Token for retrieving the next page of results from a previous list response. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Add-on Attachment

**Slug:** `GOOGLE_CLASSROOM_COURSES_COURSE_WORK_ADD_ON_ATTACHS_DELETE`

Tool to delete an add-on attachment from course work. Use when the add-on needs to remove an attachment it originally created. Requires the add-on to have been the original creator of the attachment.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `itemId` | string | Yes | Identifier of the Announcement, CourseWork, or CourseWorkMaterial under which the attachment is attached. |
| `postId` | string | No | Optional. Deprecated, use itemId instead. |
| `courseId` | string | Yes | Identifier of the course. |
| `attachmentId` | string | Yes | Identifier of the attachment to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Add-on Context for Course Work

**Slug:** `GOOGLE_CLASSROOM_COURSES_COURSE_WORK_GET_ADD_ON_CONTEXT`

Tool to get metadata for Classroom add-ons in the context of a specific course work. Use when validating query parameters and user permissions for add-ons loading in an iframe. Returns the current user's role (student or teacher) with exactly one context field populated.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `itemId` | string | Yes | Identifier of the Announcement, CourseWork, or CourseWorkMaterial with the attached add-on. |
| `postId` | string | No | Deprecated. Use itemId instead. |
| `courseId` | string | Yes | Identifier of the course. |
| `addOnToken` | string | No | Optional authorization token passed when redirecting to the add-on's URL. Required unless the add-on has attachments or the requesting project created the post. |
| `attachmentId` | string | No | Optional identifier for the specific attachment. Required for all requests except Attachment Discovery iframe. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Add-on Attachments on Course Work Material

**Slug:** `GOOGLE_CLASSROOM_COURSES_COURSE_WORK_MATERIALS_ADD_ATTACHS`

Tool to list all add-on attachments under a course work material post. Use when you need to retrieve attachments created by an add-on. Requires the add-on to have active attachments or permission to create new attachments on the post.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `itemId` | string | Yes | Identifier of the Announcement, CourseWork, or CourseWorkMaterial resource. |
| `postId` | string | No | Optional. Deprecated. Use itemId instead. |
| `courseId` | string | Yes | Identifier of the course. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Course Work Material

**Slug:** `GOOGLE_CLASSROOM_COURSES_COURSE_WORK_MATERIALS_DELETE`

Tool to delete a course work material. Use after confirming the course work material ID and course ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Identifier of the course work material to delete. |
| `courseId` | string | Yes | Identifier of the course. This may either be the Classroom-assigned identifier or an alias. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Modify CourseWork Assignees

**Slug:** `GOOGLE_CLASSROOM_COURSES_COURSE_WORK_MODIFY_ASSIGNEES`

Tool to modify assignee mode and options of coursework. Use when you need to change who can view coursework, either making it visible to all students or to specific students only.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Identifier of the coursework. |
| `courseId` | string | Yes | Identifier of the course. This may be the Classroom-assigned identifier or an alias. |
| `assigneeMode` | string ("ALL_STUDENTS" | "INDIVIDUAL_STUDENTS") | Yes | Mode of the coursework describing whether it is accessible by all students or specified individual students. Use ALL_STUDENTS for all students to see the item, or INDIVIDUAL_STUDENTS for a subset of students. |
| `modifyIndividualStudentsOptions` | object | No | Options for modifying which students can view the coursework when assigneeMode is INDIVIDUAL_STUDENTS. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Patch Course Work

**Slug:** `GOOGLE_CLASSROOM_COURSES_COURSE_WORK_PATCH`

Tool to update one or more fields of a course work. Use when you need to modify specific details of an existing course work after confirming which fields to update.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Identifier of the course work to update. |
| `state` | string ("DRAFT" | "PUBLISHED" | "DELETED") | No | State of the course work. Can be DRAFT, PUBLISHED, or DELETED. |
| `title` | string | No | Title of the course work to set. Valid UTF-8, 1-3000 characters. |
| `dueDate` | object | No | Model for due date. |
| `dueTime` | object | No | Model for due time in request. |
| `topicId` | string | No | Topic ID to assign. Must match an existing course topic. |
| `courseId` | string | Yes | Identifier of the course. Can be the Classroom-assigned identifier or an alias. |
| `materials` | array | No | Additional materials to attach (max 20 items). |
| `maxPoints` | number | No | Maximum grade points for the course work. Must be non-negative; zero indicates ungraded. |
| `updateMask` | string | Yes | Comma-separated list of fields to update. Teachers can modify: title, description, state, dueDate, dueTime, maxPoints, scheduledTime, submissionModificationMode, topicId, gradingPeriodId. |
| `description` | string | No | Description of the course work to set. Maximum 30,000 characters. |
| `assigneeMode` | string ("ALL_STUDENTS" | "INDIVIDUAL_STUDENTS") | No | Mode for assigning course work; defaults to ALL_STUDENTS. |
| `scheduledTime` | string | No | RFC 3339 timestamp at which to publish the course work. |
| `gradingPeriodId` | string | No | Grading period identifier. |
| `individualStudentsOptions` | object | No | Options for INDIVIDUAL_STUDENTS assignee mode. |
| `submissionModificationMode` | string ("SUBMISSION_MODIFICATION_MODE_UNSPECIFIED" | "MODIFIABLE_UNTIL_TURNED_IN" | "MODIFIABLE") | No | Controls when students can modify submissions. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Course Work Rubrics

**Slug:** `GOOGLE_CLASSROOM_COURSES_COURSEWORK_RUBRICS_LIST`

Tool to list rubrics for a specific coursework. Use when you need to retrieve grading rubrics that the requester has permission to view.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `courseId` | string | Yes | Identifier of the course. Can be the Classroom-assigned ID or an alias. |
| `pageSize` | integer | No | Maximum number of items to return. Default and maximum is 1. |
| `pageToken` | string | No | Token from a previous list call indicating the next page of results. |
| `courseWorkId` | string | Yes | Identifier of the course work. |
| `previewVersion` | string | No | Optional preview version of the API that specifies new capabilities being previewed. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Course

**Slug:** `GOOGLE_CLASSROOM_COURSES_CREATE`

Tool to create a new course. Use when a teacher needs to establish a Classroom course before enrollment.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the course. Max length 750 characters. |
| `room` | string | No | Room location for the course. Max length 64 characters. |
| `ownerId` | string | Yes | Identifier of the course owner. Can be the user's numeric ID or email address. |
| `section` | string | No | Section of the course. Max length 2800 characters. |
| `courseState` | string ("COURSE_STATE_UNSPECIFIED" | "ACTIVE" | "ARCHIVED" | "PROVISIONED" | "DECLINED" | "SUSPENDED") | No | Initial state of the course. |
| `description` | string | No | Detailed description of the course. Max length 30,000 characters. |
| `descriptionHeading` | string | No | Heading for the course description. Max length 360 characters. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Course

**Slug:** `GOOGLE_CLASSROOM_COURSES_DELETE`

Tool to delete a course. Use when you need to remove a course after confirming the course ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Identifier of the course to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Course

**Slug:** `GOOGLE_CLASSROOM_COURSES_GET`

Tool to get details for a specific course. Use when you need full course information by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Identifier of the course. This identifier can be either the Classroom-assigned ID or an alias. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Grading Period Settings

**Slug:** `GOOGLE_CLASSROOM_COURSES_GET_GRADING_PERIOD_SETTINGS`

Tool to retrieve grading period settings for a course. Use when you need to access the grading periods configured in a course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `courseId` | string | Yes | Identifier of the course. This can be the Classroom-assigned identifier or an alias. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Courses

**Slug:** `GOOGLE_CLASSROOM_COURSES_LIST`

Tool to list all courses accessible to the authenticated user. Use when you need a paginated list of courses.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `pageSize` | integer | No | Maximum number of items to return. Must be ≥1. |
| `pageToken` | string | No | Token identifying the page of results to return. |
| `studentId` | string | No | Restricts returned courses to those in which the student is enrolled. Can be the user's numeric ID or 'me'. |
| `teacherId` | string | No | Restricts returned courses to those taught by the teacher. Can be the user's numeric ID or 'me'. |
| `courseStates` | array | No | Restricts returned courses to those in specified states. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Patch Course

**Slug:** `GOOGLE_CLASSROOM_COURSES_PATCH`

Tool to update one or more fields of a Classroom course. Use after retrieving course details and confirming fields to update.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Identifier of the course to update. |
| `name` | string | No | New name of the course. |
| `room` | string | No | New room/location for the course. |
| `ownerId` | string | No | New owner user ID for the course. |
| `section` | string | No | New section of the course. |
| `updateMask` | string | Yes | Comma-separated list of fields to update. E.g., 'name,section'. |
| `courseState` | string ("COURSE_STATE_UNSPECIFIED" | "ACTIVE" | "ARCHIVED" | "PROVISIONED" | "DECLINED") | No | New state of the course. |
| `description` | string | No | New detailed description of the course. |
| `descriptionHeading` | string | No | New heading for the course description. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Post Add-on Attachments

**Slug:** `GOOGLE_CLASSROOM_COURSES_POSTS_ADD_ON_ATTACHMENTS_LIST`

Tool to list all add-on attachments created under a post. Use when you need to retrieve attachments added by an add-on. Requires the add-on to have active attachments on the post or permission to create new attachments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `itemId` | string | No | Identifier of the Announcement, CourseWork, or CourseWorkMaterial whose attachments should be enumerated. Optional query parameter. |
| `postId` | string | Yes | Identifier of the post under the course. |
| `courseId` | string | Yes | Identifier of the course. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Add-on Context for Post

**Slug:** `GOOGLE_CLASSROOM_COURSES_POSTS_GET_ADD_ON_CONTEXT`

Tool to get metadata for Classroom add-ons in the context of a specific post. Use when validating query parameters and user permissions for add-ons loading in an iframe. Returns the current user's role (student or teacher) with exactly one context field populated.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `itemId` | string | Yes | Identifier of the Announcement, CourseWork, or CourseWorkMaterial with the attached add-on. |
| `postId` | string | Yes | Identifier of the post (path parameter, deprecated - but required in path). |
| `courseId` | string | Yes | Identifier of the course. |
| `addOnToken` | string | No | Optional authorization token passed when redirecting to the add-on's URL. Required unless the add-on has attachments on the post or the requesting project created the post. |
| `attachmentId` | string | No | Optional identifier for the specific attachment. Required for all requests except Attachment Discovery iframe. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Add Student to Course

**Slug:** `GOOGLE_CLASSROOM_COURSES_STUDENTS_CREATE`

Tool to add a student to a course. Use when enrolling a user as a student in a course. Domain administrators can directly enroll users; students can self-enroll with an enrollment code.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `userId` | string | Yes | Identifier of the user to enroll as a student. Can be the numeric identifier for the user, the email address of the user, or the string literal "me" to indicate the requesting user. |
| `courseId` | string | Yes | Identifier of the course. Can be the Classroom-assigned identifier or an alias. |
| `enrollmentCode` | string | No | Enrollment code of the course. Required if the userId corresponds to the authenticated user. Optional for domain administrators who can directly enroll users. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Course Student

**Slug:** `GOOGLE_CLASSROOM_COURSES_STUDENTS_DELETE`

Tool to delete a student from a course. Use when you need to remove a student's enrollment from a specific course. This revokes their access to course materials and participation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `userId` | string | Yes | Identifier of the student to delete. The identifier can be one of the following: the numeric identifier for the user, the email address of the user, or the string literal 'me' indicating the requesting user. |
| `courseId` | string | Yes | Identifier of the course. This may be the Classroom-assigned identifier or an alias. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Course Student

**Slug:** `GOOGLE_CLASSROOM_COURSES_STUDENTS_GET`

Tool to retrieve a specific student of a course. Use when you need to get detailed information about a student enrolled in a course by courseId and userId.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `userId` | string | Yes | Identifier of the user. This can be the numeric identifier for the user, the email address of the user, or the literal string 'me' indicating the requesting user. |
| `courseId` | string | Yes | Identifier of the course. This may be the Classroom-assigned identifier or an alias. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Student Guardians

**Slug:** `GOOGLE_CLASSROOM_COURSES_STUDENTS_GUARDIANS_LIST`

Tool to list guardians of a student in a course. Use when you need to retrieve and paginate guardians for a given student in a course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `courseId` | string | Yes | Identifier of the course. Can be the Classroom-assigned ID or an alias. |
| `pageSize` | integer | No | Maximum number of guardians to return. Must be between 1 and 100. Defaults to server's default. |
| `pageToken` | string | No | Token identifying which page of results to return. |
| `studentId` | string | Yes | Identifier of the student (the user's id or email address, or 'me'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Course Students

**Slug:** `GOOGLE_CLASSROOM_COURSES_STUDENTS_LIST`

Tool to list students in a course. Use after you have the course ID to page through enrolled students.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `courseId` | string | Yes | Identifier of the course whose students should be listed. Can be the Classroom-assigned identifier or an alias. |
| `pageSize` | integer | No | Maximum number of students to return. Must be between 1 and 100. |
| `pageToken` | string | No | Token specifying which page of results to return. Obtain from a previous list call's `nextPageToken`. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Course Teacher

**Slug:** `GOOGLE_CLASSROOM_COURSES_TEACHERS_DELETE`

Tool to delete a teacher from a course. Use when you need to remove a teacher's enrollment from a specific course. This revokes their teaching access to the course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `userId` | string | Yes | Identifier of the teacher to delete. The identifier can be one of the following: the numeric identifier for the user, the email address of the user, or the string literal 'me' indicating the requesting user. |
| `courseId` | string | Yes | Identifier of the course. This may be the Classroom-assigned identifier or an alias. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Teacher

**Slug:** `GOOGLE_CLASSROOM_COURSES_TEACHERS_GET`

Tool to get teacher enrollment. Use when you need to retrieve a specific teacher in a course by courseId and userId.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fields` | string | No | Selector specifying which fields to include in a partial response. |
| `userId` | string | Yes | Identifier of the teacher to retrieve. Can be the teacher's numeric user ID or email address. |
| `courseId` | string | Yes | Identifier of the course. This identifier can be either the Classroom-assigned ID or an alias. |
| `quotaUser` | string | No | Arbitrary string assigned to a user for quota purposes (server-side applications only). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Course Teachers

**Slug:** `GOOGLE_CLASSROOM_COURSES_TEACHERS_LIST`

Tool to list teachers in a course. Use after you have the course ID to page through enrolled teachers.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `courseId` | string | Yes | Identifier of the course whose teachers should be listed. |
| `pageSize` | integer | No | Maximum number of teachers to return. Must be between 1 and 100. |
| `pageToken` | string | No | Token specifying which page of results to return. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Course Topic

**Slug:** `GOOGLE_CLASSROOM_COURSES_TOPICS_CREATE`

Tool to create a course topic. Use when you need to organize course content into named sections.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the topic. |
| `courseId` | string | Yes | Identifier of the course to create the topic in. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Course Topic

**Slug:** `GOOGLE_CLASSROOM_COURSES_TOPICS_DELETE`

Tool to delete a course topic. Use when you need to remove a topic from a course after confirming the course and topic IDs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Identifier of the topic to delete. |
| `courseId` | string | Yes | Identifier of the course. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Course Topic

**Slug:** `GOOGLE_CLASSROOM_COURSES_TOPICS_GET`

Tool to get a course topic. Use when you need to retrieve details of a specific course topic by ID after confirming the course and topic IDs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Identifier of the topic to retrieve. |
| `courseId` | string | Yes | Identifier of the course. This can be the Classroom-assigned identifier or an alias. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Course Topics

**Slug:** `GOOGLE_CLASSROOM_COURSES_TOPICS_LIST`

Tool to list topics in a course. Use when you have confirmed the courseId and need to retrieve its topics.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `courseId` | string | Yes | Identifier of the course (Classroom-assigned ID or alias). |
| `pageSize` | integer | No | Maximum number of topics to return; zero means no limit. |
| `pageToken` | string | No | Token identifying which page of results to return. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Patch Course Topic

**Slug:** `GOOGLE_CLASSROOM_COURSES_TOPICS_PATCH`

Tool to update fields of a course topic. Use when you need to rename a topic after confirming its current details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Identifier of the topic. |
| `name` | string | No | New display name of the topic. |
| `courseId` | string | Yes | Identifier of the course. |
| `updateMask` | string | No | Comma-separated list of fields to update. Currently only 'name' supported. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Course

**Slug:** `GOOGLE_CLASSROOM_COURSES_UPDATE`

Tool to update a course. Use when you need to modify course details like name, description, or state. This performs a full update (PUT) of the course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Identifier of the course to update. This can be either the Classroom-assigned identifier or an alias. |
| `name` | string | Yes | Name of the course. Max length 750 characters. Valid UTF-8. |
| `room` | string | No | Room location for the course. Max length 650 characters. |
| `ownerId` | string | Yes | Identifier of the course owner. Can be the user's numeric ID or email address. Only admins can modify this field. |
| `section` | string | No | Section designation of the course (e.g., 'Period 2'). Max length 2,800 characters. |
| `courseState` | string ("COURSE_STATE_UNSPECIFIED" | "ACTIVE" | "ARCHIVED" | "PROVISIONED" | "DECLINED" | "SUSPENDED") | No | State of the course. Can be ACTIVE, ARCHIVED, PROVISIONED, DECLINED, or SUSPENDED. |
| `description` | string | No | Detailed description of the course. Max length 30,000 characters. |
| `descriptionHeading` | string | No | Optional heading for the course description. Max length 3,600 characters. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Patch Course Work Material

**Slug:** `GOOGLE_CLASSROOM_COURSES_WORK_MATERIALS_PATCH`

Tool to update fields of a course work material. Use when you need to modify specific details of an existing course work material after confirming which fields to update.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Identifier of the course work material to update. |
| `state` | string ("DRAFT" | "PUBLISHED" | "DELETED") | No | State of the course work material. |
| `title` | string | No | Title of the course work material (1-3,000 characters). |
| `topicId` | string | No | Identifier of the topic to associate with this material. |
| `courseId` | string | Yes | Identifier of the course. Can be the Classroom-assigned identifier or an alias. |
| `updateMask` | string | Yes | Comma-separated list of fields to update. Supported fields: title, description, state, scheduledTime, topicId. |
| `description` | string | No | Description of the course work material (max 30,000 characters). |
| `scheduledTime` | string | No | RFC3339 timestamp when the material is scheduled to be published. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create CourseWork

**Slug:** `GOOGLE_CLASSROOM_COURSE_WORK_CREATE`

Tool to create a CourseWork item in a course. Use when you need to assign an assignment or question to students immediately or on a schedule.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `state` | string ("DRAFT" | "PUBLISHED") | No | Whether to save as draft or publish immediately |
| `title` | string | Yes | Title of the coursework |
| `dueDate` | object | No | Date portion of coursework due date (year, month, day). |
| `dueTime` | object | No | Time portion of coursework due time (hours, minutes, seconds, nanos). |
| `topicId` | string | No | Topic ID to organize coursework under |
| `courseId` | string | Yes | Identifier of the course |
| `workType` | string ("ASSIGNMENT" | "SHORT_ANSWER_QUESTION" | "MULTIPLE_CHOICE_QUESTION") | Yes | Type of coursework being created |
| `materials` | array | No | Materials to attach to the coursework |
| `maxPoints` | number | No | Maximum points available for the coursework |
| `assignment` | object | No | Assignment details if workType is ASSIGNMENT |
| `description` | string | No | Detailed description or instructions |
| `scheduledTime` | string | No | RFC3339 timestamp to auto-publish the coursework |
| `shortAnswerQuestion` | object | No | Details for short-answer question. |
| `multipleChoiceQuestion` | object | No | Details for multiple-choice question. |
| `submissionModificationMode` | string ("SUBMISSION_MODIFICATION_MODE_UNSPECIFIED" | "MODIFIABLE_UNTIL_TURNED_IN" | "MODIFIABLE") | No | Controls if students can edit submissions after turn-in |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete CourseWork

**Slug:** `GOOGLE_CLASSROOM_COURSE_WORK_DELETE`

Tool to delete a specific CourseWork. Use when you need to remove a coursework item from a course after confirming the IDs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Identifier of the coursework item to delete. |
| `courseId` | string | Yes | Identifier of the course. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get CourseWork

**Slug:** `GOOGLE_CLASSROOM_COURSE_WORK_GET`

Tool to get details of a specific coursework. Use when detailed information about a particular assignment is needed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Identifier of the coursework item to retrieve. |
| `courseId` | string | Yes | Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List CourseWork

**Slug:** `GOOGLE_CLASSROOM_COURSE_WORK_LIST`

Tool to list coursework in a course. Use after verifying courseId.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `orderBy` | string | No | Sort ordering for results. Comma-separated list of fields with optional direction. Supported fields: 'updateTime', 'dueDate'. Supported direction keywords: 'asc', 'desc'. Default: 'updateTime desc'. |
| `courseId` | string | Yes | Identifier of the course (Classroom-assigned ID or alias). |
| `pageSize` | integer | No | Maximum number of items to return. Zero or unspecified indicates the server may assign a maximum. The server may return fewer than the specified number. |
| `pageToken` | string | No | NextPageToken from a previous list call, indicating subsequent page of results to return. Must be used with otherwise identical request. |
| `previewVersion` | string | No | Preview version of the API. Set to access new capabilities in the Preview Program. |
| `courseWorkStates` | array | No | Restriction on the coursework state to return. Only coursework matching one of these states is returned. If unspecified, defaults to ['PUBLISHED']. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Course Work Material

**Slug:** `GOOGLE_CLASSROOM_COURSE_WORK_MATERIALS_CREATE`

Tool to create course work material. Use when adding resources or notes to a course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `state` | string ("DRAFT" | "PUBLISHED" | "DELETED") | No | The state of the course work material (e.g., PUBLISHED, DRAFT). |
| `title` | string | No | Title of the course work material. |
| `topicId` | string | No | Identifier of the topic to which this material belongs. |
| `courseId` | string | Yes | Identifier of the course. |
| `materials` | array | No | Materials attached to the course work material. Each element defines one of driveFile, link, form, or youtubeVideo. |
| `description` | string | No | Description of the course work material. |
| `assigneeMode` | string ("ALL_STUDENTS" | "INDIVIDUAL_STUDENTS") | No | Who can see the material. Defaults to ALL_STUDENTS. |
| `scheduledTime` | string | No | RFC3339 formatted time when the material is scheduled to be published, e.g., '2020-10-28T16:01:23Z'. |
| `associatedWithDeveloper` | boolean | No | Whether this material is associated with a developer project. |
| `individualStudentsOptions` | object | No | Options for INDIVIDUAL_STUDENTS assignee mode. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Coursework Material

**Slug:** `GOOGLE_CLASSROOM_COURSE_WORK_MATERIALS_GET`

Tool to get a coursework material. Use when you need to retrieve details of a specific coursework material by course and material ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Identifier of the coursework material. |
| `courseId` | string | Yes | Identifier of the course. Can be Classroom-assigned identifier or an alias. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List CourseWorkMaterials

**Slug:** `GOOGLE_CLASSROOM_COURSE_WORK_MATERIALS_LIST`

Tool to list course work materials in a course. Use when you need to retrieve and paginate materials for a given courseId.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `orderBy` | string ("updateTime asc" | "updateTime desc") | No | Optional sorting order; allowed values are 'updateTime asc' or 'updateTime desc'. |
| `courseId` | string | Yes | Identifier of the course whose courseWorkMaterials should be returned. |
| `pageSize` | integer | No | Maximum number of items to return. Must be between 1 and 100. Defaults to 30. |
| `pageToken` | string | No | Token identifying which page of results to return. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Student Submissions

**Slug:** `GOOGLE_CLASSROOM_COURSE_WORK_STUDENT_SUBMISSIONS_LIST`

Tool to list student submissions for a specific coursework. Use when you need to fetch or paginate student submissions by course and coursework, optionally filtering by user, state, or timeliness.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `late` | string ("LATE_ONLY" | "NOT_LATE_ONLY") | No | Filters returned submissions to those that are on time or late. |
| `states` | array | No | Filters returned submissions to those in the specified states. |
| `userId` | string | No | Restricts returned submissions to those owned by the specified user. Use numeric ID or 'me'. |
| `courseId` | string | Yes | Identifier of the course. |
| `pageSize` | integer | No | Maximum number of items to return. Defaults to 30; maximum is 100. |
| `pageToken` | string | No | Token for next page of results. |
| `courseWorkId` | string | Yes | Identifier of the coursework; use '-' to return submissions for all coursework in the course. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Reclaim Student Submission

**Slug:** `GOOGLE_CLASSROOM_COURSE_WORK_STUDENT_SUBMISSIONS_RECLAIM`

Tool to reclaim a student submission for editing. Use after a student requests to edit their turned-in submission, resetting its state to CREATED.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Identifier of the student submission. |
| `courseId` | string | Yes | Identifier of the course. |
| `courseWorkId` | string | Yes | Identifier of the coursework. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get CourseWork Add-on Attachment

**Slug:** `GOOGLE_CLASSROOM_GET_COURSEWORK_ADDON_ATTACHMENT`

Tool to get an add-on attachment from course work. Use when you need to retrieve a specific add-on attachment. Requires the add-on requesting the attachment to be the original creator.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `postId` | string | Yes | Identifier of the CourseWork item containing the attachment. |
| `courseId` | string | Yes | Identifier of the course. |
| `attachmentId` | string | Yes | Identifier of the add-on attachment. Classroom-assigned identifier for this attachment, unique per post. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Add-on Context for Course Work Material

**Slug:** `GOOGLE_CLASSROOM_GET_COURSEWORK_MATERIAL_ADDON_CONTEXT`

Tool to get metadata for Classroom add-ons in the context of a specific course work material. Use when validating query parameters for add-ons loading in an iframe. Returns course/item identifiers and role-specific context.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `itemId` | string | Yes | Identifier of the Announcement, CourseWork, or CourseWorkMaterial resource. |
| `postId` | string | No | Optional. Deprecated. Use itemId instead. |
| `courseId` | string | Yes | Identifier of the course. |
| `addOnToken` | string | No | Optional. Authorization token passed when redirected from Classroom. Required unless the add-on has attachments or the developer project created the post. |
| `attachmentId` | string | No | Optional. The attachment identifier. Required for most requests except Attachment Discovery iframe scenarios. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Invitation

**Slug:** `GOOGLE_CLASSROOM_INVITATIONS_CREATE`

Tool to create an invitation for a user to a course. Use after confirming the course ID is valid.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `role` | string ("STUDENT" | "TEACHER") | Yes | Role to invite the user as. |
| `userId` | string | Yes | Identifier of the user to invite. Can be the user's numeric ID or email address. |
| `courseId` | string | Yes | Identifier of the course to invite the user to. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Invitation

**Slug:** `GOOGLE_CLASSROOM_INVITATIONS_DELETE`

Tool to delete an invitation. Use when you need to remove an invitation after confirming the invitation ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Identifier of the invitation to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Invitation

**Slug:** `GOOGLE_CLASSROOM_INVITATIONS_GET`

Tool to retrieve an invitation by its identifier. Use when you need to view invitation details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Identifier of the invitation to return. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Invitations

**Slug:** `GOOGLE_CLASSROOM_INVITATIONS_LIST`

Tool to list invitations that the requesting user is permitted to view. At least one of userId or courseId must be supplied.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `userId` | string | No | Restricts returned invitations to those for a specific user. Can be the user's numeric identifier, email address, or 'me' for the requesting user. At least one of userId or courseId must be supplied. |
| `courseId` | string | No | Restricts returned invitations to those for a course with the specified identifier. At least one of userId or courseId must be supplied. |
| `pageSize` | integer | No | Maximum number of items to return. Zero or unspecified indicates that the server may assign a maximum. The server may return fewer than the specified number of results. |
| `pageToken` | string | No | Token identifying the next page of results to return. Obtained from a previous list call's nextPageToken. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Course Student Groups

**Slug:** `GOOGLE_CLASSROOM_LIST_COURSES_STUDENT_GROUPS`

Tool to list student groups in a course. Use when you need to retrieve groups within a specific course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `courseId` | string | Yes | Identifier of the course. Can be the Classroom-assigned identifier or an alias. |
| `pageSize` | integer | No | Maximum number of items to return. Zero or unspecified indicates no limit. |
| `pageToken` | string | No | Token specifying which page of results to return. Obtain from a previous list call's nextPageToken. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List CourseWork Add-on Attachments

**Slug:** `GOOGLE_CLASSROOM_LIST_COURSEWORK_ADDON_ATTACHMENTS`

Tool to list all add-on attachments created by an add-on under a course work. Use when you need to retrieve attachments added by an add-on to course work.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `postId` | string | Yes | Identifier of the CourseWork whose attachments should be listed. |
| `courseId` | string | Yes | Identifier of the course. |
| `pageSize` | integer | No | Maximum number of attachments to return per page. Default is 20, maximum is 20. |
| `pageToken` | string | No | Token for retrieving the next page of results from a previous list response. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Registration

**Slug:** `GOOGLE_CLASSROOM_REGISTRATIONS_CREATE`

Tool to create a registration for push notifications from Google Classroom. Use when you need to set up notifications from a specific feed to a Cloud Pub/Sub topic. Requires the OAuth scope https://www.googleapis.com/auth/classroom.push-notifications.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `feed` | object | Yes | Specification of the feed to subscribe to. The feedType determines which notifications will be sent, and conditional info fields must be provided based on the feedType. |
| `cloudPubsubTopic` | object | Yes | The Cloud Pub/Sub topic where notifications will be published. Classroom must have permission to publish to this topic. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get User Profile

**Slug:** `GOOGLE_CLASSROOM_USER_PROFILES_GET`

Tool to retrieve a user profile by user ID. Use when you need to get information about a specific user including their name, email, photo, and permissions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `userId` | string | Yes | Identifier of the user to retrieve. Can be the numeric user identifier, user's email address, or the literal string 'me' to indicate the requesting user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
