top of page

A Calendar to rule all your Time Entries

  • Writer: Sebastian Sieber
    Sebastian Sieber
  • 5 days ago
  • 7 min read

After the new mobile option for Time Entries in Project Operations, we have a closer look at yet another preview - the new calendar.

In this first look, we are going to explore the new, more intuitive calendar. fully integrated to your Microsoft Dynamics 365 Project Operations process and your Project Task Assignments.


Please note: As this is currently a preview feature, it is not meant to be enabled or enrolled in productive environments.


Dynamics 365 Project Operations Calendar

After enabling the new calendar experience throughout the Project Parameter, you will be greeted by the Calendar in the Sitemap of the Project Operations Model Driven App.


Dashboard showing blue bar charts of month comparisons: cost, margin, and sales with project menu on the left under "Practice Management."

By accessing the calendar, each user will have access to their personal time entries. There is no exception or option to view time recordings of your colleagues, which is great for data security and privacy.


Weekly calendar view in Dynamics 365 showing events: "Document requirements" on 6/30 and 7/2, "Define Project Scope" on 6/30.

Application Features

Let's dive into all the different app features one by one. The great thing about the app is that it only adds value to the existing time recording capabilities without requiring an update on the existing process or even decision-making on which way to go forward for all employees. Actually, each and every team member can choose their personal preference for logging their times.


Create and Update Time Entries

Starting with the obvious, you can actually create and update time entries. The biggest difference to the out of the box grid is that you can now carry start and end times with each new record.

This is especially useful in the European market, as by law, the duration only is not enough.


In order to create a new time entry, mark the time frame (start and end time) on the calendar with your left mouse.



Calendar interface showing a "Create Time Entry" form with fields for date, duration, and type. Right pane lists project tasks.

Immediately after releasing the mouse, the creation dialog is displayed to fill in all necessary data.

Very helpful is the Project Tree on the right - it shows all the different active assignments from a user's perspective. It is extended with a powerful search to find the desired Project quite fast. The nice thing is that you can use the "*" symbol to combine customer, project, or task names.


Calendar interface showing a "Create Time Entry" window with fields for start/end times, duration, and project details, set in July 2025.

Practical example: I'm searching for the Development Task on the Contoso Project. I don't know the name the PM gave it, but I just finished my dev task. I can use Con*Dev to find the correct assignment immediately.


For updating the time entries, it is either possible to double-click on the existing record to make changes in the same creation form again. Right-click on the record to open the record inside the Model-Driven Application. Or, to change the time, it is possible to expand or shrink the time entry block itself by grabbing it by the end. Also, moving around to another time or day works seamlessly and intuitively by selecting the block and keeping your mouse clicked while moving.


Copy and Paste Time Entries

Besides creating and updating, users can also easily copy and paste existing time entries. Via CTRL + C and CTRL + V on Windows or command + C and command + V on macOS.

As soon as you copy an existing time entry the pasting option is active - this allows you even to create a copy with a different duration of the same activity - simply select the start and end time before hitting CTRL + V (command + V).


Weekly calendar with events like "Analysis Workshop" and "Document requirements." Statuses include Approved, Submitted, and Draft.

Project schedule with tasks in color-coded boxes. Text includes "Define Project Scope" and "Migration and Implementation" details.

Copying is not prevented by the state of the time entry, the new time entry will be always generated in draft state.


Submit and Recall Time Entries

As all time entries are created in draft status, the application naturally supports submitting but also recalling submitted and approved records.

This is handled individually per record via the context menu of each time entry block or via the submit and recall options on the menu strip.


Weekly calendar view with events: "Document requirements" at 10 AM, "Define Project Scope" at 4 PM. Context menu open, dates June 29-July 2, 2025.

Track Absences

Besides project-related work, the users are also able to log absences, vacations, and overtime to cover all out-of-the-box and custom time entry types.


De-clutter Time Entries

Time recordings created in the grid view, or in general, without start and end times, are handled by the application as well. With the de-clutter option enabled, these time entries move to their creation time during the day instead of being pinned on the top of the screen at midnight.


Calendar view from June 29 to July 5, 2025, displaying project tasks on sticky notes. Key tasks: Analysis Workshop, Document requirements.

Still, I would recommend deciding on one time recording method. Either with or without time values to prevent confusion.


Work Time Insights

Pretty interesting from an end-user perspective might be the Charts pane on the right side of the Application. This tab shows additional insights about the target and actual working hours of the current view. In my case, I may need to have a call with my Manager as 80 hours weekly looks like quite a commitment.

Nevertheless, the application reads the data directly from the work hours of the bootable resource. Individual absences, part-time working models, or similar scenarios are perfectly covered while the employee indicates with a quick look how many hours are still left for the current week.


Weekly calendar for June 29-Jul 5, 2025, showing tasks like "Document requirements" and "Define Project Scope." Sidebar displays hours logged.

Filter and View Options

In addition to the work time overview, the Charts pane also includes the possibility to filter the calendar based on the time entry status, which acts as a color legend at the same time.


The second filter focuses on the type of time entries. As mentioned before, users have the option to not only book project-related services but also absences, overtime, and vacation.


Weekly calendar with tasks in color-coded blocks, showing hours logged and target hours. Includes a legend and snapshot chart on the side.

Calendar showing events from June 29 to July 5, 2025, including analysis workshops. Right panel with target hours and color legend.

Besides date and view filters, the user also has the option to customize the scale of the cells in the calendar. With a right-click on the time scale on the left, the user can individually choose from a pre-defined set of units. The setting will be stored individually for each user, similar to the chosen view, to greet them on the next app launch without the need to apply preferences each time.


