Teams Scheduled Send for Chats Designed to Deliver Messages When Recipients are Ready to Receive
We all have too many ways to communicate and live in a world of constant pings, bongs, and other indications of arriving messages. In some respects, Teams chats are more demanding than emails. Chats are of the moment, demanding the recipient’s attention, and can arrive in a flood of individual messages replete with emojis, GIFs, and other attention-grabbing graphics. All of which means that Microsoft’s introduction of scheduled send for Teams chats is welcome (Microsoft 365 message center notification MC427758, published September 8).
According to Microsoft, allowing users to schedule chats for delivery in the future will help “build better work-life balance” by delivering messages “during our peers’ work hours.” I guess we can always hope that people will check the local time for recipients through their people card before deciding to send a message.
Microsoft plans to roll the feature out to commercial tenants in late September (Microsoft 365 roadmap item 88281). GCC and other high-security tenants will receive the feature later starting in late October and finishing in late February 2023.
Delayed Send with Outlook
Scheduled or delayed sending of messages is not a new idea. Outlook and OWA both have ways of sending messages at a predetermined future time. In OWA, select the Send later option from the Send menu and select the time to send the message. OWA keeps the message in the Drafts folder of the mailbox until the time comes and then sends the email. Users have the option to modify the message until OWA sends it (Figure 1) to change the time, add new content, and so on.
Figure 1: OWA Delays sending an email
Outlook for Windows takes a different approach. Users must update the delivery options for a message to set a scheduled time. Outlook then keeps the message in the Outbox until the time comes and then sends the email.
Teams Scheduled Send
The Teams scheduled send for chat feature is available for the desktop and mobile clients and can be used by tenant and guest accounts. Delayed send works for both 1:1 and group chats. Delayed chat doesn’t work for browser clients and it’s unavailable for channel conversations.
The implementation of scheduled send is easy to use. Compose a chat message as normal and then right-click the send button to expose the scheduling options (Figure 2). Teams likes to suggest 8AM tomorrow as a good time to send a message, but you can choose any time up to seven days in advance.
Figure 2: Teams scheduled send – setting a time to send
Scheduled chats wait for their time to go. You’ll recognize them by the banner and icon stamped on the messages (Figure 3). When Teams sends a scheduled message, it reverts to looking like any other chat.
Figure 3: A Teams scheduled message waits for the appointed time
One thing I noticed is that the drop-down menu for the time only allows users to select half-hour intervals. In other words, you can choose to send at 8AM, 8:30AM, or 9AM but not 8:35AM.
This probably doesn’t matter too much, but it would be nice to have more precise control over when messages go. I don’t know why Microsoft went with this implementation, but the reason might be no more complex than it’s easier to have a timer job execute on the client every 30 minutes rather than check for scheduled messages every minute.
No Urgent or Important Messages
Scheduled chats cannot be marked as urgent or important. This is logical because when you mark a message as urgent, Teams notifies the recipient every two minutes for 20 minutes until they read the message, which is kind of the opposite to scheduling delivery for a future time. Anyway, if a message really is urgent or important, why would you schedule it in a chat application?
If you mark a message as important or urgent, and then attempt to schedule it, Teams removes the important or urgent markings and treats the message as a normal chat.
Rescheduling Chats
The potential always exists that people will screw up scheduling a message. For me, it’s selecting the right time but the wrong date. Fortunately, you can edit a message and reschedule it for the correct time (Figure 4).
Figure 4: Rescheduling a Teams scheduled send message
Federated Scheduling
Federated chat is when Teams users communicate with users of other services like Skype consumer in 1:1 chats. External access is when one or more participants from other tenants join a chat. Scheduled messages work for external access chats (with Teams users in other Microsoft 365 tenants). They don’t work for federated chats with Skype users. You can schedule a message in these chats, but you can’t edit the message to update its sending time, and when the time comes to send the chat, Teams runs into problems (Figure 5).
Figure 5: Problems sending a Teams scheduled message to a federated external user
Scheduled chat does work for messages sent to Teams consumer users.
Getting in a Mess
As I played with scheduled chats, I discovered how easy it is to send a message that I intended to schedule and to schedule other messages at the wrong time. Moving from the current model where all chats go immediately will take a little time to master. At least, it will for me.
Learning how to use scheduled chat effectively has its humorous side. If you don’t pay attention, or are distracted by other happenings during a chat, you might end up like I did with a mix of sent and scheduled chats (Figure 6). Also notice that you can schedule a chat to send before a previously scheduled message.
Figure 6: Teams scheduled send messages get in a mess
From the screenshot, it looks like I managed to make Teams schedule the chat for 12:23 instead of a half-hour marker; I have no idea how I did this, so let’s mark it down to a software glitch (or user error). The messages duly arrived as scheduled and confused the recipient, much to my embarrassment.
Mobile Scheduled Send
The UI for Teams mobile clients is very different to the desktop client, so another mechanism is needed to schedule a message. Instead of right-click, use a long press on the send button and then select the time and date to schedule the send (Figure 7).
Figure 7: Scheduling a Teams delayed message on mobile (iOS)
No Policy Control
Microsoft regards scheduled send as a new extension of the core chat capabilities. There’s no setting available in the Teams messaging policy to enable or disable the ability to use scheduled send, and the feature is available to everyone out-of-the-box. If you don’t want people to use scheduled send, don’t tell them about it!
Scheduling is Useful
Adding the ability to send chats at a scheduled time is a good enhancement. The implementation is solid and easy to use, even if I got confused at times. One criticism that I think is fair is that it’s hard for users to find that the delayed send option is available because no indication exists that right-click on the send button exposes extra functionality.
Microsoft’s aspiration that this feature will help users achieve a better work-life balance is laudable; the sole question is whether people will respond. Time will tell.
Keep up to date with developments like the Teams scheduled send for chat messages by subscribing to the Office 365 for IT Pros eBook. Our monthly updates make sure that our subscribers understand the most important changes happening across Office 365.
Time to talk to Microsoft support… I scheduled a chat to be posted at 15:30 (my time) and it arrived in the recipient’s chat stream on schedule. Something is up with your environment. Make sure that your client software is updated.
{"id":null,"mode":"button","open_style":"in_modal","currency_code":"EUR","currency_symbol":"\u20ac","currency_type":"decimal","blank_flag_url":"https:\/\/office365itpros.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/blank.gif","flag_sprite_url":"https:\/\/office365itpros.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/flags.png","default_amount":100,"top_media_type":"featured_image","featured_image_url":"https:\/\/office365itpros.com\/wp-content\/uploads\/2022\/11\/cover-141x200.jpg","featured_embed":"","header_media":null,"file_download_attachment_data":null,"recurring_options_enabled":true,"recurring_options":{"never":{"selected":true,"after_output":"One time only"},"weekly":{"selected":false,"after_output":"Every week"},"monthly":{"selected":false,"after_output":"Every month"},"yearly":{"selected":false,"after_output":"Every year"}},"strings":{"current_user_email":"","current_user_name":"","link_text":"Virtual Tip Jar","complete_payment_button_error_text":"Check info and try again","payment_verb":"Pay","payment_request_label":"Office 365 for IT Pros","form_has_an_error":"Please check and fix the errors above","general_server_error":"Something isn't working right at the moment. Please try again.","form_title":"Office 365 for IT Pros","form_subtitle":null,"currency_search_text":"Country or Currency here","other_payment_option":"Other payment option","manage_payments_button_text":"Manage your payments","thank_you_message":"Thank you for supporting the work of Office 365 for IT Pros!","payment_confirmation_title":"Office 365 for IT Pros","receipt_title":"Your Receipt","print_receipt":"Print Receipt","email_receipt":"Email Receipt","email_receipt_sending":"Sending receipt...","email_receipt_success":"Email receipt successfully sent","email_receipt_failed":"Email receipt failed to send. Please try again.","receipt_payee":"Paid to","receipt_statement_descriptor":"This will show up on your statement as","receipt_date":"Date","receipt_transaction_id":"Transaction ID","receipt_transaction_amount":"Amount","refund_payer":"Refund from","login":"Log in to manage your payments","manage_payments":"Manage Payments","transactions_title":"Your Transactions","transaction_title":"Transaction Receipt","transaction_period":"Plan Period","arrangements_title":"Your Plans","arrangement_title":"Manage Plan","arrangement_details":"Plan Details","arrangement_id_title":"Plan ID","arrangement_payment_method_title":"Payment Method","arrangement_amount_title":"Plan Amount","arrangement_renewal_title":"Next renewal date","arrangement_action_cancel":"Cancel Plan","arrangement_action_cant_cancel":"Cancelling is currently not available.","arrangement_action_cancel_double":"Are you sure you'd like to cancel?","arrangement_cancelling":"Cancelling Plan...","arrangement_cancelled":"Plan Cancelled","arrangement_failed_to_cancel":"Failed to cancel plan","back_to_plans":"\u2190 Back to Plans","update_payment_method_verb":"Update","sca_auth_description":"Your have a pending renewal payment which requires authorization.","sca_auth_verb":"Authorize renewal payment","sca_authing_verb":"Authorizing payment","sca_authed_verb":"Payment successfully authorized!","sca_auth_failed":"Unable to authorize! Please try again.","login_button_text":"Log in","login_form_has_an_error":"Please check and fix the errors above","uppercase_search":"Search","lowercase_search":"search","uppercase_page":"Page","lowercase_page":"page","uppercase_items":"Items","lowercase_items":"items","uppercase_per":"Per","lowercase_per":"per","uppercase_of":"Of","lowercase_of":"of","back":"Back to plans","zip_code_placeholder":"Zip\/Postal Code","download_file_button_text":"Download File","input_field_instructions":{"tip_amount":{"placeholder_text":"How much would you like to tip?","initial":{"instruction_type":"normal","instruction_message":"How much would you like to tip? Choose any currency."},"empty":{"instruction_type":"error","instruction_message":"How much would you like to tip? Choose any currency."},"invalid_curency":{"instruction_type":"error","instruction_message":"Please choose a valid currency."}},"recurring":{"placeholder_text":"Recurring","initial":{"instruction_type":"normal","instruction_message":"How often would you like to give this?"},"success":{"instruction_type":"success","instruction_message":"How often would you like to give this?"},"empty":{"instruction_type":"error","instruction_message":"How often would you like to give this?"}},"name":{"placeholder_text":"Name on Credit Card","initial":{"instruction_type":"normal","instruction_message":"Enter the name on your card."},"success":{"instruction_type":"success","instruction_message":"Enter the name on your card."},"empty":{"instruction_type":"error","instruction_message":"Please enter the name on your card."}},"privacy_policy":{"terms_title":"Terms and conditions","terms_body":null,"terms_show_text":"View Terms","terms_hide_text":"Hide Terms","initial":{"instruction_type":"normal","instruction_message":"I agree to the terms."},"unchecked":{"instruction_type":"error","instruction_message":"Please agree to the terms."},"checked":{"instruction_type":"success","instruction_message":"I agree to the terms."}},"email":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email address"},"success":{"instruction_type":"success","instruction_message":"Enter your email address"},"blank":{"instruction_type":"error","instruction_message":"Enter your email address"},"not_an_email_address":{"instruction_type":"error","instruction_message":"Make sure you have entered a valid email address"}},"note_with_tip":{"placeholder_text":"Your note here...","initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"empty":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"not_empty_initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"saving":{"instruction_type":"normal","instruction_message":"Saving note..."},"success":{"instruction_type":"success","instruction_message":"Note successfully saved!"},"error":{"instruction_type":"error","instruction_message":"Unable to save note note at this time. Please try again."}},"email_for_login_code":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email to log in."},"success":{"instruction_type":"success","instruction_message":"Enter your email to log in."},"blank":{"instruction_type":"error","instruction_message":"Enter your email to log in."},"empty":{"instruction_type":"error","instruction_message":"Enter your email to log in."}},"login_code":{"initial":{"instruction_type":"normal","instruction_message":"Check your email and enter the login code."},"success":{"instruction_type":"success","instruction_message":"Check your email and enter the login code."},"blank":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."},"empty":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."}},"stripe_all_in_one":{"initial":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"empty":{"instruction_type":"error","instruction_message":"Enter your credit card details here."},"success":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"invalid_number":{"instruction_type":"error","instruction_message":"The card number is not a valid credit card number."},"invalid_expiry_month":{"instruction_type":"error","instruction_message":"The card's expiration month is invalid."},"invalid_expiry_year":{"instruction_type":"error","instruction_message":"The card's expiration year is invalid."},"invalid_cvc":{"instruction_type":"error","instruction_message":"The card's security code is invalid."},"incorrect_number":{"instruction_type":"error","instruction_message":"The card number is incorrect."},"incomplete_number":{"instruction_type":"error","instruction_message":"The card number is incomplete."},"incomplete_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incomplete."},"incomplete_expiry":{"instruction_type":"error","instruction_message":"The card's expiration date is incomplete."},"incomplete_zip":{"instruction_type":"error","instruction_message":"The card's zip code is incomplete."},"expired_card":{"instruction_type":"error","instruction_message":"The card has expired."},"incorrect_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incorrect."},"incorrect_zip":{"instruction_type":"error","instruction_message":"The card's zip code failed validation."},"invalid_expiry_year_past":{"instruction_type":"error","instruction_message":"The card's expiration year is in the past"},"card_declined":{"instruction_type":"error","instruction_message":"The card was declined."},"missing":{"instruction_type":"error","instruction_message":"There is no card on a customer that is being charged."},"processing_error":{"instruction_type":"error","instruction_message":"An error occurred while processing the card."},"invalid_request_error":{"instruction_type":"error","instruction_message":"Unable to process this payment, please try again or use alternative method."},"invalid_sofort_country":{"instruction_type":"error","instruction_message":"The billing country is not accepted by SOFORT. Please try another country."}}}},"fetched_oembed_html":false}
Nothing happens when having scheduled a chat at the planned time – neither in the web nor the client version of MS Teams.
Time to talk to Microsoft support… I scheduled a chat to be posted at 15:30 (my time) and it arrived in the recipient’s chat stream on schedule. Something is up with your environment. Make sure that your client software is updated.