<?xml version="1.0" encoding="UTF-8"?>
<!--
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

	<properties>
		<title>Changing the Calendar and Timezone default</title>
		<author email="sebawagner@apache.org">
			OpenMeetings Team
		</author>
	</properties>

	<body>

		<section name="Changing the Calendar and Timezone default">

			<p>
				In general the timezone is configured in the user profile of each
				user, so changing the server timezone has no effect how to the users
				calendar for example.
				<br />
				<br />
				However there are some circumstances where there is no user profile
				available.
			</p>
		</section>

		<section
			name="Changing servers default timzeone for Emails and Invitations (display)">
			<p>
				Goto Administration &gt; Configuration and change the config-key:
				<tt>default.timezone</tt>
			</p>
			<p>Valid timezone have to meet standards! </p>
		</section>

		<section
			name="Changing first day in week for calendar from Sunday to Monday">

			<p>in the public/config.xml change the key: </p>
			<div class="xmlcode">
				&lt;!--
				<br />
				First day in the Week used by the Calendar
				<br />
				0 means Sunday
				<br />
				1 means Monday
				<br />
				this is the way how the Celendar inits a week
				<br />
				--&gt;
				<br />
				&lt;firstdayinweek&gt;0&lt;/firstdayinweek&gt;
				<br />
			</div>
		</section>

		<section
			name="Changing the default number of max participants of a conference room created via calendar">

			<p>Goto
				Administration &gt; Configuration and change the config-key:
				<tt>calendar.conference.rooms.default.size</tt>
			</p>
		</section>

	</body>

</document>