Calendar view for Sun, Jun 29, 2025, showing a dropdown menu at 11:00 AM with options: 60, 30, 15, and 10 minutes.

Customization Options

The new calendar control also offers a set of customization options to optimize the needs of each organization.


Visual Appearance

First of all, let‘s start with the appealing interface. It already looks quite modern and fits well in the current Dynamics 365 styling. However it is also customizable. At least the colors. With the help of Environment Variables it is possible to bring e.g. the corporate identity into the application.


Environment variables list with headers: Display name, Name, Type. Items include Time Entry Status Colors and tooltip values.

Changing the main color of the application will apply to the charts panel and certain highlights across the app. Select the Environment Variable "Time Tracking Application Colors" and add it to your solution of choice.


In the menu on the right, you can find the current default value and the option to add a new value. In order to keep the default setting alive, I highly recommend creating a new value here.

Solution deployments have two options for custom values: include or exclude - so based on the deployment scenario, you have the choice to keep the original value in the target environment.


UI screenshot showing a list of environment variables under "Demo Customizations." An edit panel for "Time Tracking Application Colors" is open on the right.

All values for the Time Tracking Calendar Application are in a JSON format. For the Application colors it looks like this:


[

{

"name": "MainColor",

"value": 0,

"color": "#2975B2"

},

{

"name": "SideColor",

"value": 1,

"color": "#47505E"

}

]


For now, only the MainColor is handled. The SideColor is not in use yet. Perhaps something for future releases. Updating the MainColor attribute, to for example red, it will color the chart banner in the given color:


Weekly snapshot chart shows 42.25 of 80 hours logged. Target hours for each weekday listed in blue and gray bars. Red header.

But the colorful experience doesn‘t stop here. Also the colors of the different time entry states, Draft, Submitted, Approved, Returned, Recall Requested, and Cancelled can be adjusted in the same manner with the Environment Variable "Time Entry Status Colors" to fit the overall look and feel of the visual representation of the calendar.


The default JSON maintains the same syntax as for the application colors, just adding more options for each time entry status:


[

{

"name": "Cancelled",

"value": 192354320,

"color": "#A80000",

"border": "#945C19"

},

{

"name": "Draft",

"value": 192350000,

"color": "#C48703",

"border": "#1d2519"

},

{

"name": "Returned",

"value": 192350001,

"color": "#A80000",

"border": "#AA8B19"

},

{

"name": "Approved",

"value": 192350002,

"color": "#107C10",

"border": "#461F99"

},

{

"name": "Submitted",

"value": 192350003,

"color": "#107C10",

"border": "#13846F"

},

{

"name": "Recall Requested",

"value": 192350004,

"color": "#C48703",

"border": "#2E5FA9"

}

]


Set the new color hex code with the desired color for the related time entry status, and save the new value to the Environment Variable.

A nice attention here is the additional option to color the border around a time entry block. The border is shown once the user selects a block. For a matching appearance, a slightly darker value should do the job.


Custom time entry status values are also supported.


Forms

Usually, most of the customer implementations include any sort of custom fields or tables. This is often the case also for their time recording. The desire is to keep related efforts as small as possible.


To maintain custom values during the time entry creation in the Time Tracking Application, the app has a unique feature. The creation dialog is dynamic. On load of the application, the Time Entry quick create form is extracted and all the fields are overtaken. This includes all sorts of types, including table lookups.

That also ensures having the same experience and values maintained no matter what is the preferred time entry creation method.


Calendar interface showing a "Create Time Entry" window with project details, dates, and tasks. Options to submit or delete.

Power Apps interface showing a "Quick Create: Time Entry" form with fields like Start, Duration, and Type. Purple header and sidebar.

Customize the quick create form of the Time Entry table in order to show or hide the fields of your choice. Or just change the order.

In case there are multiple quick create forms in your environment, check which form is used in model driven app, respectively how the form order looks. The app considers the highest form in the order which is part of the model driven app.


JavaScript or Business Rule related functionality is excluded from this feature.


Tooltip

You may have already recognised it. There is one Environment Variable we haven't spoken about yet. Let's change that - Time Tracking Application Tooltip Values.


Text box shows "Define Project Scope" details: project task, duration (3.5h), role (Manager), status (Approved), and version number.

The tooltip shows up once you hover over the time entry block. Especially for a smaller entries the tooltip is a great option to display more information. The tooltip can also show field information that is not part of the creation form. For example, information that gets automatically set in the background.


Calendar view with tasks: "Document requirements" on Mon, Jun 30, and "Define Project Scope" on Fri, Jul 4. Tasks have details and drafts.

In order to customize the tooltip to the organizational needs, the Environment Variable Time Tracking Application Tooltip Values can be extended with the schema names of the Time Entry field that should be shown:


{

"values": [

"versionnumber",

"statecode"

]

}


The default values contain information for the Version Number and the Time Entry Status. While the Version Number doesn't offer the best value, it's nice to simply add the Status besides the color indicator.



Conclusion

The new Time Tracking Calendar App delivers a strong first impression, offering immediate value for time-based service recording. While its current scope focuses on Resource Assignments, upcoming iterations promise broader functionality for project teams.

For organisations where precise start-and-stop tracking is critical, this tool provides actionable insights, enhanced by intuitive filtering, copy-paste efficiency, and extensibility.

Its sleek design already impresses, and with GA enhancements scheduled for the end of September, the experience will only improve.

Comments


bottom of page