Managing Vacation Settings

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.

Create a Mobile Website
View Site in Mobile | Classic
Share by: