# 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
- **Tools:** 67
- **Triggers:** 0
- **Slug:** `GOOGLE_CLASSROOM`
- **Version:** 20260211_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 Devcaster, see [How to create OAuth2 credentials for Google Apps](https://devcaster.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://devcaster.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 "Devcaster" instead of my app?

By default, the consent screen uses Devcaster'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 the OAuth consent screen](/docs/auth-configuration/custom-auth-configs#white-labeling-the-oauth-consent-screen).

### 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

### List CourseWorkMaterials

**Slug:** `GOOGLE_CLASSROOM_CLASSROOMS_COURSE_WORK_MATERIALS_LIST`

Tool to list CourseWorkMaterials in a course. Use after confirming a valid courseId; supports pagination and ordering.

### 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.

### 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.

### 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.

### Create Announcement

**Slug:** `GOOGLE_CLASSROOM_COURSES_ANNOUNCEMENTS_CREATE`

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

### Delete Announcement

**Slug:** `GOOGLE_CLASSROOM_COURSES_ANNOUNCEMENTS_DELETE`

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

### 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.

### 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.

### 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.

### 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.

### 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.

### 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.

### 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.

### 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.

### List Add-on Attachments

**Slug:** `GOOGLE_CLASSROOM_COURSES_COURSE_WORK_ADD_ON_ATTACHMENTS_LIST`

Tool to list all add-on attachments created under a course work item. 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.

### 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.

### 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.

### 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.

### 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.

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

**Slug:** `GOOGLE_CLASSROOM_COURSES_COURSE_WORK_MATERIALS_GET_ADD`

Tool to get metadata for Classroom add-ons in the context of a specific post. Use when you need to validate query parameters and maintain data integrity for an add-on. Returns course/item identifiers and role-specific context.

### 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.

### 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.

### 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.

### 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.

### 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.

### Get Course

**Slug:** `GOOGLE_CLASSROOM_COURSES_GET`

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

### 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.

### 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.

### 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.

### 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.

### 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.

### 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.

### 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.

### 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.

### 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.

### 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.

### 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.

### 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.

### 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.

### 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.

### 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.

### 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.

### 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.

### 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.

### 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.

### 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.

### 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.

### 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.

### 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.

### List CourseWork

**Slug:** `GOOGLE_CLASSROOM_COURSE_WORK_LIST`

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

### 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.

### 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.

### 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.

### Patch Coursework

**Slug:** `GOOGLE_CLASSROOM_COURSE_WORK_PATCH`

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

### 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.

### 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.

### Delete Topic

**Slug:** `GOOGLE_CLASSROOM_DELETE_TOPIC`

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

### 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.

### 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.

### Get Topic

**Slug:** `GOOGLE_CLASSROOM_GET_TOPIC`

Tool to retrieve a specific topic from a Google Classroom course. Use when you need to get details about a topic within a course.

### 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.

### 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.

### Get Invitation

**Slug:** `GOOGLE_CLASSROOM_INVITATIONS_GET`

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

### 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.

### 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.

### 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.

### 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.
