Windows server 2016 core install gui

At Microsoft Ignite 2015 in Chicago, Microsoft unveiled the next preview of Windows Server. In the latest version, not only is the GUI not the default, but it also isn’t installed at all without additional post-install steps. In this tutorial, I’ll show you how you can enable the GUI for those applications that still require a graphical user interface in Windows Server 2016.

At Microsoft Ignite 2015 in Chicago, Microsoft unveiled the next preview of Windows Server. In the latest version, not only is the GUI not the default, but it also isn’t installed at all without additional post-install steps. In this tutorial, I’ll show you how you can enable the GUI for those applications that still require a graphical user interface in Windows Server 2016.

Contents

  1. Install the GUI on Server 2016 “MinShell”
  2. Install the GUI on Server Core
  3. To install the GUI or not?
  • Author
  • Recent Posts

Kyle Beckman works as a systems administrator in Atlanta, GA supporting Office 365 in higher education. He has 17+ years of systems administration experience.

If you’ve taken the time to install the latest build of Windows Server Technical Preview 2, you may have noticed that the graphical user interface (GUI) is no longer an option in a default install. When you’re prompted to select the operating system you want to install, you have two options.

Windows Server 2016 - Select the operating system you want to install
Windows Server 2016 – Select the operating system you want to install

The first option, Windows Server Technical Preview 2 (the verbiage will most likely be replaced with Windows Server 2016 when the product is eventually released) is the traditional Server Core install that doesn’t include the GUI.

Windows Server 2016 Server Core
Windows Server 2016 Server Core

Just to show you how hardcore and serious Microsoft is, the Control+Alt+Delete logon prompt sits in a command prompt box. I wouldn’t be surprised to see this one day go the way of UNIX/Linux and drop the window completely in favor of just straight text.

Control Alt Delete on Windows Server 2016 Server Core
Ctrl+Alt+Delete logon screen on Windows Server 2016 Server Core

The second option, Windows Server Technical Preview 2 (with local admin tools), is the “MinShell” install that contains a minimal GUI that includes Server Manager and the other GUI administration tools, but no traditional desktop.

Windows Server 2016 running MinShell
Windows Server 2016 running MinShell

Install the GUI on Server 2016 “MinShell”

If you’re running the MinShell version of Windows Server 2016 that includes Server Manager and the other GUI administrative tools, installing the full GUI is rather easy. At the command prompt that you get when you log in, type powershell and press Enter to run PowerShell. Then, run the following command:

Install-WindowsFeature Server-Gui-Shell -Restart

The first part is the Install-WindowsFeature PowerShell cmdlet that tells Windows to install a feature of Windows Server. The second part tells the cmdlet that you want to install the GUI. The last part tells Windows to automatically reboot after installing the feature. The reboot is required to finish the install; just be aware that adding -Restart will force the reboot immediately following the completion of the install.

Install the GUI on Windows Server 2016 MinShell using PowerShell
Install the GUI on Windows Server 2016 “MinShell” using PowerShell

Install the GUI on Server Core

If you decided to install Server Core, you have slightly more work to do to get the GUI installed. If you run the PowerShell command we used in the MinShell version of Windows Server 2016, it will fail and you’ll get a pretty big error message with lots of red error text: “Install-WindowsFeature : The request to add or remove features on the specified server failed. Installation of one or more roles, role services, or features failed. The source files could not be found.”

Error installing the GUI on Windows Server 2016 Server Core
Error installing the GUI on Windows Server 2016 Server Core

We can dig a little bit by running this PowerShell command:

Get-WindowsFeature *gui*

This will show us the installable GUI options on the server. As you can see in the screenshot below, the Install State is “Removed.” Because this is a Server Core install, options such as the GUI aren’t cached on the disk for quick install. Instead, we’ll have to access the OS install WIM file to install the GUI.

Looking at GUI options on Windows Server 2016 Server Core
Looking at GUI options on Windows Server 2016 Server Core

In my example, I’m using a Hyper-V VM that has the Windows Server Technical Preview 2 ISO image connected to the DVD drive so I can access the install.wim file. To install the GUI, I run this command:

Install-WindowsFeature Server-Gui-Shell –Restart -Source wim:D:sourcesinstall.wim:4

Install the GUI on Windows Server 2016 Server Core using PowerShell
Install the GUI on Windows Server 2016 Server Core using PowerShell

After a reboot on Windows Server 2016 MinShell or Server Core, you’ll be greeted by the full graphical user interface.

Windows Server 2016 with GUI enabled
Windows Server 2016 with GUI enabled

To install the GUI or not?

Most, if not all, organizations still have server-based applications that don’t play well with Server Core and need the full GUI. In many cases, the management tools and agents that we use to manage those servers are the apps that need the GUI. Until more vendors catch up to Microsoft’s philosophy, we’ll still see lots of sysadmins installing the GUI on their servers.

In a perfect world, I’d love to see Microsoft embrace some of the Linux philosophy with respect to GUIs. If the GUI was something that ran only when we needed it, then Windows systems administrators could run the GUI whenever they needed to perform certain administrative functions or use applications that don’t support a pure command-line interface.

Subscribe to 4sysops newsletter!

That would also allow the GUI to remain in an offline mode when it wasn’t needed, and it could be patched without the need to constantly reboot the system for updates. As it stands today, the non-GUI version of Windows Server just looks like a GUI that’s been stripped of the Start menu/screen, Task Bar, File Explorer, and other useful GUI tools other than a few utilities. As for what the future holds for Windows Server, I don’t think the GUI will ever completely go away, but now is the time to start using and learning PowerShell before you’re left in the dust.

RRS feed

  • Remove From My Forums
  • Question

  • Hi,

    I have purchased Windows Server 2016 Standard/Datacenter Server Core Edition ( Volume license) . After installation only the command line is visible and no GUI is available. I tried enabling GUI using PS commands mentioned in https://4sysops.com/archives/how-to-install-the-gui-on-windows-server-2016/ 
    Its not working as the GUI packages aren’t available.

    There is no Desktop Experience option available while installing. Is there any way we can enable GUI ?

All replies

    • Proposed as answer by

      Monday, January 14, 2019 2:49 AM

    • Proposed as answer by
      otto wang
      Monday, January 14, 2019 2:49 AM
  • You can manage your Windows Server from a remote client computer with Remote Server Administration Tools installed. 

    https://www.microsoft.com/en-us/download/details.aspx?id=45520


    Microsoft Certified Professional

    [If a post helps to resolve your issue, please click the
    «Mark as Answer» of that post or click Answered
    «Vote as helpful» button of that post. By marking a post as Answered or Helpful, you help others find the answer faster. ]

    • Proposed as answer by
      otto wang
      Monday, January 14, 2019 2:49 AM

  • Hi,

    Just checking in to see if the information provided was helpful. Please let us know if you would like further assistance.

    Best Regards,

    Otto Wang


    Please remember to mark the replies as answers if they help.
    If you have feedback for TechNet Subscriber Support, contact
    tnmff@microsoft.com.

  • Hi,

    Was your issue resolved?

    If you resolved it using our solution, please «mark it as answer» to help other community members find the helpful reply quickly.

    If you resolve it using your own solution, please share your experience and solution here. It will be very beneficial for other community members who have similar questions.

    If no, please reply and tell us the current situation in order to provide further help.

    Best Regards,

    Otto
    Wang


    Please remember to mark the replies as answers if they help.
    If you have feedback for TechNet Subscriber Support, contact
    tnmff@microsoft.com.

The default install of the Windows Server 2016 (Tech preview 2) do not provide Graphical User Interface (GUI) and even the second option only installs the local administrative tools (Server Manager). Not the traditional desktop that we’re used to having in 2012 R2 or 2008 R2 server systems. So if you take the second option (with local admin tools) you basically end up with a server without a desktop and start menu.

I know that this is rather good as the server system gets very slim footprint, reducing the surface, but If you want to install a third party application(s) that needs the GUI and the usual desktop environment ,then you must add something – a full desktop GUI. Windows server 2016 GUI install can be done through PowerShell, and you only need a single line of code. You can also add the GUI by selecting a Feature through adding a new role and feature wizard. (as you do that in Windows Server 2012 R2…)

Note that I’m testing it with a built through VMware Workstation 11. I picked up the default config (Workstation 11 compatible VMs) and the ISO has been detected as Windows 10.

Windows Server 2016 Gui Install – How to:

