HTTP/2 301
strict-transport-security: max-age=86400; includeSubDomains
content-type: text/html; charset=UTF-8
location: https://cloud.google.com/blog/products/application-development/create-quizzes-in-google-forms-with
content-encoding: gzip
date: Tue, 15 Jul 2025 02:05:27 GMT
expires: Tue, 15 Jul 2025 02:05:27 GMT
cache-control: private, max-age=0
x-content-type-options: nosniff
x-xss-protection: 1; mode=block
content-length: 244
server: GSE
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
HTTP/2 301
content-type: application/binary
vary: Sec-Fetch-Dest, Sec-Fetch-Mode, Sec-Fetch-Site
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: Mon, 01 Jan 1990 00:00:00 GMT
date: Tue, 15 Jul 2025 02:05:28 GMT
location: https://workspace.google.com/blog/developers-practitioners/create-quizzes-in-google-forms-with
p3p: CP="This is not a P3P policy! See g.co/p3phelp for more info."
strict-transport-security: max-age=31536000
content-security-policy: require-trusted-types-for 'script';report-uri /blog/_/TransformBlogUi/cspreport
content-security-policy: script-src 'report-sample' 'nonce-INfAYFfcLLPSaYvU8QE1Mw' 'unsafe-inline';object-src 'none';base-uri 'self';report-uri /blog/_/TransformBlogUi/cspreport;worker-src 'self' blob:
content-security-policy: script-src 'unsafe-inline' 'unsafe-eval' blob: data: 'self' https://apis.google.com https://ssl.gstatic.com https://www.google.com https://www.googletagmanager.com https://www.gstatic.com https://www.google-analytics.com https://ssl.google-analytics.com https://www.googleadservices.com/pagead/conversion_async.js https://www.youtube.com https://googleads.g.doubleclick.net https://www.googleadservices.com/pagead/ https://www.google.com/tools/feedback/ https://www.gstatic.com/feedback/js/ https://www.gstatic.com/inproduct_help/ https://www.gstatic.com/support/content/ https://www.gstatic.com/uservoice/feedback/client/web/live/ https://www.gstatic.com/uservoice/surveys/resources/prod/js/survey/ https://support.google.com/inapp/ https://maps.googleapis.com;report-uri /blog/_/TransformBlogUi/cspreport/allowlist
cross-origin-opener-policy: same-origin
permissions-policy: ch-ua-arch=*, ch-ua-bitness=*, ch-ua-full-version=*, ch-ua-full-version-list=*, ch-ua-model=*, ch-ua-wow64=*, ch-ua-form-factors=*, ch-ua-platform=*, ch-ua-platform-version=*
accept-ch: Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Model, Sec-CH-UA-WoW64, Sec-CH-UA-Form-Factors, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version
server: ESF
content-length: 0
x-xss-protection: 0
x-frame-options: SAMEORIGIN
x-content-type-options: nosniff
set-cookie: NID=525=HW4w25YsHF8DJst8e0up39Wu4GRd1pbSju5zlXNGmKIellcP_1uHd_QDjsu93v_keFQhXlGqx5prlZIqZIn_dX66k5Ynk13nlyFLgo2PKsROKkpXTo4uPGlweoUuy3zGXy1gT3N0eXyDMSURBscZoPtxTwzX_0m4OrpP_uZZhh47BLcg7dth3vhHSvW73HnD; expires=Wed, 14-Jan-2026 02:05:28 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=none
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
HTTP/2 200
content-type: text/html; charset=utf-8
vary: Sec-Fetch-Dest, Sec-Fetch-Mode, Sec-Fetch-Site
x-ua-compatible: IE=edge
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: Mon, 01 Jan 1990 00:00:00 GMT
date: Tue, 15 Jul 2025 02:05:29 GMT
p3p: CP="This is not a P3P policy! See g.co/p3phelp for more info."
strict-transport-security: max-age=31536000
accept-ch: Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Model, Sec-CH-UA-WoW64, Sec-CH-UA-Form-Factors, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version
content-security-policy: script-src 'report-sample' 'nonce-Uhgv3Q3am3PBYt_qAvONDQ' 'unsafe-inline';object-src 'none';base-uri 'self';report-uri /blog/_/WorkspaceBlogUI/cspreport;worker-src 'self' blob:
content-security-policy: script-src 'unsafe-inline' 'unsafe-eval' blob: data: 'self' https://apis.google.com https://ssl.gstatic.com https://www.google.com https://www.googletagmanager.com https://www.gstatic.com https://www.google-analytics.com https://www.youtube.com https://www.googleadservices.com/pagead/conversion_async.js https://googleads.g.doubleclick.net https://ssl.google-analytics.com https://www.googleadservices.com/pagead/ https://www.google.com/tools/feedback/ https://www.gstatic.com/feedback/js/ https://www.gstatic.com/inproduct_help/ https://www.gstatic.com/support/content/ https://www.gstatic.com/uservoice/feedback/client/web/live/ https://www.gstatic.com/uservoice/surveys/resources/prod/js/survey/ https://support.google.com/inapp/ https://maps.googleapis.com;report-uri /blog/_/WorkspaceBlogUI/cspreport/allowlist
content-security-policy: require-trusted-types-for 'script';report-uri /blog/_/WorkspaceBlogUI/cspreport
cross-origin-opener-policy: same-origin
permissions-policy: ch-ua-arch=*, ch-ua-bitness=*, ch-ua-full-version=*, ch-ua-full-version-list=*, ch-ua-model=*, ch-ua-wow64=*, ch-ua-form-factors=*, ch-ua-platform=*, ch-ua-platform-version=*
reporting-endpoints: default="/blog/_/WorkspaceBlogUI/web-reports?context=eJzjStHikmJw1JBiyHz6mIn90ROm1pvnWKcDsZrrBVZDhUuszkBcJHGFtQWIm1yvst54cI31U9UNVpHqG6w3m2-wJrHfZC0B4geFt1h3bbzFehiIlc7cYuVce5dVCIi_bwPS3Bwv3107zCYw4_lJViXtpPzC-OSc_NKUCt3y1CTdpJz8dN3SzOLUorLUongjAyNTA3NDEz0Dk_gCAwBv5kAs"
content-encoding: gzip
server: ESF
x-xss-protection: 0
x-frame-options: SAMEORIGIN
x-content-type-options: nosniff
set-cookie: NID=525=ZP7OR_VjyZ3hjzjIB2dnH9z5z2lPHL9xNbbBi6i-2NL2EWDsPAK_EqvH8PY-prks2bZqu4KEzv909EKzbsERs7fFeHWg8FdkUUvpazoLrpzYtcUrt-zqPVvjqCn5bsBKsE2ZGqJyFdJpNu0yMjOSyn4Mkaa7lsx1OQIIo1Lu0KrCMR_bvwG9JOvkeJITF_kZ; expires=Wed, 14-Jan-2026 02:05:28 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=none
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
Create quizzes in Google Forms with Apps Script | Google Workspace Blog Developers and Practitioners
Create quizzes in Google Forms with Apps Script
April 28, 2017
Tynia Yang Software Engineer, Google Forms
Try Google Workspace at No Cost Get a business email, all the storage you need, video conferencing, and more.
SIGN UP
Last year, we launched Quizzes in Google Forms to help teachers and students take assessment to scale. Using Quizzes, teachers are able to automate testing and give feedback to students faster by having Forms check responses against correct answers automatically. Today, we are making that functionality available to developers by extending the Google Apps Script Forms Service . With this feature, you can create and customize quizzes programmatically with Apps Script.
More specifically:
Create quizzes Assign point values and correct answers for questions Implement custom grading schemes
Let’s take a look at an example use case and relevant code snippet.
Creating an auto-graded question
Multiple choice, checkbox and dropdown questions can be auto-graded, which means students can see their grades immediately upon submission. This is done by designating which options are the correct answer. Teachers can also set automatic feedback to show correct or incorrect responses, as well as assign point values to the question.
Here is the Apps Script code that lets you create the quiz above: