You can use Settings to configure scheduled auto-reply for an account.
For information on how to get or update , see the Settings reference .
Configuring auto-reply
Auto-reply requires a response subject and body, either HTML or plain text. It can be enabled indefinitely, or limited to a defined period of time. You can also restrict auto-reply to known contacts or domain members.
Example of setting an auto-reply for a fixed period of time, restricting replies to users in the same domain:
Java
gmail/snippets/src/main/java/EnableAutoReply.java
import com.google.api.client.googleapis.json.GoogleJsonError ; import com.google.api.client.googleapis.json.GoogleJsonResponseException ; import com.google.api.client.http.HttpRequestInitializer ; import com.google.api.client.http.javanet.NetHttpTransport ; import com.google.api.client.json.gson.GsonFactory ; import com.google.api.services.gmail.Gmail ; import com.google.api.services.gmail.GmailScopes ; import com.google.api.services.gmail.model.VacationSettings ; import com.google.auth.http.HttpCredentialsAdapter ; import com.google.auth.oauth2.GoogleCredentials ; import java.io.IOException ; import java.time.LocalDateTime ; import java.time.ZoneOffset ; import java.time.ZonedDateTime ; /* Class to demonstrate the use of Gmail Enable Auto Reply API*/ public class EnableAutoReply { /** * Enables the auto reply * * @return the reply message and response metadata. * @throws IOException - if service account credentials file not found. */ public static VacationSettings autoReply () throws IOException { /* Load pre-authorized user credentials from the environment. TODO(developer) - See https://developers.google.com/identity for guides on implementing OAuth2 for your application. */ GoogleCredentials credentials = GoogleCredentials . getApplicationDefault () . createScoped ( GmailScopes . GMAIL_SETTINGS_BASIC ); HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter ( credentials ); // Create the gmail API client Gmail service = new Gmail . Builder ( new NetHttpTransport (), GsonFactory . getDefaultInstance (), requestInitializer ) . setApplicationName ( "Gmail samples" ) . build (); try { // Enable auto reply by restricting domain with start time and end time VacationSettings vacationSettings = new VacationSettings () . setEnableAutoReply ( true ) . setResponseBodyHtml ( "I am on vacation and will reply when I am back in the office. Thanks!" ) . setRestrictToDomain ( true ) . setStartTime ( LocalDateTime . now () . toEpochSecond ( ZoneOffset . from ( ZonedDateTime . now ())) * 1000 ) . setEndTime ( LocalDateTime . now (). plusDays ( 7 ) . toEpochSecond ( ZoneOffset . from ( ZonedDateTime . now ())) * 1000 ); VacationSettings response = service . users (). settings () . updateVacation ( "me" , vacationSettings ). execute (); // Prints the auto-reply response body System . out . println ( "Enabled auto reply with message : " + response . getResponseBodyHtml ()); return response ; } catch ( GoogleJsonResponseException e ) { // TODO(developer) - handle error appropriately GoogleJsonError error = e . getDetails (); if ( error . getCode () == 403 ) { System . err . println ( "Unable to enable auto reply: " + e . getDetails ()); } else { throw e ; } } return null ; } }
Python
gmail/snippet/settings snippets/enable_auto_reply.py
from datetime import datetime , timedelta import google.auth from googleapiclient.discovery import build from googleapiclient.errors import HttpError from numpy import long def enable_auto_reply (): """Enable auto reply. Returns:Draft object, including reply message and response meta data. Load pre-authorized user credentials from the environment. TODO(developer) - See https://developers.google.com/identity for guides on implementing OAuth2 for the application. """ creds , _ = google . auth . default () try : # create gmail api client service = build ( "gmail" , "v1" , credentials = creds ) epoch = datetime . utcfromtimestamp ( 0 ) now = datetime . now () start_time = ( now - epoch ) . total_seconds () * 1000 end_time = ( now + timedelta ( days = 7 ) - epoch ) . total_seconds () * 1000 vacation_settings = { "enableAutoReply" : True , "responseBodyHtml" : ( "I am on vacation and will reply when I am " "back in the office. Thanks!" ), "restrictToDomain" : True , "startTime" : long ( start_time ), "endTime" : long ( end_time ), } # pylint: disable=E1101 response = ( service . users () . settings () . updateVacation ( userId = "me" , body = vacation_settings ) . execute () ) print ( f "Enabled AutoReply with message: { response . get ( 'responseBodyHtml' ) } " ) except HttpError as error : print ( f "An error occurred: { error } " ) response = None return response if __name__ == "__main__" : enable_auto_reply ()
To disable auto-reply, update the resource and set enableAutoReply
to false
. If an endTime
is configured, auto-reply will automatically disable
once the specified time has passed.