Step 1: During the setup process I choose the second option – Windows Server Technical preview 2 (with local admin tools), but you could only install the core (tested that as well).

Windows Server 2016 GUI install

Step 2: After reboot, you’re asked to assign a new password to the user’s account. After that, you’ll end up with a console where the server manager launches automatically. Well, in my case I was using easy install with VMware workstation, so I had an automatical installation of VMware tools followed by another reboot…

But if I would have assigned that password in VMware workstation during the assistant walking me through the creation of the VM, then the double reboot would have happened without my interaction.

Anyway, through Server manager click Add roles and features > skip the first and second page and go directly to “features” where you choose the Server Graphical Shell. I picked the desktop experience in this example but that is not necessary. The desktop experience adds the usual package used for desktop environments:

  • Windows Search
  • Desktop wallpapers
  • Etc…

At the same time, you can tick the checkbox so the server can reboot automatically at the end of the installation process.

Windows Server 2016 GUI install

Validate the choice > Next > Install. And after a reboot the server shows well the Full desktop with Start menu and Server Manager.

Windows Server 2016 GUI install

Option 2: Install the GUI via PowerShell

In case you choose to install just the core (nano) and you don’t have server manager installed, you can use PowerShell. To install the GUI via PowerShell you can enter this single line of code in your PowerShell Window:

InstallWindowsFeature ServerGuiShellRestart Source wim:D:sourcesinstall.wim:4

Shoot from the lab:

Windows Server 2016 GUI Install

The server reboots automatically at the end (without a prompt). And after the reboot where you’ll see this usual screen…

Windows Server 2016 GUI Install

The server reboots and shows GUI, Start Menu AND the Server manager.

Windows Server 2016 GUI Install

As you can see, the process is quite similar to what’s available in Windows Server 2012 R2, and it’s quite simple.

I don’t think that the GUI will completely disappear. There will still be applications that won’t work in environments without a GUI. Look at the SMBs which usually have 1 or 2 Windows servers (physical, yeah) and which do need to provide not only file level service with domain authentication, but many more custom based enterprise applications, printing, and networks core services etc. So the Windows based servers (with GUI windows on it) will, IMHO, never die…

At the same time, it’s good that we have the option to deploy stripped down version of Windows server (who knows how the final version will look like) without any services. And add more services/roles later via Powershell or from remote workstation via administrative tools.

In this post, we’gonna explain if it’s possible to Switch from Windows Server 2016 Core to GUI (Desktop Experience).

Switch from Windows Server 2016 Core to GUI

You may be also interested to check Windows Server 2016: Expand Virtual Machine Hard Disk & Extend the Operating System Drive.


Switch from Windows Server 2016 Core to Desktop Experience

  1. 1
    Switch from Windows Server 2016 Core to Desktop Experience

    1. 1.1
      How to Convert from Windows Server 2016 Core to GUI?

    2. 1.2
      Is there any workaround to Switch from Windows Server 2016 Core to GUI Without Performing a Fresh Installation?

  2. 2
    Install Windows Server 2016 Step by Step

    1. 2.1
      Windows Server 2016 Hardware Requirements

    2. 2.2
      Download Windows Server 2016

    3. 2.3
      Windows Server 2016 Installation Steps

When I tried to install Windows Server 2016, I got the below dialog that ask me to select the operating system that I would like to install as shown below:

Switch from Windows Server 2016 Core to GUI

Actually, I have confused which option should I use

  • Windows Server 2016 Standard or,
  • Windows Server 2016 Standard (Desktop Experience).

Unfortunately, I selected the first option “Windows Server 2016 Standard“, after taking a long time to install the windows server 2016, it was the shock, I got the Windows Server 2016 console interface, not the normal Windows Server 2016 GUI Desktop Experience interface as shown below:

Convert from Windows Server 2016 Core to GUI

You might also like to read Convert from Windows Server 2019 Core to GUI


How to Convert from Windows Server 2016 Core to GUI?

Actually, In previous Windows Server releases like Windows Server 2012, 2008, we were able to add the Windows Server GUI functionality to the Windows Server core without performing a fresh installation.

But, In Windows Server 2016 and later, it’s no longer doable to convert from Windows Server 2016 core to Windows Server 2016 with Desktop experience and vice versa!

