private int[] getAvailable(Date s, Date e)
	{
		boolean[] busy = new boolean[N];
		Arrays.fill(busy, false);
		int i;
		
		for (String start : cal.keySet())
		{
			for (CalEntry ce : cal.get(start))
			{
				if (ce.overlaps(s, e))
				{
					for (i = 0; i < ce.participants.length; i++)
					{
						busy[ce.participants[i]] = true;
					}
				}
			}
			// a little dummy optimization
			// if(Utils.DF.parse(start).after(e)) break;
		}
		
		if (busy[ID])
		{
			return null;
		}
		else
		{
			int[] res = null;
			int c = 0, idx = 0;
			
			for (boolean b : busy)
			{
				if (!b)
				{
					c++;
				}
			}
			res = new int[c];

			for (i = 0; i < busy.length; i++)
			{
				if (!busy[i])
				{
					res[idx] = i;
					idx++;
				}
			}
			return res;
		}
	}