Update or install the Do Not Disturb Button extension at the Gnome Shell Extension Website.
Download the zip-file for the Do Not Disturb Button extension from the Gnome Shell Extension Website.

Update Version 39 GS 3.36

Removed uneeded import in prefs.js which caused prefs to not be displayed for Ubuntu 2020.4.

Update Version 38 GS 3.36 and 3.36.1

Updated to use gnome-extensions tool to display preferences for a single extension..
In 3.36.1 gnome-shell-extension-prefs was changed and no longer supports displaying preferences for a single extension.

Update Version 36 GS 3.36

Provides support for GS 3.36.
The preferences have been changed to hopefully be more user friendly.

Update Version 35 GS 3.34

Corrected error in Donotdisturb Button Makefile. Added disconnect for _statusChangedSig in dndBtnGObject.js. Failure to disconnect was causing tracebacks in journal.

Update Version 34 GS 3.34

Updated for GS3.34. Corrected deprecated actor.actor instances. Worked around missng shell-version in metadata with settings for prefs.js.

Update Version 33 GS 3.32

See Version 31 NOTE.

Update Version 32 GS 3.30

See Version 31 NOTE.

Update Version 31 GS 3.28 3.30 3.32

Option to mute and restore sound when in the Busy State and Available State.

NOTE: I was contacted by a member of the Fedora team and was informed that they had a problem packaging version 31 of my extension. I was unaware that an RPM was created and was being distrubed by Fedora. The problem they reported was due to version 31 modifying itself to be compatible with GObject registered classes and plain ES6 classes. Since extensions installed from the Fedora RPM are placed in /usr/share/gnome-shell/extensions and are owned by root the extension cannot modify its own code. The solution was to create two verions of the extension, one for GS 3.30 and one for GS 3.32. I have uploaded the two versions.

Update Version 28 GS 3.32

Changed default icons to be compatible with No Notifications icon in the notifications area of the calendar.

Update Version 27 GS 3.28 3.30

A new feature which provides user defined time-out of the busy state is added.

Update Version 26 GS 3.28 3.30

Added preference buttons to allow user selection of the panel button icon image displayed for Available and Busy states.

Update Version 25 GS 3.28 3.30

Completed changes for ES6 classes.

Update Version 24 GS 3.26 3.28

Thanks to p-bo for adding Czech translation.

Added code to handle clutter.EventType.TOUCH_BEGIN to act the same as a mouse click of the extension's panel button. This change is untested. I do not have a device that generates touch events.
Updated code:
to use arrow notation => instead of Lang.bind for anonymous functions.
to use ES6 classes.
to use GJS ES6 class wrapper for GObject class in prefs.js.
to use Function.prototype.bind() instead of Lang.bind for named call backs.
These changes are provided to accommodate future requirements of the Gnome Shell.

Update Version 23 GS 3.24 3.26 3.28

Corrected metadata.json to reflect GS 3.24 3.26 3.28.

Update Version 22 GS 3.20 3.22 3.24 3.26 3.28

Added persistent busy-available state logic with selectable override at session start-up. See README.txt 2018-04-19 entry for details.

Update Version 21 GS 3.24 3.26 3.28

Added GS version 3.28 to meta data.

Update Version 20 GS 3.16 3.18 3.20 3.22 3.24 3.26

Added translations for Busy preference.

Update Version 19 GS 3.16 3.18 3.20 3.22 3.24 3.26

Added support for Ubuntu version 17.10 and 18.04. The extensions is now compatible with the Ubuntu default Ubuntu Session. Added Busy check box preference to set the extension's Busy or Available state at login time. If the Busy preference is checked the extension will be set to Busy at login. If the Busy preference is unchecked the extension will be set to Available at login.

Update Version 16 GS 3.16 3.18 3.20 3.22 3.24 3.26

Added support for GS 3.26.

Update Version 15 GS 3.16 3.18 3.20 3.22 3.24

Changed to make display of notification count optional. Added function to show notification indicator dot (after time display in panel) when unseen notifications reside in the calendar notification area. Thanks to Christoph Schroeder for optional notification count. Thanks to Jonatan Zeidler for updated translations.

Update Version 13 GS 3.16 3.18 3.20 3.22 3.24

Changed icons to a style more consistent with the No Notifications icon used in the calendar notification area.

Update Version 11 GS 3.16 3.18 3.20 3.22

Updated to avoid duplicate mo file names requested by Andrew Toskin to create rpm file for Fedora.

Update Version 10 GS 3.16 3.18 3.20 3.22

Updated copyright and license statements.

Update Version 9 GS 3.16 3.18 3.20 3.22

Added preference to set location of the Do Not Disturb Button on the panel.

Update Version 8 GS 3.16 3.18 3.20 3.22

Added active notification count. The location of the Do Not Disturb Button is now determined by the location of panel Calendar Date and Time display.

Version 7 GS 3.16 3.18 3.20 3.22 3.21.90 3.21.91 3.21.92

Added a preference widget to allow assignment of a keyboard shortcut to toggle the Do Not Disturb Button.