Is there any workaround to Switch from Windows Server 2016 Core to GUI Without Performing a Fresh Installation?

Unfortunately, there is no workaround to convert from Windows Server 2016 Core to GUI, the only available solution is performing a fresh installation from scratch again!


Install Windows Server 2016 Step by Step

In this section, we’ll explain how to install Windows Server 2016 Standard with GUI by doing the following:

  • Exploring Windows Server 2016 Hardware Requirements.
  • Download Windows Server 2016.
  • Install Windows Server 2016.

Windows Server 2016 Hardware Requirements

The hardware requirements for Windows Server 2016 with desktop experience is differ from Windows Server 2016 Core.

Below is the minimum hardware requirements for Windows Server 2016 with desktop experience:

  • CPU: 1.4 GHz 64-bit processor.
  • RAM: 2 GB, (512 for core)
  • Disk: 32 GB as absolute minimum value, (4 GB for core).

Download Windows Server 2016

Below are the official links to download Windows Server 2016 as well as Windows Server 2019.

  • Download Windows Server 2016 Evaluation ISO.
  • Download Windows Server 2019 Evaluation ISO.

The Windows Server 2016 Evaluation Period is 180 days that can be extended 6 times for additional 180 days.

To extend Windows Server 2016 Evaluation Period, please check Evaluation Period expired for Windows Server 2016, How to extend it?

Windows Server 2016 Installation Steps

  1. Mount your Windows Server 2016 ISO image.
  2. Run the Setup file.
  3. Select your language, time, currency format, and input method.
Switch from Server core to GUI in windows server 2016
  • Click on “Install now” button to start Windows Server 2016 installation.
Install windows server 2016
  • Select, “Windows Server 2016 Standard (Desktop Experience)“, then click “Next”.
Install Windows Server 2016 with GUI (Desktop Experience)

Note: Windows Server 2016 Standard option refers to the core!

  • Accept the license terms and click “Next”.
Windows Server 2016 license terms
  • Select “Install Windows Only“.
Type of installation in Windows Server 2016

It’s strongly recommended to perform a clean installation for Windows Server 2016.

  • The Windows Server 2016 installation will start!
Switch from Windows Server 2016 Core to GUI
  • Finally, the Windows Server 2016 GUI has been installed with desktop experience as shown below!
Windows Server 2016 with GUI desktop experience

Conclusion

Unlike previous Windows Server releases, you can’t convert from Windows Server 2016 core to GUI and vice versa, the only solution is performing a fresh installation!

So in this post, we have learned how to download and install Windows Server 2016 and Which option should we select during Windows Server installation to install Windows Server 2016 with Desktop Experience instead of Windows Server 2016 Core.

Applies To
  • Windows Server 2019.
  • Windows Server 2016.
You might also like to read
  • Extend Volume option is disabled within Disk Management in Windows Server 2012.
  • Error extending volume: Size Not Supported, During extending Operating System partition In Windows Server 2012.
  • Windows failed to start: The Boot Configuration Data for your PC is missing or contains errors.
  • Extend SQL Server Evaluation Period.
Have a Question?

If you have any related questions, please don’t hesitate to ask it at deBUG.to Community.

Some people would feel frustrating about that after installing Windows server 2016 successfully, the user interface has changed. There is no a graphic user interface, so all the operation would be executed by typing some professional commands. That is not easy for some users who are not familiar with Windows server, especially for the people who is the freshman for Windows server. Then people may ask whether there is a way to enable the GUI in Windows server 2016. Here I would show you how to enable the GUI in Windows server 2016.

Here I would show the detailed steps from scratch.

When we begin installing the new Windows server 2016, there are many options for us.select-one-version-of-operating-system

You can see many option are list on the above picture. The options without Desktop Experience are the core editions. They would not offer GUI after installation. And the ones with Desktop Experience would offer full GUI features. If you clear about which is your favor, you would find the problem and has no need to read the under passage. But if you just wrong installed the core edition of Windows server 2016 and you regretted it when finding that all the operations have to be implemented by typing commands. Then you should follow the under steps.

Step 1: Open PowerShell console and type Get-WindowsFeature -Name *GUI* into it.check-and-get-windows-server-gui

You would find that all the install state of the GUI features listed are shown as removed. And now you should try to install the removed GUI features. Before that, you should make sure that your server has access to internet.

Step 2: Just type Install-WindowsFeature -Name Server-Gui-Shell, Server-Gui-Mgmt-Infra into PowerShell console and press Enter to execute it.try-installing-some-gui-feature

Typically, when the above operation is completed and you should just type Restart-Computer into the PowerShell console to restart your server. Then you would see windows server 2016 with the full graphic user interface(GUI).

Note: If your server has no access to the internet, you would probably see a large number of error message with red color. Then you have to use your installation media to successfully install server GUI features. Before you can do that, you need to identify appropriate index of Windows server 2016 edition from which you want to install features. The GUI features are only default built in the editions labelled with desktop experience, so you should skip indexes for core editions in the list.error-message-when-installing-gui

So here i would show you installing the GUI features from a installation media.

Here we go.

Step 1: If you have store the windows server installation media in this system before, just navigate to the path of it.  Type the command Get-WindowsImage -ImagePath XXXXXX into the console.

Attention : The GUI features information are stored in install.win file located on D:sources in my system drive, so you should just adapt it to your condition.

Here the GUI features related file’s path is D:sourcesinstall.wim. Then i just type Get-WindowsImage -ImagePath D:sourcesinstall.wim into the console to find the system imageindex.2017-10-19_16-51-27

From the first picture in this passage, we know that the imageindex of core edition without GUI is 1 and 3. Then you should just choose the right imageindex between 2 and 4. Here i would choose the imageindex as 2.

Step 2: Type Install-WindowsFeature -Name Server-Gui-Shell, Server-Gui-Mgmt-Infra  -Source wim:D:sourcesinstall.wim:2 into PowerShell console. And press Enter to execute it.install-GUI-features-from-installation-media

Note: To install feature from non-default location, you should follow the appropriate syntax like below.

InstallationProvider:WIMFileLocation:ImageIndex

So if you want to install the GUI features from a installation media, you should follow the syntax.

Step 3: After the above operation is finished, you should be prompted with the information that you must restart this server to finish the installation process. Just type Restart-Computer into the PowerShell console and execute it.restart-server

Then you would find that the full GUI features has been enabled in your Windows server 2016.full-GUI-interface

 

In today’s article, we will see a typical installation of Windows Server 2016 Desktop Experience, the ‘full’ version including the graphical user interface (GUI).

Before the installation

I mention the following for typical reasons as it is not self-evident for everyone.

  • Check the system requirements and instructions given by Microsoft.
  • Download the Windows Server 2016 installation ISO from the Evaluation Center, if you like.
  • If you are going to install it on a physical machine then you have to burn it to a DVD or a USB flash drive. Personally, I prefer to do it with Rufus.
  • You must select the DVD or USB as the boot device in the BIOS/UEFI settings.

Select Language, Time, and keyboard language and click Next to continue.

Install Windows Server 2016 with GUI (Desktop Experience)

Click the Install now button to continue.

Install Windows Server 2016 with GUI (Desktop Experience)

Here, select the version of Windows Server 2016 you are about to install. What you need to keep in mind is selecting the Desktop Experience version, which means the version with the graphical interface will be installed.

Install Windows Server 2016 with GUI (Desktop Experience)

Accept the terms of use by selecting I accept license terms option and click Next to continue.

Install Windows Server 2016 with GUI (Desktop Experience)

Since it is a clean installation rather than upgrading a previous version, click Custom: Install Windows only (advanced).

Install Windows Server 2016 with GUI (Desktop Experience)

Select the disk to be installed in Windows Server 2016. At this point, you can create different partitions as well as load the respective drivers for the drives as long as required by the manufacturer. In a typical installation, you do not have to do anything more than simply selecting the disk.

Install Windows Server 2016 with GUI (Desktop Experience)

The installation of Windows Server 2016 is in progress. You will have to wait a few minutes.

Install Windows Server 2016 with GUI (Desktop Experience)

After restarting the server, you will be prompted to type the local administrator account password. Ensure that the password meets the basic complexity requirements.

Install Windows Server 2016 with GUI (Desktop Experience)

Immediately after, the last actions will be performed and you will be ready to use Windows Server 2016. As you can see, by pressing the Ctrl + Alt + Delete key you can connect to the local administrator account you created in the previous step.

Install Windows Server 2016 with GUI (Desktop Experience)

That’s it!

After you’ve finished installing Windows Server 2016, you can go ahead with some of the basic settings you’ll need to do first. Indicatively, the most common are:

  • Set time, time zone, and date
  • Change server name
  • Change basic IPv4 network settings
  • Join a local Active Directory domain

Scenario / Questions

We just got our dedicated server from Rackspace. It was loaded with W2008 on it. I decided to put the most recent OS on it so I wouldn’t have to upgrade it later. Apparently during the installation, I selected the no gui option.

I tried to install the gui from powershell that I’ve seen reference on other website.

For example:

Install-WindowsFeature Server-GUI-Shell -Restart

When I run this, I get the following error:

PS C:> Install-WindowsFeature Server-GUI-Shell -Restart
Install-WindowsFeature : ArgumentNotValid: The role, role service, or feature name is not valid: 'Server-GUI-Shell'.
The name was not found.
At line:1 char:1
+ Install-WindowsFeature Server-GUI-Shell -Restart
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (Server-GUI-Shell:String) [Install-WindowsFeature], Exception
    + FullyQualifiedErrorId : NameDoesNotExist,Microsoft.Windows.ServerManager.Commands.AddWindowsFeatureCommand

Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
False   No             InvalidArgs    {}

I cannot seem to figure out how to get a gui installed on this server.

All references I’ve seen to installing the gui say to use the Server-GUI-Shell.

Anyone have any suggestions?

Find below all possible solutions or suggestions for the above questions..

Suggestion: 1:

It’s no longer possible to switch from Server Core to the full GUI or vice versa in Server 2016 – either through Server Manager, PowerShell, or DISM. You must make the choice initially at install time.
From TechNet:

Unlike some previous releases of Windows Server, you cannot convert
between Server Core and Server with Desktop Experience after
installation. For example, if you install Server Core and later decide
to user Server with Desktop Experience, you should do a fresh
installation (and vice versa).

A good community article on the topic: https://superwidgets.wordpress.com/2016/10/29/windows-server-2016-gui-options/

The capability to convert from one to the other via Server Manager and the Install/Remove-WindowsFeature cmdlets existed in Server 2012 and Server 2012 R2.

Disclaimer: This has been sourced from a third party syndicated feed through internet. We are not responsibility or liability for its dependability, trustworthiness, reliability and data of the text. We reserves the sole right to alter, delete or remove (without notice) the content in its absolute discretion for any reason whatsoever.

Source: How do I add the Windows GUI to Windows 2016 Server Core?

If you have installed Microsoft Windows Server 2016 and are wondering where the GUI now called Desktop Experience is, then unfortunatly the only way to have the Desktop is to re-install the OS.

I have just installed Windows Server 2016 today for the first time, and as its just for testing purposes, never really paid much attention to the installation procedure. I’ve installed Windows countless times, so just always click next, next select disk finish. Unfortunatly this time, Windows Server Core (thats what it was called in the old days) appeared. No big deal, lets have a quick google and install it.

The first article you come to is from petri.com (everyones favourite source of Windows fixes) and it gives you some tips on how to install the GUI using PowerShell.  Perfect!  Unfortunatly no!  It doesnt work.  This article was written when W2k16 was in Tech Preview.  The install feature isnt supported in the GA version.

Install Windows Server 2016 GUI

After somemore googling time, I found the official Microsoft article “Install Server with Desktop Experience”

Make sure you read the important NOTE

Note

Unlike some previous releases of Windows Server, you cannot convert between Server Core and Server with Desktop Experience after installation. If you install Server with Desktop Experience and later decide to use Server Core, you should do a fresh installation.

So, the only option was to re-install and select the right option:

Windows Server 2016 Datacenter (Desktop Experience)

Install Windows Server 2016 GUI

Its a bit annoying.  Surely Microsoft must realise people may want to change server roles without re-installing Windows everytime.  Anyway, hopefully this will help others and save countless google searches.

Понравилась статья? Поделить с друзьями:
  • Windows server 2016 application server role
  • Windows server 2016 32 bit скачать торрент
  • Windows server 2016 1607 обновить до 1903
  • Windows server 2014 r2 скачать торрент
  • Windows server 2012r2 rds user cal